Mundarija:

ATTiny85 kondansatör o'lchagichi: 4 qadam
ATTiny85 kondansatör o'lchagichi: 4 qadam

Video: ATTiny85 kondansatör o'lchagichi: 4 qadam

Video: ATTiny85 kondansatör o'lchagichi: 4 qadam
Video: FLUX CAPACITOR PCB badge #backtothefuture #attiny85 #arduino 2024, Noyabr
Anonim
ATTiny85 kondansatör o'lchagichi
ATTiny85 kondansatör o'lchagichi
ATTiny85 kondansatör o'lchagichi
ATTiny85 kondansatör o'lchagichi

Bu ko'rsatma ATTiny85 asosidagi kondansatör hisoblagichi uchun quyidagi xususiyatlarga ega.

  • ATTiny85 (DigiStamp) asosida
  • SSD1306 0,96 dyuymli OLED displey
  • 555 osilator yordamida 1pF - 1uF past qiymatli kondansatkichlar uchun chastotani o'lchash
  • 1uF - 50000uF yuqori qiymatli kondansatörler uchun zaryad vaqtini o'lchash
  • Statsionar sig'imni minimallashtirish usullari uchun 2 ta alohida port ishlatiladi
  • Katta kondansatörler uchun vaqtni minimallashtirish uchun zaryad vaqti uchun oqimning ikkita qiymati ishlatiladi
  • 555 usuli o'z -o'zidan nolni ishga tushirish tugmachasi yordamida qaytadan ko'rsatilishi mumkin
  • Har bir o'lchash tsikli uchun qaysi usulni qo'llash kerakligini tanlash uchun tezkor test.
  • Zaryadlash vaqtining aniqligi OSCVAL soat chastotasini sozlash yordamida qo'llab -quvvatlanishi mumkin

1 -qadam: Sxema va nazariya

Sxema va nazariya
Sxema va nazariya

Sxemada ATTiny SSD1306 OLED displeyini I2C interfeysi orqali boshqarayotgani ko'rsatilgan. U to'g'ridan -to'g'ri LiOn 300mAh batareyadan ishlaydi va LiOn mos keladigan tashqi zaryadlovchi bilan ishlatilishi mumkin bo'lgan zaryadlash nuqtasi mavjud.

Birinchi o'lchash usuli 555 ta bo'sh ishlaydigan osilator chastotasini o'lchashga asoslangan. Bu rezistorlar tomonidan aniqlanadigan tayanch chastotaga va yuqori aniqlikdagi kondansatkichga ega, chunki bu o'lchovlarning aniqligini aniqlaydi. Menda 820pF 1% polistirolli kondansatör ishlatilgan, lekin 1nF atrofidagi boshqa qiymatlardan foydalanish mumkin. Qiymat har qanday adashgan sig'im (~ 20pF) bahosi bilan birga dasturiy ta'minotga kiritilishi kerak. Bu 16 kHz atrofida asosiy chastotani berdi. 555 chiqishi ATTiny PB2 -ga uzatiladi, u apparat hisoblagichi sifatida dasturlashtirilgan. Taxminan 1 soniya davomida hisoblashni o'lchab, chastotani aniqlash mumkin. Bu boshlang'ich chastotani aniqlash uchun amalga oshiriladi. Agar sinov o'tkazilayotgan kondansatkich tayanch kondansatkichga parallel ravishda qo'shilsa, u holda chastota kamayadi va bu o'lchanganida va tayanch chastotasi bilan solishtirilganda qo'shilgan sig'imning qiymatini hisoblash mumkin.

Ushbu usulning yoqimli xususiyati shundaki, hisoblangan qiymat faqat asosiy kondansatkichning aniqligiga bog'liq. O'lchov muddati muhim emas. Ruxsat juda yuqori chastotali o'lchovlarning aniqligiga bog'liq, shuning uchun ham juda kichik qo'shilgan sig'im o'lchanishi mumkin. Cheklovchi omil 555 osilatorining "chastotali shovqini" bo'lib tuyuladi, bu men uchun taxminan 0,3 pF ga teng.

Usul munosib diapazonda ishlatilishi mumkin. Diapazonni yaxshilash uchun men o'lchov davrini kiruvchi impulslarning qirralarini aniqlash uchun sinxronlashtiraman. Bu shuni anglatadiki, hatto 12 Gts (1uF kondansatörlü) kabi past chastotali tebranish ham aniq o'lchanadi.

Kattaroq kondansatkichlar uchun zanjir zaryad vaqtini hisoblash usulini qo'llagan. Bunda sinovdan o'tkazilayotgan kondansatör 0dan boshlanishi uchun zaryadsizlanadi, keyin ma'lum kuchlanish qarshiligi orqali zaryadlanadi. ATTiny85 -dagi ADC kondansatör voltajini kuzatish uchun ishlatiladi va zaryadning 0% dan 50% gacha bo'lgan vaqti o'lchanadi. Bu quvvatni hisoblash uchun ishlatilishi mumkin. ADC ma'lumotnomasi besleme zo'riqishidir, shuning uchun bu o'lchovga ta'sir qilmaydi. Biroq, qabul qilingan vaqtning mutlaq o'lchovi ATTiny85 soat chastotasiga bog'liq va uning o'zgarishi natijaga ta'sir qiladi. ATTiny85 -dagi sozlash registri yordamida ushbu soatning aniqligini oshirish uchun protseduradan foydalanish mumkin va bu keyinroq tasvirlanadi.

Kondensatorni 0V ga tushirish uchun n-kanalli MOSFET past oqimli qarshilik bilan birga tushirish oqimini cheklaydi. Bu shuni anglatadiki, hatto katta qiymatli kondansatörler ham zaryadsizlanishi mumkin.

Kondensatorni zaryad qilish uchun zaryadlovchi qarshiligining 2 qiymati ishlatiladi. Asosiy qiymat kondansatörler uchun 1uF dan taxminan 50uF gacha oqilona zaryadlash vaqtini beradi. P-kanalli MOSFET yuqori qarshilikli kondansatkichlarni oqilona vaqt oralig'ida o'lchash uchun past qarshilikka parallel parallel ravishda ishlatiladi. Tanlangan qiymatlar 2200 uF gacha bo'lgan kondansatörler uchun taxminan 1 soniya o'lchash vaqtini beradi va katta qiymatlar uchun mutanosib ravishda ko'proq. Qiymatning pastki uchida 50% chegara orqali o'tishni aniqlik bilan aniqlash uchun o'lchash davri etarlicha uzoq bo'lishi kerak. ADCni tanlash tezligi taxminan 25uSekni tashkil qiladi, shuning uchun minimal 22 mS sekund oqilona aniqlikni beradi.

ATTiny cheklangan IO (6 ta pin) ga ega bo'lgani uchun, bu resursni ajratish ehtiyotkorlik bilan bajarilishi kerak. Displey uchun 2 pin, taymer kiritish uchun 1, ADC uchun 1, tushirish nazorati uchun 1 va zaryad tezligini nazorat qilish uchun 1 pin kerak. Men istalgan nuqtada qayta nollash imkonini beradigan tugmachali boshqaruvni xohlardim. Bu I2C SCL liniyasini salomlash orqali amalga oshiriladi. I2C signallari ochiq drenaj bo'lgani uchun, tugmachani pastga tushirishiga ruxsat berish orqali elektr ziddiyatlari bo'lmaydi. Tugma bosilganda displey ishlashni to'xtatadi, lekin bu hech qanday natija bermaydi, chunki tugma qo'yib yuborilgach, yana davom etadi.

2 -qadam: qurilish

Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish

Men buni 55 mm x 55 mm o'lchamdagi 3D bosma qutiga aylantirdim. 4 ta asosiy komponentni ushlab turish uchun mo'ljallangan; ATTiny85 DigiStamp taxtasi, SSD1306 displeyi, LiOn batareyasi va 55 taymer va zaryadni boshqarish elektronikasini o'z ichiga olgan prototip kartasining kichik qismi.

Https://www.thingiverse.com/thing:4638901 manziliga biriktirish

Kerakli qismlar

  • ATTiny85 DigiStamp kartasi. Men dasturiy ta'minotni yuklash uchun ishlatiladigan microUSB ulagichi bo'lgan versiyani ishlatardim.
  • SSD1306 I2C OLED displeyi
  • 300 mA / soat LiOn batareyasi
  • Prototip taxtasining kichik tasmasi
  • CMOS 555 taymer chipi (TLC555)
  • n-kanalli MOSFET AO3400
  • p-kanal MOSFET AO3401
  • Rezistorlar 4R7, 470R, 22K, 2x33K
  • Kondensatorlar 4u7, 220u
  • Nozik kondansatör 820pF 1%
  • Miniatyura slaydni almashtirish
  • Zaryad porti va o'lchash portlari uchun 2 x 3 pinli sarlavhalar
  • Bosish tugmasi
  • Qoplama
  • Simni ulash

Kerakli vositalar

  • Nozik nuqtali lehim temir
  • Cımbızlar

Birinchidan, prototip taxtasida 555 taymer sxemasi va zaryadlovchi komponentlarini tuzing. Tashqi ulanish uchun uchuvchi simlarni qo'shing. Slaydni almashtirish va zaryadlash nuqtasini va o'lchash portini korpusga joylashtiring. Batareyani joylashtiring va asosiy quvvat simini zaryadlash joyiga o'tkazing. Tugmani bosish uchun erni ulang. ATTiny85 -ni joyiga qo'ying va ulashni yakunlang.

ATTiny taxtasini o'rnatishdan oldin siz quvvatni tejaydigan ba'zi o'zgartirishlarni kiritishingiz mumkin, bu esa tokni biroz qisqartiradi va batareyaning ishlash muddatini uzaytiradi.

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

Bu juda muhim emas, chunki hisoblagichni ishlatilmaganda o'chirish uchun quvvat tugmasi mavjud.

3 -qadam: dasturiy ta'minot

Ushbu kondansatör o'lchagich uchun dasturiy ta'minotni quyidagi manzilda topishingiz mumkin

github.com/roberttidey/CapacitorMeter

Bu Arduino -ga asoslangan eskiz. Ko'rish va I2C uchun kutubxonalar kerak

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

Bu ATTiny uchun minimal xotirani olish uchun optimallashtirilgan. I2C kutubxonasi - bu har qanday 2 pinni ishlatishga imkon beradigan yuqori tezlikli bit portlash usuli. Bu juda muhim, chunki ketma -ket portni ishlatadigan I2C usullari PB2 -ni ishlatadi, bu 555 chastotasini o'lchash uchun zarur bo'lgan taymer/hisoblagichni ishlatishga zid.

Dastur shtat mashinasi atrofida tuzilgan bo'lib, u o'lchovlarni holatlar tsikli orqali oladi. ISR 8 -bitli uskunani kengaytirish uchun taymer hisoblagichidan to'ldirishni qo'llab -quvvatlaydi. Ikkinchi ISR doimiy rejimda ishlaydigan ADCni qo'llab -quvvatlaydi. Bu zaryad zanjirining chegarani kesib o'tishiga eng tez javob beradi.

Har bir o'lchash tsikli boshida getMeasureMode funktsiyasi har bir o'lchov uchun qaysi usul eng mos kelishini aniqlaydi.

555 usuli ishlatilganda, hisoblash vaqti faqat hisoblagich o'zgarganda boshlanadi. Xuddi shunday, vaqt faqat nominal o'lchov oralig'idan keyin va chekka aniqlanganda to'xtatiladi. Bu sinxronizatsiya past chastotalarda ham chastotani aniq hisoblash imkonini beradi.

Dasturiy ta'minot ishga tushganda, dastlabki 7 o'lchov "kalibrlash tsikli" bo'lib, 555 ning asosiy chastotasini qo'shimcha kondansatörsiz aniqlash uchun ishlatiladi. Oxirgi 4 tsikl o'rtacha hisoblanadi.

Soatni sozlash uchun OSCAL registrini sozlash qo'llab -quvvatlanadi. Men eskizning boshida OSCCAL_VALni 0 ga o'rnatishni taklif qilaman. Bu shuni anglatadiki, sozlash amalga oshirilmaguncha zavod kalibratsiyasi qo'llaniladi.

555 tayanch kondansatörünün qiymatini sozlash talab qilinadi. Men, shuningdek, adashgan sig'im uchun taxminiy miqdorni qo'shaman.

Agar zaryadlash usullari uchun har xil rezistorlar ishlatilsa, dasturiy ta'minotdagi CHARGE_RCLOW va CHARGE_RCHIGH qiymatlarini ham o'zgartirish kerak bo'ladi.

Dasturiy ta'minotni o'rnatish uchun dasturni yuklash va so'ralganda usb portini ulashning oddiy digistamp usulidan foydalaning. Quvvat kalitini o'chirilgan holatda qoldiring, chunki bu operatsiyani bajarish uchun USB tomonidan quvvat beriladi.

4 -qadam: Ishlash va kengaytirilgan kalibrlash

Operatsiya juda sodda.

Jihozni yoqib, kalibrlash nolining tugashini kutgandan so'ng, sinovdan o'tgan kondansatkichni ikkita o'lchash portidan biriga ulang. Kam qiymatli <1uF kondansatörler uchun 555 portdan va yuqori qiymatli kondansatörler uchun zaryad portidan foydalaning. Elektrolitik kondansatörler uchun manfiy terminalni umumiy er nuqtasiga ulang. Sinov paytida kondansatör taxminan 2 V gacha quvvatlanadi.

555 portini tugmachani taxminan 1 soniya ushlab turgandan so'ng, qaytadan ko'rsatish mumkin. Buning uchun 555 portiga hech narsa ulanmaganligiga ishonch hosil qiling.

Kengaytirilgan kalibrlash

Zaryadlash usuli vaqtni o'lchash uchun ATTiny85 ning mutlaq soat chastotasiga tayanadi. Soat 8 MGts chastotali nominal soatni berish uchun o'rnatilgan ichki RC osilatoridan foydalanadi. Osilatorning barqarorligi kuchlanish va harorat o'zgarishi uchun juda yaxshi bo'lsa -da, zavod chastotasida sozlangan bo'lsa ham, uning chastotasi bir necha foizga kamayishi mumkin. Bu kalibrlash OSCCAL reestrini ishga tushirishda o'rnatadi. Zavodni kalibrlash chastotasini tekshirish va ATTiny85 kartasiga mos keladigan OSCCAL qiymatini maqbul sozlash orqali yaxshilanishi mumkin.

Men hali dasturiy ta'minotga avtomatik usulni qo'sha olmadim, shuning uchun men quyidagi qo'lda protseduradan foydalanaman. Qaysi tashqi o'lchovlar mavjudligiga qarab, ikkita variant bo'lishi mumkin; yoki 555 portidagi uchburchak to'lqin shakli chastotasini o'lchashga qodir chastota o'lchagichi yoki ma'lum chastotali kvadrat to'lqin manbai. 10KHz 0V/3.3V darajali, 555 portiga ulanishi va to'lqin shaklini bekor qilishi mumkin, bu chastotani hisoblagichga majbur qiladi. Men ikkinchi usuldan foydalandim.

  1. Hisoblagichni kondensator ulanmagan holda normal quvvat bilan ishga tushiring.
  2. Chastotani o'lchagich yoki kvadrat to'lqin generatorini 555 portiga ulang.
  3. Tugmani bosib kalibrlash davrini qaytadan boshlang.
  4. Kalibrlash tsikli tugagandan so'ng, displey hisoblagich tomonidan aniqlangan chastotani va joriy OSCCAL qiymatini ko'rsatadi. Shuni esda tutingki, kalibrlash tsiklini qayta ishlatish o'lchangan chastotani ko'rsatish bilan oddiy displey yo'qligi o'rtasida almashadi.
  5. Agar ko'rsatilgan chastota ma'lum bo'lganidan past bo'lsa, demak, soat chastotasi juda yuqori va aksincha. Menimcha, OSCCAL o'sishi soatni taxminan 0,05% ga o'zgartiradi.
  6. Soatni yaxshilash uchun yangi OSCCAL qiymatini hisoblang.
  7. Dasturning yuqori qismidagi OSCCAL_VAL -ga yangi OSCCAL qiymatini kiriting.
  8. Yangi dasturiy ta'minotni qayta o'rnating va yuklang. Yangi OSCCAL qiymatini va yangi chastota o'lchovini ko'rsatadigan 1-5 bosqichlarni takrorlang.
  9. Agar kerak bo'lsa, eng yaxshi natijaga erishgunga qadar amallarni takrorlang.

Ta'minot zo'riqishidan kelib chiqadigan chastotalar siljishini minimallashtirish uchun USB -ni emas, balki oddiy quvvatni ishlatganda, bu sozlashning o'lchov qismini bajarish muhim.

Tavsiya: