Orodha ya maudhui:

Mita ya Capacitor ya ATTiny85: Hatua 4
Mita ya Capacitor ya ATTiny85: Hatua 4

Video: Mita ya Capacitor ya ATTiny85: Hatua 4

Video: Mita ya Capacitor ya ATTiny85: Hatua 4
Video: LDmicro 3: PIC16F628A и Arduino Nano (программирование лестничной логики ПЛК микроконтроллера с помощью LDmicro) 2024, Julai
Anonim
Mita ya Capacitor ATTiny85
Mita ya Capacitor ATTiny85
Mita ya Capacitor ATTiny85
Mita ya Capacitor ATTiny85

Hii inaweza kufundishwa kwa mita ya Capacitor kulingana na ATTiny85 na sifa zifuatazo.

  • Kulingana na ATTiny85 (DigiStamp)
  • SSD1306 0.96 "OLED Onyesha
  • Upimaji wa masafa kwa capacitors yenye thamani ya chini 1pF - 1uF ukitumia oscillator 555
  • Kipimo cha wakati wa malipo ya capacitors yenye thamani kubwa 1uF - 50000uF
  • 2 bandari tofauti kutumika kwa njia za kupunguza uwezo stary
  • Thamani mbili za sasa zinazotumiwa kwa Wakati wa kuchaji ili kupunguza muda wa capacitors kubwa
  • Njia 555 za zero wakati wa kuanza, zinaweza kurudishwa tena na kifungo cha kushinikiza
  • Jaribio la haraka linalotumiwa kuchagua njia ipi inapaswa kutumika kwa kila mzunguko wa kipimo.
  • Usahihi wa njia ya kuchaji inaweza kuboreshwa kwa msaada wa marekebisho ya masafa ya saa ya OSCVAL

Hatua ya 1: Mpangilio na nadharia

Mpangilio na nadharia
Mpangilio na nadharia

Mpangilio unaonyesha ATTiny inayoendesha onyesho la SSD1306 OLED kupitia kiolesura cha I2C. Inatumiwa moja kwa moja kutoka kwa betri ya LiOn 300mAh na sehemu ya kuchaji imejumuishwa ambayo inaweza kutumika na sinia ya nje inayofanana ya LiOn.

Njia ya kwanza ya kipimo inategemea kupima masafa ya oscillator ya bure ya 555. Hii ina masafa ya msingi yaliyowekwa na vipinga na capacitor ambayo inapaswa kuwa usahihi wa hali ya juu kwani hii huamua usahihi wa vipimo. Nilitumia 820pF 1% polystyrene capacitor nilikuwa lakini maadili mengine karibu 1nF yanaweza kutumika. Thamani inapaswa kuingizwa kwenye programu pamoja na makadirio ya uwezo wowote wa kupotea (~ 20pF). Hii ilitoa mzunguko wa msingi wa karibu 16KHz. Pato la 555 limelishwa ndani ya PB2 ya ATTiny ambayo imewekwa kama kaunta ya vifaa. Kwa kupima hesabu kwa muda wa sekunde 1 mzunguko unaweza kuamuliwa. Hii imefanywa mwanzoni ili kuamua masafa ya msingi. Wakati capacitor iliyo chini ya jaribio imeongezwa sawa na msingi wa capacitor basi masafa hupunguzwa na wakati hii inapimwa na kulinganishwa na mzunguko wa msingi basi thamani ya uwezo ulioongezwa inaweza kuhesabiwa.

Kipengele kizuri cha njia hii ni kwamba thamani iliyohesabiwa inategemea tu usahihi wa msingi wa capacitor. Kipindi cha kipimo haijalishi. Azimio linategemea azimio la vipimo vya masafa ambayo ni ya juu sana kwa hivyo hata uwezo mdogo sana ulioongezwa unaweza kupimwa. Sababu inayozuia inaonekana kuwa 'kelele ya masafa' ya oscillator ya 555 ambayo kwangu ni sawa na karibu 0.3pF.

Njia inaweza kutumika juu ya anuwai nzuri. Ili kuboresha anuwai mimi hulandanisha kipindi cha kipimo ili kugundua kingo za kunde zinazoingia. Hii inamaanisha kuwa hata oscillation ya frequency ya chini kama 12Hz (na 1uF capacitor) hupimwa kwa usahihi.

Kwa capacitors kubwa mzunguko umepangwa kutumia njia ya muda wa malipo. Katika hii capacitor iliyo chini ya jaribio hutolewa ili kuhakikisha inaanza saa 0, kisha kushtakiwa kupitia upinzani unaojulikana kutoka kwa voltage ya usambazaji. ADC katika ATTiny85 hutumiwa kufuatilia voltage ya capacitor na wakati wa kutoka 0% hadi 50% malipo hupimwa. Hii inaweza kutumika kuhesabu uwezo. Kama kumbukumbu ya ADC pia ni voltage ya usambazaji basi hii haiathiri kipimo. Walakini, kipimo kamili cha wakati uliochukuliwa hutegemea masafa ya saa ya ATTiny85 na tofauti katika hii huathiri matokeo. Utaratibu unaweza kutumiwa kuboresha usahihi wa saa hii kwa kutumia rejista ya tuning kwenye ATTiny85 na hii inaelezewa baadaye.

Kutoa capacitor kwa 0V MOSFET n-channel hutumiwa pamoja na kipinga cha thamani ya chini ili kupunguza sasa kutokwa. Hii inamaanisha hata capacitors kubwa ya thamani inaweza kutolewa haraka.

Kutoza maadili ya capacitor 2 ya kontena la kuchaji hutumiwa. Thamani ya msingi inatoa wakati mzuri wa kuchaji kwa capacitors kutoka 1uF hadi karibu 50uF. P-channel MOSFET hutumiwa kulinganisha katika kontena la chini ili kuruhusu vitengo vya juu kupimwa kwa muda mzuri. Thamani zilizochaguliwa hutoa wakati wa kipimo cha sekunde 1 kwa capacitors hadi 2200uF na kwa muda mrefu zaidi kwa maadili makubwa. Mwisho wa chini wa thamani kipindi cha kipimo lazima kiwekwe kwa muda mrefu ili kuruhusu kuamua mabadiliko kupitia kizingiti cha 50% kufanywa kwa usahihi wa kutosha. Kiwango cha sampuli ya ADC ni karibu 25uSec kwa hivyo kipindi cha chini cha 22mSec inatoa usahihi mzuri.

Kwa kuwa ATTiny ina IO ndogo (pini 6) basi ugawaji wa rasilimali hii unahitaji kufanywa kwa uangalifu. Pini 2 zinahitajika kwa onyesho, 1 kwa pembejeo ya saa, 1 kwa ADC, 1 kwa udhibiti wa kutokwa na 1 kwa kudhibiti kiwango cha malipo. Nilitaka kudhibiti kitufe cha kushinikiza kuruhusu kufungia tena wakati wowote. Hii imefanywa kwa hi-jacking laini ya I2C SCL. Kwa kuwa ishara za I2C zimefunguliwa wazi basi hakuna mzozo wa umeme kwa kuruhusu kitufe kuvuta laini hii chini. Onyesho litaacha kufanya kazi na kifungo kikiwa na unyogovu lakini hii haina matokeo kwani inaendelea wakati kifungo kinatolewa.

Hatua ya 2: Ujenzi

Ujenzi
Ujenzi
Ujenzi
Ujenzi
Ujenzi
Ujenzi

Nilitengeneza hii kuwa sanduku ndogo iliyochapishwa ya 55mm x 55mm 3D iliyoundwa na kushikilia vitu kuu 4; bodi ya ATTiny85 DigiStamp, onyesho la SSD1306, betri ya LiOn, na bodi ndogo ya mfano iliyoshikilia kipima muda cha 55 na kudhibiti umeme.

Ufungaji kwenye

Sehemu zinahitajika

  • Bodi ya Stamp ya DTT85. Nilitumia toleo na kiunganishi cha microUSB ambacho hutumiwa kupakia firmware.
  • Onyesho la SSD1306 I2C OLED
  • Betri ya 300mAH LiOn
  • Ukanda mdogo wa bodi ya prototyping
  • Chip ya kipima muda ya CMOS 555 (TLC555)
  • n-Kituo MOSFET AO3400
  • p-Kituo MOSFET AO3401
  • Resistors 4R7, 470R, 22K, 2x33K
  • Capacitors 4u7, 220u
  • Precision Capacitor 820pF 1%
  • Kubadilisha slaidi ndogo
  • Vichwa vya pini 2 x 3 kwa bandari ya malipo na bandari za kipimo
  • Kitufe cha kushinikiza
  • Ufungaji
  • Hook up waya

Zana zinahitajika

  • Nuru nzuri ya kutengeneza chuma
  • Kibano

Kwanza fanya mzunguko wa kipima muda wa 555 na vifaa vya kuchaji kwenye bodi ya mfano. Ongeza njia za kuruka kwa unganisho la nje. Rekebisha swichi ya slaidi na sehemu ya kuchaji na bandari ya kupimia ndani ya boma. Rekebisha betri na fanya wiring kuu ya nguvu kwa kiwango cha kuchaji, swichi ya slaidi. Unganisha ardhi kushinikiza kitufe. Rekebisha ATTiny85 mahali na ukamilishe ndoano.

Unaweza kufanya marekebisho ya kuokoa nguvu kwenye bodi ya ATTiny kabla ya kufaa ambayo itapunguza sasa kidogo na kupanua maisha ya betri.

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

Hii sio muhimu kwani kuna swichi ya kuzima mita wakati haitumiki.

Hatua ya 3: Programu

Programu ya Mita hii ya Capacitor inaweza kupatikana kwa

github.com/roberttidey/CapacitorMeter

Huu ni mchoro wa Arduino. Inahitaji maktaba za onyesho na I2C ambayo inaweza kupatikana katika

github.com/roberttidey/ssd1306BB

github.com/roberttidey/I2CTinyBB

Hizi zimeboreshwa kwa ATTiny kuchukua kumbukumbu ndogo. Maktaba ya I2C ni njia ya kasi kubwa ya bang ambayo inaruhusu kutumia pini 2 zozote. Hii ni muhimu kwani njia za I2C zinazotumia bandari ya serial PB2 ambayo inapingana na kutumia pembejeo ya saa / kaunta inayohitajika kupima masafa ya 555.

Programu imeundwa kuzunguka mashine ya serikali ambayo inachukua kipimo kupitia mzunguko wa majimbo. ISR inasaidia kufurika kutoka kwa kaunta ya kipima muda ili kupanua maunzi 8. ISR ya pili inasaidia ADC inayofanya kazi katika hali endelevu. Hii inatoa jibu la haraka zaidi kwa mzunguko wa kuchaji unaovuka kizingiti.

Mwanzoni mwa kila mzunguko wa kipimo kazi ya GetMeasureMode huamua ni ipi njia inayofaa zaidi kutumia kwa kila kipimo.

Wakati njia 555 inatumiwa wakati wa kuhesabu huanza tu wakati kaunta imebadilika. Vivyo hivyo muda umesimamishwa tu baada ya muda wa kipimo cha majina na wakati pembeni hugunduliwa. Usawazishaji huu huruhusu hesabu sahihi ya masafa hata kwa masafa ya chini.

Wakati programu inapoanza vipimo 7 vya kwanza ni 'mizunguko ya upimaji' inayotumiwa kuamua masafa ya msingi ya 555 bila capacitor iliyoongezwa. Mizunguko 4 iliyopita ni wastani.

Kuna msaada wa kurekebisha rejista ya OSCAL kwa utaftaji wa saa. Ninashauri kuweka OSCCAL_VAL kwa 0 mwanzoni juu ya mchoro. Hii inamaanisha kuwa usawazishaji wa kiwanda utatumika hadi usanidi ufanyike.

Thamani ya capacitor ya msingi ya 555 inahitaji kubadilishwa inahitajika. Ninaongeza pia kwa kiasi kinachokadiriwa kwa uwezo wa kupotea.

Ikiwa vipinga tofauti hutumiwa kwa njia za malipo basi CHARGE_RCLOW na CHARGE_RCHIGH maadili katika programu pia itahitaji kubadilishwa.

Kusakinisha programu tumia njia ya kawaida ya digistamp ya kupakia programu na kuunganisha bandari ya usb wakati unachochewa. Acha swichi ya umeme katika nafasi ya kuzima kwani nguvu itatolewa na USB kwa shughuli hii.

Hatua ya 4: Uendeshaji na Upimaji wa hali ya juu

Uendeshaji ni moja kwa moja sana.

Baada ya kuwasha kitengo na kusubiri sifuri kumaliza ili unganisha kiunga chini ya jaribio kwa moja ya bandari mbili za vipimo. Tumia bandari 555 kwa vitengo vya chini vya thamani <1uF na bandari ya kuchaji kwa vitengo vya juu vya thamani. Kwa capacitors electrolytic unganisha terminal hasi kwa hatua ya kawaida ya dunia. Wakati wa kupima capacitor itatozwa hadi karibu 2V.

Bandari ya 555 inaweza kufanywa upya kwa kushikilia kitufe cha kushinikiza kwa karibu sekunde 1 na kutolewa. Hakikisha hakuna kitu kinachounganishwa na bandari ya 555 kwa hii.

Usawazishaji wa hali ya juu

Njia ya malipo hutegemea masafa ya saa kabisa ya ATTiny85 kupima wakati. Saa hutumia oscillator ya ndani ya RC iliyopangwa kutoa saa ya kawaida ya 8MHz. Ingawa utulivu wa oscillator ni mzuri kabisa kwa tofauti za voltage na joto mzunguko wake unaweza kuwa nje kwa asilimia chache hata ingawa umesawazishwa kiwandani. Usawazishaji huu unaweka rejista ya OSCCAL mwanzoni. Usawazishaji wa kiwanda unaweza kuboreshwa kwa kuangalia masafa na kufanya mpangilio bora zaidi wa thamani ya OSCCAL ili kutoshea bodi fulani ya ATTiny85.

Sijaweza kutoshea katika njia ya kiotomatiki zaidi kwenye firmware lakini kwa hivyo ninatumia utaratibu ufuatao wa mwongozo. Tofauti mbili zinawezekana kulingana na vipimo gani vya nje vinavyopatikana; ama mita ya masafa yenye uwezo wa kupima masafa ya umbo la mawimbi ya pembetatu kwenye bandari ya 555, au chanzo cha wimbi la mraba wa masafa inayojulikana n.k. 10KHz na viwango vya 0V / 3.3V ambavyo vinaweza kushikamana na bandari ya 555 na kupuuza muundo wa wimbi kulazimisha mzunguko huo kwenye kaunta. Nilitumia njia ya pili.

  1. Anza mita kwa nguvu yake ya kawaida bila capacitors iliyounganishwa.
  2. Unganisha mita ya masafa au jenereta ya mawimbi ya mraba kwenye bandari 555.
  3. Anzisha upya mzunguko wa hesabu kwa kushinikiza kitufe.
  4. Mwisho wa mzunguko wa usawazishaji onyesho litaonyesha masafa kama inavyoamuliwa na kaunta na thamani ya sasa ya OSCCAL. Kumbuka kuwa matumizi ya mara kwa mara ya mzunguko wa hesabu yatabadilika kati ya kuonyesha mzunguko uliopimwa na kawaida hakuna onyesho.
  5. Ikiwa masafa yaliyoonyeshwa ni chini ya kile kinachojulikana basi inamaanisha masafa ya saa ni ya juu sana na kinyume chake. Ninaona nyongeza ya OSCCAL inarekebisha saa kwa karibu 0.05%
  6. Hesabu thamani mpya ya OSCCAL kuboresha saa.
  7. Ingiza thamani mpya ya OSCCAL kwenye OSCCAL_VAL juu ya firmware.
  8. Jenga upya na upakie firmware mpya. Rudia hatua 1 -5 ambazo zinapaswa kuonyesha thamani mpya ya OSCCAL na kipimo kipya cha masafa.
  9. Ikiwa ni lazima rudia hatua tena hadi matokeo bora yapatikane.

Kumbuka ni muhimu kufanya sehemu ya upimaji wa tuning hii wakati wa kutumia nguvu ya kawaida sio USB ili kupunguza mabadiliko yoyote ya masafa kutokana na voltage ya usambazaji.

Ilipendekeza: