Სარჩევი:

ATTiny85 კონდენსატორის მეტრი: 4 ნაბიჯი
ATTiny85 კონდენსატორის მეტრი: 4 ნაბიჯი

ვიდეო: ATTiny85 კონდენსატორის მეტრი: 4 ნაბიჯი

ვიდეო: ATTiny85 კონდენსატორის მეტრი: 4 ნაბიჯი
ვიდეო: M#1: დააყენეთ Outseal PLC Mega ATmega128 Developer Board | Outseal Dev. PLC მეგა 2024, ივლისი
Anonim
კონდენსატორის მეტრი ATTiny85
კონდენსატორის მეტრი ATTiny85
კონდენსატორის მეტრი ATTiny85
კონდენსატორის მეტრი ATTiny85

ეს ინსტრუქცია განკუთვნილია კონდენსატორის მრიცხველისთვის ATTiny85– ზე დაფუძნებული შემდეგი მახასიათებლებით.

  • ATTiny85 (DigiStamp) საფუძველზე
  • SSD1306 0.96 "OLED ეკრანი
  • დაბალი ღირებულების კონდენსატორების სიხშირის გაზომვა 1pF - 1uF 555 ოსცილატორის გამოყენებით
  • დატენვის დროის გაზომვა მაღალი ღირებულების კონდენსატორებისთვის 1uF - 50000uF
  • 2 ცალკეული პორტი გამოიყენება მეთოდებისთვის სტაციონარული ტევადობის შესამცირებლად
  • დენის ორი მნიშვნელობა გამოიყენება დატენვის დროზე, რათა შეამციროს დრო დიდი კონდენსატორებისთვის
  • 555 მეთოდის თვით ნული გაშვებისას, შესაძლებელია მისი გადაჯგუფება ღილაკზე დაჭერით
  • სწრაფი ტესტი, რომელიც გამოიყენება შერჩევისას რომელი მეთოდი უნდა იქნას გამოყენებული გაზომვის თითოეული ციკლისთვის.
  • დატენვის დროის მეთოდის სიზუსტე შეიძლება გაუმჯობესდეს OSCVAL საათის სიხშირის რეგულირების მხარდაჭერით

ნაბიჯი 1: სქემატური და თეორიული

სქემატური და თეორიული
სქემატური და თეორიული

სქემატურად ნაჩვენებია ATTiny, რომელიც მართავს SSD1306 OLED ეკრანს I2C ინტერფეისის საშუალებით. ის პირდაპირ იკვებება LiOn 300mAh ბატარეით და არის დატენვის წერტილი, რომელიც შეიძლება გამოყენებულ იქნას LiOn თავსებადი გარე დამტენით.

პირველი გაზომვის მეთოდი ემყარება 555 თავისუფალი გაშვებული ოსცილატორის სიხშირის გაზომვას. მას აქვს რეზისტორების მიერ განსაზღვრული საბაზისო სიხშირე და კონდენსატორი, რომელიც უნდა იყოს მაღალი სიზუსტით, რადგან ეს განსაზღვრავს გაზომვების სიზუსტეს. მე გამოვიყენე 820pF 1% პოლისტიროლის კონდენსატორი, რომელიც მქონდა, მაგრამ 1nF- ის გარშემო სხვა მნიშვნელობების გამოყენება შეიძლება. მნიშვნელობა უნდა იყოს შეყვანილი პროგრამულ უზრუნველყოფაში, ნებისმიერი მაწანწალა ტევადობის შეფასებასთან ერთად (~ 20pF). ამან მისცა ბაზის სიხშირე დაახლოებით 16KHz. 555 გამომავალი იკვებება ATTiny– ის PB2– ით, რომელიც დაპროგრამებულია როგორც ტექნიკის მრიცხველი. დაახლოებით 1 წამის განმავლობაში რიცხვის გაზომვით შეიძლება განისაზღვროს სიხშირე. ეს კეთდება დაწყებისთანავე, რათა დადგინდეს ძირითადი სიხშირე. როდესაც ტესტირებადი კონდენსატორი ემატება ბაზის კონდენსატორის პარალელურად, მაშინ სიხშირე მცირდება და როდესაც ეს იზომება და ფუძესთან შედარებით, მაშინ შეიძლება გამოითვალოს დამატებითი ტევადობის მნიშვნელობა.

ამ მეთოდის სასიამოვნო თვისება ის არის, რომ გამოთვლილი ღირებულება დამოკიდებულია მხოლოდ ძირითადი კონდენსატორის სიზუსტეზე. გაზომვის პერიოდს მნიშვნელობა არ აქვს. რეზოლუცია დამოკიდებულია სიხშირის გაზომვების რეზოლუციაზე, რომელიც საკმაოდ მაღალია, ასე რომ ძალიან მცირე დამატებითი ტევადობაც კი შეიძლება გაზომოთ. როგორც ჩანს, შემზღუდველი ფაქტორი არის 555 ოსცილატორის "სიხშირის ხმაური", რაც ჩემთვის ექვივალენტია დაახლოებით 0.3pF.

მეთოდი შეიძლება გამოყენებულ იქნას ღირსეულ დიაპაზონში. დიაპაზონის გასაუმჯობესებლად, მე ვაზუსტებ გაზომვის პერიოდს შემომავალი პულსის კიდეების გამოვლენისთვის. ეს ნიშნავს, რომ დაბალი სიხშირის რხევაც კი, როგორიც არის 12 ჰც (1uF კონდენსატორთან), ზუსტად იზომება.

უფრო დიდი კონდენსატორებისთვის, წრე მოწყობილია დატენვის დროის მეთოდის გამოყენებით. ამ შემთხვევაში, კონდენსატორი განმუხტულია, რათა დარწმუნდეს, რომ ის იწყება 0 -ზე, შემდეგ იტენება ცნობილი წინააღმდეგობის მიწოდების ძაბვისგან. ADC ATTiny85– ში გამოიყენება კონდენსატორის ძაბვის მონიტორინგისთვის და იზომება 0 -დან 50% –მდე დატენვის დრო. ეს შეიძლება გამოყენებულ იქნას ტევადობის გამოსათვლელად. როგორც ADC- ის მითითება ასევე არის მიწოდების ძაბვა, მაშინ ეს არ იმოქმედებს გაზომვაზე. ამასთან, მიღებული დროის აბსოლუტური ზომა დამოკიდებულია ATTiny85 საათის სიხშირეზე და მასში არსებული ცვლილებები გავლენას ახდენს შედეგზე. პროცედურა შეიძლება გამოყენებულ იქნას ამ საათის სიზუსტის გასაუმჯობესებლად ATTiny85– ში tuning რეგისტრის გამოყენებით და ეს აღწერილია მოგვიანებით.

0V– ზე კონდენსატორის დასაშვებად n არხის MOSFET გამოიყენება დაბალი მნიშვნელობის რეზისტორთან ერთად გამონადენის დენის შეზღუდვის მიზნით. ეს ნიშნავს, რომ დიდი მნიშვნელობის კონდენსატორებიც კი შეიძლება სწრაფად განმუხტონ.

კონდენსატორის დასატენად გამოიყენება დამუხტვის რეზისტორის 2 მნიშვნელობა. ძირითადი მნიშვნელობა იძლევა გონივრულ დატენვის დროს კონდენსატორებისთვის 1uF– დან დაახლოებით 50uF– მდე. P-არხის MOSFET გამოიყენება ქვედა რეზისტენტის პარალელურად, რაც საშუალებას იძლევა უფრო მაღალი მნიშვნელობის კონდენსატორების გაზომვა გონივრულ ინტერვალში. არჩეული მნიშვნელობები იძლევა გაზომვის დროს დაახლოებით 1 წამის განმავლობაში კონდენსატორებისთვის 2200uF– მდე და პროპორციულად უფრო დიდი მნიშვნელობებისთვის. ღირებულების ქვედა ბოლოს გაზომვის პერიოდი უნდა იყოს გონივრულად გრძელი, რათა შესაძლებელი გახდეს 50% -იანი ბარიერის მეშვეობით გადასვლის განსაზღვრა საკმარისი სიზუსტით. ADC- ის შერჩევის მაჩვენებელი არის დაახლოებით 25uSec, ასე რომ მინიმალური პერიოდი 22mSec იძლევა გონივრულ სიზუსტეს.

ვინაიდან ATTiny– ს აქვს შეზღუდული IO (6 ქინძისთავები), ამ რესურსის გამოყოფა საჭიროა ფრთხილად. ეკრანისთვის საჭიროა 2 ქინძისთავი, 1 ტაიმერის შეყვანისთვის, 1 ADC– სთვის, 1 გამონადენის კონტროლისთვის და 1 დატენვის სიჩქარის კონტროლისთვის. მე მინდოდა ღილაკზე კონტროლი, რომელიც საშუალებას მისცემდა ხელახლა ნულირებას ნებისმიერ მომენტში. ეს კეთდება hi-jacking I2C SCL ხაზის. ვინაიდან I2C სიგნალები ღია დრენაჟია, მაშინ არ არის ელექტრული კონფლიქტი ღილაკზე ამ ხაზის დაბლა დაწევის საშუალებას. ეკრანი შეწყვეტს მუშაობას ღილაკზე დაჭერით, მაგრამ ამას არანაირი მნიშვნელობა არ აქვს, რადგან ის განახლდება ღილაკის გათავისუფლებისას.

ნაბიჯი 2: მშენებლობა

მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა

მე გავაკეთე ეს პატარა 55 მმ x 55 მმ 3D დაბეჭდილი ყუთი. განკუთვნილია 4 ძირითადი კომპონენტის შესანახად; ATTiny85 DigiStamp დაფა, SSD1306 დისპლეი, LiOn ბატარეა და მცირე ზომის პროტოტიპის დაფა, რომელსაც აქვს 55 ტაიმერი და დატენვის კონტროლის ელექტრონიკა.

დანართი

ნაწილები საჭიროა

  • ATTiny85 DigiStamp დაფა. მე გამოვიყენე ვერსია microUSB კონექტორით, რომელიც გამოიყენება firmware- ის ასატვირთად.
  • SSD1306 I2C OLED ეკრანი
  • 300 mAH LiOn ბატარეა
  • მცირე ზომის პროტოტიპის დაფა
  • CMOS 555 ტაიმერის ჩიპი (TLC555)
  • n- არხი MOSFET AO3400
  • p-Channel MOSFET AO3401
  • რეზისტორები 4R7, 470R, 22K, 2x33K
  • კონდენსატორები 4u7, 220u
  • ზუსტი კონდენსატორი 820pF 1%
  • მინიატურული სლაიდების გადამრთველი
  • 2 x 3 პინიანი სათაურები დატენვის პორტისა და გაზომვის პორტებისათვის
  • დააჭირეთ ღილაკს
  • დანართი
  • მიამაგრეთ მავთული

საჭირო ინსტრუმენტები

  • წვრილი წერტილი soldering რკინის
  • პინცეტი

ჯერ შეადგინეთ 555 ტაიმერის წრე და დამუხტვის კომპონენტები პროტოტიპის დაფაზე. დაამატეთ საფრენი აპარატები გარე კავშირებისთვის. მიამაგრეთ სლაიდების გადამრთველი და დამუხტვის წერტილი და საზომი პორტი შიგთავსში. მიამაგრეთ ბატარეა და გააკეთეთ ძირითადი დენის გაყვანილობა დატენვის წერტილში, სლაიდების გადამრთველზე. დააკავშირეთ მიწა ღილაკზე. მიამაგრეთ ATTiny85 ადგილზე და დაასრულეთ შეხება.

თქვენ შეგიძლიათ გააკეთოთ ენერგიის დაზოგვის მოდიფიკაცია ATTiny დაფაზე მის დამონტაჟებამდე, რაც ოდნავ შეამცირებს დენს და გახანგრძლივებს ბატარეის ხანგრძლივობას.

www.instructables.com/Reducing-Sleep-Curre…

ეს არ არის კრიტიკული, რადგან არის დენის გადამრთველი, რომ გამორთოთ მრიცხველი, როდესაც არ იყენებთ.

ნაბიჯი 3: პროგრამული უზრუნველყოფა

ამ კონდენსატორის მეტრის პროგრამული უზრუნველყოფა შეგიძლიათ იხილოთ მისამართზე

github.com/roberttidey/CapacitorMeter

ეს არის არდუინოზე დაფუძნებული ესკიზი. მას სჭირდება ბიბლიოთეკები ჩვენებისთვის და I2C, რომელთა ნახვა შეგიძლიათ

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

ისინი ოპტიმიზირებულია ATTiny– სთვის, რომ დაიკავოს მინიმალური მეხსიერება. I2C ბიბლიოთეკა არის მაღალი სიჩქარით bit bang მეთოდი, რომლის საშუალებითაც შესაძლებელია ნებისმიერი 2 ქინძისთავის გამოყენება. ეს მნიშვნელოვანია, რადგან I2C მეთოდები სერიული პორტის გამოყენებით იყენებს PB2- ს, რაც ეწინააღმდეგება ქრონომეტრის/მრიცხველის შეყვანის გამოყენებას, რომელიც საჭიროა 555 სიხშირის გასაზომად.

პროგრამული უზრუნველყოფა სტრუქტურირებულია სახელმწიფო აპარატის გარშემო, რომელიც ზომავს მდგომარეობების ციკლში. ISR მხარს უჭერს ტაიმერის მრიცხველიდან გადავსებას 8 ბიტიანი ტექნიკის გასაგრძელებლად. მეორე ISR მხარს უჭერს ADC მუშაობას უწყვეტი რეჟიმში. ეს იძლევა უსწრაფეს პასუხს დატენვის წრეზე, რომელიც გადალახავს ზღურბლს.

ყოველი გაზომვის ციკლის დასაწყისში getMeasureMode ფუნქცია განსაზღვრავს რომელია ყველაზე შესაფერისი მეთოდი თითოეული გაზომვისთვის.

როდესაც 555 მეთოდი გამოიყენება, დათვლის დრო იწყება მხოლოდ მაშინ, როდესაც მრიცხველი შეიცვალა. ანალოგიურად, დრო მხოლოდ შეჩერებულია გაზომვის ნომინალური ინტერვალის შემდეგ და ზღვრის გამოვლენისას. ეს სინქრონიზაცია საშუალებას იძლევა სიხშირის ზუსტი გაანგარიშება თუნდაც დაბალი სიხშირეებისთვის.

როდესაც პროგრამული უზრუნველყოფა იწყებს მუშაობას, პირველი 7 გაზომვა არის "კალიბრაციის ციკლები", რომლებიც გამოიყენება 555 -ის ძირითადი სიხშირის დასადგენად დამატებითი კონდენსატორის გარეშე. ბოლო 4 ციკლი საშუალოა.

არსებობს მხარდაჭერა საათის დარეგულირებისთვის OSCAL რეგისტრის რეგულირებისთვის. მე გირჩევთ, რომ ესკიზის ზედა ნაწილში დააყენოთ OSCCAL_VAL 0. ეს ნიშნავს, რომ ქარხნის დაკალიბრება გამოყენებული იქნება მანამ, სანამ რეგულირება არ მოხდება.

საჭიროა 555 ძირითადი კონდენსატორის მნიშვნელობა მორგებული. მე ასევე დავამატებ სავარაუდო თანხას მაწანწალა ტევადობისთვის.

თუ დატენვის მეთოდებისთვის გამოიყენება სხვადასხვა რეზისტორი, მაშინ პროგრამული უზრუნველყოფის CHARGE_RCLOW და CHARGE_RCHIGH მნიშვნელობები ასევე უნდა შეიცვალოს.

პროგრამული უზრუნველყოფის ინსტალაციისთვის გამოიყენეთ ჩვეულებრივი Digistamp მეთოდი, რომ ატვირთოთ პროგრამული უზრუნველყოფა და დაუკავშიროთ usb პორტი მოთხოვნისთანავე. დატოვეთ დენის გადამრთველი გამორთულ მდგომარეობაში, რადგან ენერგია მიეწოდება USB- ს ამ ოპერაციისთვის.

ნაბიჯი 4: ოპერაცია და გაფართოებული კალიბრაცია

ოპერაცია ძალიან მარტივია.

მას შემდეგ რაც ჩართავთ ერთეულს და დაელოდებით კალიბრაციის ნულის დასრულებას, შემდეგ დაუკავშირეთ კონდენსატორი ტესტირების ორ გაზომვის ერთ პორტს. გამოიყენეთ 555 პორტი დაბალი ღირებულების კონდენსატორებისთვის <1uF და დამუხტვის პორტი უფრო მაღალი ღირებულების კონდენსატორებისთვის. ელექტროლიტური კონდენსატორებისთვის დააკავშირეთ უარყოფითი ტერმინალი საერთო დედამიწის წერტილთან. ტესტირების დროს კონდენსატორი იტენება დაახლოებით 2 ვ -მდე.

555 პორტის გადატვირთვა შესაძლებელია ღილაკზე დაჭერით დაახლოებით 1 წამის განმავლობაში და გათავისუფლებით. დარწმუნდით, რომ ამისთვის არაფერია დაკავშირებული 555 პორტთან.

გაფართოებული კალიბრაცია

დატენვის მეთოდი ეყრდნობა ATTiny85– ის აბსოლუტურ საათის სიხშირეს დროის გასაზომად. საათი იყენებს შიდა RC ოსცილატორს, რომელიც მოწყობილია ნომინალური 8 მჰც საათისათვის. მიუხედავად იმისა, რომ ოსცილატორის სტაბილურობა საკმაოდ კარგია ძაბვისა და ტემპერატურის ცვალებადობისთვის, მისი სიხშირე შეიძლება საკმაოდ დიდი პროცენტით შემცირდეს, მიუხედავად იმისა, რომ ის ქარხნულია დაკალიბრებული. ეს კალიბრაცია ადგენს OSCCAL რეგისტრს დაწყებისთანავე. ქარხნის დაკალიბრება შეიძლება გაუმჯობესდეს სიხშირის შემოწმებით და OSCCAL მნიშვნელობის უფრო ოპტიმალური დაყენებით, რათა მოერგოს კონკრეტულ ATTiny85 დაფას.

მე ჯერჯერობით ვერ მოვახერხე უფრო ავტომატური მეთოდის მორგება firmware– ში, ამიტომ ვიყენებ შემდეგ სახელმძღვანელო პროცედურას. ორი ვარიაცია შესაძლებელია იმისდა მიხედვით, თუ რა გარე გაზომვებია შესაძლებელი; ან სიხშირის მრიცხველი, რომელსაც შეუძლია 555 პორტზე სამკუთხა ტალღის ფორმის სიხშირის გაზომვა, ან ცნობილი სიხშირის კვადრატული ტალღის წყარო მაგ. 10KHz 0V/3.3V დონით, რომელიც შეიძლება დაკავშირებული იყოს 555 პორტთან და გადააცილოს ტალღის ფორმას, რათა ეს სიხშირე მრიცხველში შეიყვანოს. მე გამოვიყენე მეორე მეთოდი.

  1. დაიწყეთ მრიცხველი ნორმალურ სიმძლავრეზე, კონდენსატორების შეერთების გარეშე.
  2. შეაერთეთ სიხშირის მრიცხველი ან კვადრატული ტალღის გენერატორი 555 პორტთან.
  3. გადატვირთეთ კალიბრაციის ციკლი ღილაკის დაჭერით.
  4. კალიბრაციის ციკლის ბოლოს ეკრანზე გამოჩნდება სიხშირე, რომელიც განსაზღვრულია მრიცხველით და OSCCAL– ის ამჟამინდელი მნიშვნელობა. გაითვალისწინეთ, რომ კალიბრაციის ციკლის განმეორებითი გამოყენება შეცვლის გაზომული სიხშირის ჩვენებასა და ნორმალურ ეკრანს შორის.
  5. თუ ნაჩვენები სიხშირე იმაზე ნაკლებია ვიდრე ცნობილია მაშინ ეს ნიშნავს რომ საათის სიხშირე ძალიან მაღალია და პირიქით. მე ვხვდები, რომ OSCCAL- ის დამატებით საათს არეგულირებს დაახლოებით 0.05% -ით
  6. გამოთვალეთ ახალი OSCCAL მნიშვნელობა საათის გასაუმჯობესებლად.
  7. შეიყვანეთ ახალი OSCCAL მნიშვნელობა OSCCAL_VAL- ში, firmware– ის თავზე.
  8. განაახლეთ და ატვირთეთ ახალი firmware. გაიმეორეთ 1–5 ნაბიჯები, რომლებმაც უნდა აჩვენონ ახალი OSCCAL მნიშვნელობა და სიხშირის ახალი გაზომვა.
  9. საჭიროების შემთხვევაში გაიმეორეთ ნაბიჯები საუკეთესო შედეგის მიღწევამდე.

შენიშვნა მნიშვნელოვანია შეცვალოთ ამ რეგულირების ნაწილი, როდესაც მუშაობთ ნორმალურ ენერგიაზე და არა USB- ზე, რათა შეამციროთ სიხშირის ცვლა მიწოდების ძაბვის გამო.

გირჩევთ: