Përmbajtje:

Metër kondensator ATTiny85: 4 hapa
Metër kondensator ATTiny85: 4 hapa

Video: Metër kondensator ATTiny85: 4 hapa

Video: Metër kondensator ATTiny85: 4 hapa
Video: ATtiny13 и ATtiny85. Обзор и программирование с помощью Arduino 2024, Korrik
Anonim
Metër kondensator ATTiny85
Metër kondensator ATTiny85
Metër kondensator ATTiny85
Metër kondensator ATTiny85

Ky udhëzues është për një matës kondensatorësh të bazuar në ATTiny85 me karakteristikat e mëposhtme.

  • Bazuar në ATTiny85 (DigiStamp)
  • SSD1306 Ekran OLED 0.96"
  • Matja e frekuencës për kondensatorët me vlerë të ulët 1pF - 1uF duke përdorur oshilator 555
  • Matja e kohës së ngarkimit për kondensatorët me vlerë të lartë 1uF - 50000uF
  • 2 porte të veçanta të përdorura për metodat për të minimizuar kapacitetin e ndenjur
  • Dy vlera të rrymës të përdorura për Charge Time për të minimizuar kohën për kondensatorë të mëdhenj
  • Metoda 555 vetë zero në fillim, mund të rivlerësohet me butonin shtypës
  • Një test i shpejtë i përdorur për të zgjedhur se cila metodë duhet të përdoret për çdo cikël matjeje.
  • Saktësia e metodës së kohës së ngarkimit mund të përmirësohet me mbështetjen për rregullimin e frekuencës së orës OSCVAL

Hapi 1: Skematike dhe Teori

Skematike dhe Teori
Skematike dhe Teori

Skema tregon ATTiny që drejton ekranin OLED SSD1306 përmes një ndërfaqeje I2C. Mundësohet drejtpërdrejt nga një bateri LiOn 300mAh dhe përfshihet një pikë karikimi e cila mund të përdoret me një ngarkues të jashtëm të pajtueshëm me LiOn.

Metoda e parë e matjes bazohet në matjen e frekuencës së një oshilatori të lirë 555. Kjo ka një frekuencë bazë të përcaktuar nga rezistorët dhe një kondensator i cili duhet të jetë saktësi e lartë pasi kjo përcakton saktësinë e matjeve. Kam përdorur një kondensator 820pF 1% polistiren që kisha, por vlera të tjera rreth 1nF mund të përdoren. Vlera duhet të futet në softuer së bashku me një vlerësim të çdo kapaciteti të humbur (~ 20pF). Kjo dha një frekuencë bazë prej rreth 16KHz. Prodhimi i 555 futet në PB2 të ATTiny i cili është programuar si një numërues harduerësh. Duke matur numërimin gjatë një periudhe prej rreth 1 sekonde, frekuenca mund të përcaktohet. Kjo bëhet në fillimin për të përcaktuar frekuencën bazë. Kur një kondensator nën provë shtohet paralelisht me kondensatorin bazë atëherë frekuenca ulet dhe kur kjo matet dhe krahasohet me frekuencën bazë atëherë mund të llogaritet vlera e kapacitetit të shtuar.

Karakteristika e bukur e kësaj metode është se vlera e llogaritur varet vetëm nga saktësia e kondensatorit bazë. Periudha e matjes nuk ka rëndësi. Rezolucioni varet nga zgjidhja e matjeve të frekuencës e cila është mjaft e lartë kështu që edhe kapaciteti shumë i vogël i shtuar mund të matet. Faktori kufizues duket të jetë 'zhurma e frekuencës' e oshilatorit 555 i cili për mua është ekuivalent me rreth 0.3pF.

Metoda mund të përdoret në një gamë të mirë. Për të përmirësuar gamën, unë sinkronizoj periudhën e matjes me zbulimin e skajeve të impulseve hyrëse. Kjo do të thotë që edhe luhatjet me frekuencë të ulët si 12Hz (me një kondensator 1uF) maten me saktësi.

Për kondensatorët më të mëdhenj qarku është i rregulluar për të përdorur një metodë të kohës së ngarkimit. Në këtë kondensatori nën provë është shkarkimi për të siguruar që fillon në 0, pastaj ngarkohet përmes një rezistence të njohur nga tensioni i furnizimit. Një ADC në ATTiny85 përdoret për të monitoruar tensionin e kondensatorit dhe matet koha për të shkuar nga 0% në 50% të ngarkimit. Kjo mund të përdoret për të llogaritur kapacitetin. Meqenëse referenca për ADC është gjithashtu tensioni i furnizimit, atëherë kjo nuk ndikon në matjen. Sidoqoftë, masa absolute e kohës së marrë varet nga frekuenca e orës ATTiny85 dhe ndryshimet në këtë ndikojnë në rezultat. Një procedurë mund të përdoret për të përmirësuar saktësinë e kësaj ore duke përdorur një regjistër akordimi në ATTiny85 dhe kjo është përshkruar më vonë.

Për shkarkimin e kondensatorit në 0V, një n-kanal MOSFET përdoret së bashku me një rezistencë me vlerë të ulët për të kufizuar rrymën e shkarkimit. Kjo do të thotë që edhe kondensatorët me vlerë të madhe mund të shkarkohen me shpejtësi.

Për të ngarkuar kondensatorin përdoren 2 vlera të rezistencës së karikimit. Një vlerë bazë jep kohë të arsyeshme të karikimit për kondensatorët nga 1uF deri në rreth 50uF. Një MOSFET me kanal p përdoret për të paralelizuar në një rezistencë më të ulët për të lejuar që kondensatorët me vlerë më të lartë të maten në një interval të arsyeshëm. Vlerat e zgjedhura japin një kohë matjeje prej rreth 1 sekonde për kondensatorët deri në 2200uF dhe proporcionalisht më të gjatë për vlerat më të mëdha. Në fundin më të ulët të vlerës, periudha e matjes duhet të mbahet në mënyrë të arsyeshme e gjatë për të lejuar që përcaktimi i kalimit përmes pragut 50% të bëhet me saktësi të mjaftueshme. Shkalla e marrjes së mostrave të ADC është rreth 25uSec kështu që një periudhë minimale prej 22mSec jep saktësi të arsyeshme.

Meqenëse ATTiny ka IO të kufizuar (6 kunja), atëherë alokimi i këtij burimi duhet të bëhet me kujdes. 2 kunja nevojiten për ekranin, 1 për hyrjen e kohëmatësit, 1 për ADC, 1 për kontrollin e shkarkimit dhe 1 për kontrollin e shkallës së ngarkimit. Doja një kontroll butoni për të lejuar ri-zeroimin në çdo pikë. Kjo është bërë duke shkrepur linjën I2C SCL. Ndërsa sinjalet I2C janë të hapura, atëherë nuk ka konflikt elektrik duke lejuar që butoni të tërheqë këtë vijë të ulët. Ekrani do të ndalojë së punuari me butonin e shtypur, por kjo nuk ka asnjë pasojë pasi vazhdon kur të lëshohet butoni.

Hapi 2: Ndërtimi

Ndërtim
Ndërtim
Ndërtim
Ndërtim
Ndërtim
Ndërtim

Unë e bëra këtë në një kuti të vogël 55 mm x 55 mm të printuar 3D. E krijuar për të mbajtur 4 përbërësit kryesorë; bordi ATTiny85 DigiStamp, ekrani SSD1306, bateria LiOn dhe një pjesë e vogël bordi prototip që mban kohëmatësin 55 dhe elektronikën e kontrollit të ngarkimit.

Shtojcë në

Pjesët e nevojshme

  • Bordi ATTiny85 DigiStamp. Kam përdorur një version me një lidhës microUSB i cili përdoret për ngarkimin e firmuerit.
  • Ekran OLED SSD1306 I2C
  • Bateri LiOn prej 300 mAH
  • Rrip i vogël i bordit prototipues
  • Cipi i kohëmatësit CMOS 555 (TLC555)
  • n-Channel MOSFET AO3400
  • p-Channel MOSFET AO3401
  • Rezistentët 4R7, 470R, 22K, 2x33K
  • Kondensatorët 4u7, 220u
  • Kondensator preciz 820pF 1%
  • Çelës rrëshqitës në miniaturë
  • Tituj 2 x 3 pin për portin e ngarkimit dhe portat e matjes
  • Butoni i Shtypjes
  • Rrethim
  • Lidheni tela

Mjetet e nevojshme

  • Hekuri i saldimit me pika të holla
  • Piskatore

Së pari krijoni qarkun 555 të kohëmatësit dhe komponentët e karikimit në bordin prototip. Shtoni drejtues fluturues për lidhjet e jashtme. Vendosni çelësin rrëshqitës dhe pikën e ngarkimit dhe portin matës në rrethim. Fiksoni baterinë dhe bëni lidhjet kryesore të energjisë në pikën e ngarkimit, çelësin rrëshqitës. Lidhni tokën me butonin e shtypjes. Vendosni ATTiny85 në vend dhe përfundoni lidhjen.

Ju mund të bëni disa modifikime të kursimit të energjisë në bordin ATTiny para se të montoni, gjë që do të zvogëlojë pak rrymën dhe do të zgjasë jetën e baterisë.

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

Kjo nuk është kritike pasi ekziston një ndërprerës i energjisë për të fikur njehsorin kur nuk është në përdorim.

Hapi 3: Softuer

Softueri për këtë Matës Kondensatori mund të gjendet në

github.com/roberttidey/CapacitorMeter

Ky është një skicë e bazuar në Arduino. Ajo ka nevojë për biblioteka për ekranin dhe I2C të cilat mund të gjenden në

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

Këto janë optimizuar që ATTiny të marrë memorie minimale. Biblioteka I2C është një metodë e shpërthimit të bitit me shpejtësi të lartë e cila lejon përdorimin e çdo 2 kunjash. Kjo është e rëndësishme pasi metodat I2C që përdorin portin serik përdorin PB2 i cili është në kundërshtim me përdorimin e hyrjes së kohëmatësit/numëruesit të nevojshëm për të matur frekuencën 555.

Softueri është i strukturuar rreth një makine shtetërore e cila merr matjen përmes një cikli gjendjesh. Një ISR mbështet tejmbushjen nga numëruesi i kohëmatësit për të zgjeruar harduerin 8 bit. Një ISR e dytë mbështet ADC që funksionon në mënyrë të vazhdueshme. Kjo jep përgjigjen më të shpejtë për qarkun e karikimit që kalon pragun.

Në fillim të çdo cikli të matjes, një funksion getMeasureMode përcakton se cila është metoda më e përshtatshme për t'u përdorur për secilën matje.

Kur përdoret metoda 555, koha e numërimit fillon vetëm kur numëruesi ka ndryshuar. Po kështu, koha ndalet vetëm pas intervalit nominal të matjes dhe kur zbulohet një skaj. Ky sinkronizim lejon llogaritjen e saktë të frekuencës edhe për frekuenca të ulëta.

Kur fillon softueri, 7 matjet e para janë 'cikle kalibrimi' të përdorura për të përcaktuar frekuencën bazë të 555 pa kondensator të shtuar. Mesatarisht 4 ciklet e fundit.

Ekziston mbështetje për rregullimin e regjistrit OSCAL për akordimin e orës. Unë sugjeroj vendosjen e OSCCAL_VAL në 0 fillimisht në krye të skicës. Kjo do të thotë që kalibrimi i fabrikës do të përdoret derisa të kryhet akordimi.

Kërkohet të rregullohet vlera e kondensatorit bazë 555. Unë gjithashtu shtoj një sasi të vlerësuar për kapacitetin e humbur.

Nëse përdoren rezistorë të ndryshëm për metodat e ngarkimit, atëherë vlerat CHARGE_RCLOW dhe CHARGE_RCHIGH në softuer gjithashtu do të duhet të ndryshohen.

Për të instaluar softuerin përdorni metodën normale digistamp të ngarkimit të softuerit dhe lidhjes së portës usb kur ju kërkohet. Lini çelësin e energjisë në pozicionin e fikur pasi energjia do të furnizohet nga USB për këtë operacion.

Hapi 4: Funksionimi dhe Kalibrimi i Avancuar

Operacioni është shumë i drejtpërdrejtë.

Pasi të ndizni njësinë dhe të prisni që zero e kalibrimit të përfundojë, atëherë lidhni kondensatorin në provë me njërën nga dy portat e matjes. Përdorni portat 555 për kondensatorët me vlerë të ulët <1uF dhe portin e ngarkimit për kondensatorët me vlerë më të lartë. Për kondensatorët elektrolitikë lidhni terminalin negativ me pikën e zakonshme të tokës. Gjatë testimit kondensatori do të ngarkohet deri në rreth 2V.

Porta 555 mund të rifillohet duke e mbajtur të shtypur butonin për rreth 1 sekondë dhe duke e lëshuar. Sigurohuni që asgjë nuk është e lidhur me portën 555 për këtë.

Kalibrim i avancuar

Metoda e ngarkimit mbështetet në frekuencën absolute të orës së ATTiny85 për të matur kohën. Ora përdor oshilatorin e brendshëm RC të rregulluar për të dhënë një orë nominale 8MHz. Edhe pse qëndrueshmëria e oshilatorit është mjaft e mirë për ndryshimet e tensionit dhe temperaturës, frekuenca e tij mund të jetë jashtë disa përqind, edhe pse është e kalibruar në fabrikë. Ky kalibrim vendos regjistrin OSCCAL në fillim. Kalibrimi i fabrikës mund të përmirësohet duke kontrolluar frekuencën dhe duke bërë vendosjen më optimale të vlerës OSCCAL për t'iu përshtatur një bordi të veçantë ATTiny85.

Unë nuk kam arritur të futem në një metodë më automatike në firmware, kështu që unë përdor procedurën e mëposhtme manuale. Dy ndryshime janë të mundshme në varësi të masave të jashtme që janë në dispozicion; ose nje njehsor frekuence i afte per te matur frekuencen e formes valore trekendeshe ne porten 555, ose nje burim vale katrore me frekuence te njohur p.sh. 10KHz me nivele 0V/3.3V të cilat mund të lidhen me portën 555 dhe të anashkalojnë formën e valës për ta detyruar atë frekuencë në numërues. Kam përdorur metodën e dytë.

  1. Nisni njehsorin në fuqinë e tij normale pa kondensatorë të lidhur.
  2. Lidhni njehsorin e frekuencës ose gjeneratorin e valës katrore me portën 555.
  3. Rinisni ciklin e kalibrimit duke shtypur butonin.
  4. Në fund të ciklit të kalibrimit, ekrani do të tregojë frekuencën e përcaktuar nga numëruesi dhe vlerën aktuale OSCCAL. Vini re se përdorimi i përsëritur i ciklit të kalibrimit do të kalojë midis shfaqjes së frekuencës së matur dhe ekranit normal.
  5. Nëse frekuenca e shfaqur është më e vogël se ajo që dihet atëherë do të thotë se frekuenca e orës është shumë e lartë dhe anasjelltas. Unë gjej që një rritje OSCCAL rregullon orën me rreth 0.05%
  6. Llogaritni një vlerë të re OSCCAL për të përmirësuar orën.
  7. Futni vlerën e re OSCCAL në OSCCAL_VAL në krye të firmuerit.
  8. Rindërtoni dhe ngarkoni firmware të ri. Përsëritni hapat 1 -5 të cilët duhet të tregojnë vlerën e re OSCCAL dhe matjen e frekuencës së re.
  9. Nëse është e nevojshme, përsëritni hapat përsëri derisa të arrihet rezultati më i mirë.

Shënimi është i rëndësishëm për të bërë pjesën matëse të këtij akordimi kur punoni me energji normale dhe jo USB për të minimizuar çdo zhvendosje të frekuencës për shkak të tensionit të furnizimit.

Recommended: