Talaan ng mga Nilalaman:
- Hakbang 1: Pagbawas ng Boltahe ng Suplay sa pamamagitan ng Paggamit ng isang LiPo Baterya
- Hakbang 2: Bawasan ang CPU Clock
- Hakbang 3: Alisin ang sa Board Power LED at Power Regulator
- Hakbang 4: Ididiskonekta ang USB D- Pullup Resistor (minarkahang 152) Mula sa 5 Volt (VCC) at Ikonekta ito sa USB V +
- Hakbang 5: Gumamit ng Pagtulog sa halip na Pag-antala ()
- Hakbang 6: Baguhin ang mga piyus
- Hakbang 7: Karagdagang Impormasyon
Video: Pagbawas ng Pagkonsumo ng Lakas ng Baterya para sa Digispark ATtiny85: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
o: Pagpapatakbo ng isang Arduino na may 2032 coin cell sa loob ng 2 taon.
Gamit ang iyong Digispark Arduino Board sa labas ng kahon gamit ang isang Arduino program kumukuha ito ng 20 mA sa 5 volt.
Sa isang 5 volt power bank na 2000 mAh tatakbo lamang ito sa loob ng 4 na araw.
Hakbang 1: Pagbawas ng Boltahe ng Suplay sa pamamagitan ng Paggamit ng isang LiPo Baterya
Ang paggamit ng isang baterya ng LiPo na may 3.7 volt bilang supply ng iyong Digispark board ay gumuhit lamang ng 13 mA.
Sa isang baterya na 2000 mAh tatakbo ito sa loob ng 6 na araw.
Hakbang 2: Bawasan ang CPU Clock
Kung hindi ka gumagamit ng koneksyon sa USB, mabibigat na matematika o mabilis na botohan sa iyong programa, bawasan ang bilis ng orasan. Hal. ang mabibigat na polling infrared na tumatanggap ng library ng IRMP ay tumatakbo nang maayos sa 8 MHz.
Sa 1 MHz ang iyong Digispark ay kumukuha ng 6 mA. Sa isang baterya na 2000 mAh tatakbo ito sa loob ng 14 na araw.
Hakbang 3: Alisin ang sa Board Power LED at Power Regulator
Huwag paganahin ang kuryente na LED sa pamamagitan ng pagsira ng tanso na tanso na nag-uugnay sa LED na kuryente sa diode gamit ang isang kutsilyo o alisin / huwag paganahin ang 102 risistor.
Dahil gumagamit ka ng isang baterya ng LiPo ngayon, maaari mo ring alisin ang on board power regulator IC. Itaas muna ang mga panlabas na pin sa tulong ng isang solder iron at isang pin. Pagkatapos ay maghinang ng malaking konektor at alisin ang regulator. Para sa maliliit na regulator, gumamit ng mas maghinang at painitin ang lahat ng 3 pin nang magkasama, pagkatapos ay alisin ito.
Sa 1 MHz at 3.8 volt ang iyong Digispark ngayon ay kumukuha ng 4.3 mA. Sa isang baterya na 2000 mAh tatakbo ito sa loob ng 19 na araw.
Hakbang 4: Ididiskonekta ang USB D- Pullup Resistor (minarkahang 152) Mula sa 5 Volt (VCC) at Ikonekta ito sa USB V +
Ang pagbabago na ito ay katugma sa mga bersyon ng all1.x ng micronucleus bootloader. Kung mayroon ka ng isang bagong 2.x bootloader sa iyong board, dapat mong i-upgrade sa isa ang 2.5 na bersyon na may "activePullup" sa pangalan nito. Ang pinakamadaling paraan upang gawin ito, ay ang pag-install ng bagong digispark board package at sunugin ang bootloader gamit ang inirekumendang (!!! hindi ang default o agresibo !!!) na bersyon.
Basagin ang wire ng tanso sa gilid ng risistor na tumuturo sa ATtiny. Hindi pinagana nito ang interface ng USB at sa turn ang posibilidad na mai-program ang Digispark board sa pamamagitan ng USB. Upang paganahin itong muli, ngunit makatipid pa rin ng kuryente, ikonekta ang risistor (minarkahang 152) nang direkta sa USB V + na madaling magagamit sa panlabas na bahagi ng shottky diode. Ang diode at ang mga tamang gilid nito ay matatagpuan sa pamamagitan ng paggamit ng isang pagpapatuloy na tester. Ang isang bahagi ng diode na ito ay konektado sa pin 8 ng ATtiny (VCC) at Digispark 5V. Ang kabilang panig ay konektado sa USB V +. Ngayon ang resistor ng USB pullup ay aktibo lamang kung ang Digispark board ay konektado sa USB hal. sa panahon ng programa.
Ang huli na 2 mga hakbang ay naitala din dito.
Sa 1 MHz at 3.8 volt ang iyong Digispark ngayon ay kumukuha ng 3 mA. Sa isang baterya na 2000 mAh tatakbo ito sa loob ng 28 araw.
Hakbang 5: Gumamit ng Pagtulog sa halip na Pag-antala ()
Sa halip na matagal na pagkaantala maaari kang gumamit ng pag-save ng lakas sa pagtulog sa CPU. Ang pagtulog ay maaaring tumagal mula 15 milliseconds hanggang 8 segundo sa mga hakbang na 15, 30, 60, 120, 250, 500 milliseconds at 1, 2, 4, 8 segundo.
Dahil ang oras ng pagsisimula mula sa pagtulog ay 65 milliseconds kasama ang mga setting ng factory digispark fuse, ang mga pagkaantala lamang na mas malaki sa 80 ms ay maaaring mapalitan ng pagtulog.
Habang natutulog ang iyong Digispark ay kumukuha ng 27 µA. Sa isang 200 mAh button cell 2032 matutulog ito sa loob ng 10 buwan.
Upang maging tama, ang Digispark dapat na hindi bababa sa magising bawat 8 segundo, na tumatakbo nang hindi bababa sa 65 milliseconds at gumuhit sa paligid ng 2 mA kasalukuyang. Humahantong ito sa isang average na kasalukuyang 42 µA at 6 na buwan. Sa senaryong ito, halos walang pagkakaiba kung tumatakbo ang iyong programa sa loob ng 10 milliseconds (bawat 8 segundo).
Ang code para sa paggamit ng pagtulog ay:
#include #include pabagu-bago ng isip uint16_t sNumberOfS Sleeps = 0; pabagu-bago ng isip unsigned mahabang millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // deepest sleep mode…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // sleep for 250 ms… sleepWithWatchdog (WDTO_2S, totoo); // sleep for 2 s…} / * * aWatchdogPrescaler ay maaaring maging 0 (15 ms) hanggang 3 (120 ms), 4 (250 ms) hanggang sa 9 (8000 ms) * / uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; para sa (uint8_t i = 0; nakakatipid ako ng 200 uA // use wdt_enable () dahil hinahawakan nito na ang WDP3 bit ay nasa bit 5 ng WDTCR register wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Watchdog makagambala paganahin + i-reset ang abala ng bandila -> kailangan ng ISR (WDT_vect) sei (); // Paganahin ang makagambala sa pagtulog_cpu (); // Ang abala ng watchdog ay magigising sa amin mula sa pagtulog wdt_disable (); // Dahil ang susunod na makagambala ay kung hindi man humantong sa isang pag-reset, dahil ang wdt_enable () ay nagtatakda ng WDE / Watchdog System Reset Paganahin ang ADCSRA | = ADEN; / * * Dahil ang timer na oras ay maaaring hindi paganahin ayusin lamang ang millis kung hindi natutulog sa IDLE mode (SM2… 0 bits ay 000) * / kung (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis + = computeSleepMillis (aWatchdogPrescaler);}} / * * Nakagising ang cpu mula sa pagtulog * / ISR (WDT_vect) {sNumberOfS Sleeps ++;}
Hakbang 6: Baguhin ang mga piyus
22 mA ng 27 mA ay iginuhit ng BOD (BrownOutDetection / undervoltage detection). Ang BOD ay maaari lamang hindi paganahin sa pamamagitan ng muling pagprogram ng mga piyus, na magagawa lamang sa isang programmer ng ISP. Gamit ang script na ito maaari mong bawasan ang kasalukuyang pababa sa 5.5 µA at mabawasan din ang oras ng pagsisimula mula sa pagtulog hanggang 4 na milliseconds.
5 sa natitirang 5.5 µA ay iginuhit ng aktibong watchdog counter. Kung maaari mong gamitin ang panlabas na pag-reset para sa paggising, ang kasalukuyang pagkonsumo ay maaaring bumaba sa 0.3 µA tulad ng nakasaad sa datasheet.
Kung hindi mo maabot ang halagang ito, ang dahilan ay maaaring, na ang reverse current ng schottky diode sa pagitan ng VCC at ang pullup ay masyadong mataas. Tandaan na ang isang 12 MOhm risistor ay gumuhit din ng 0.3 µA sa 3.7 volt.
Nagreresulta ito sa isang average na kasalukuyang pagkonsumo ng 9 µA (2.5 taon na may 200 mAh button cell 2032) kung hal mo. iproseso ang data tuwing 8 segundo para sa 3 milliseconds tulad dito.
Hakbang 7: Karagdagang Impormasyon
Kasalukuyang pagguhit ng isang board ng Digispark.
Proyekto gamit ang mga tagubiling ito.
Inirerekumendang:
Lakas ng Baterya ng Phantom: 6 Mga Hakbang (na may Mga Larawan)
Lakas ng Baterya ng Phantom: Heyo. Nagpalit ang aking anak na babae ng ilang kagamitan sa audio at natapos sa isang condenser mic, na mukhang maganda. Ang problema ay kailangan nito ng lakas ng multo, at walang magagamit sa anuman sa kanyang kagamitan. Mayroong maraming mga supply ng kuryente ng multo doon
Pagbawas ng Pagkonsumo ng Lakas ng Relay - Hawak ng Kasalukuyang pickup ng Versus: 3 Mga Hakbang
Pagbawas ng Pagkonsumo ng Power ng Relay - Hawak ng Kasalukuyang pickup ng Versus: Karamihan sa mga relay ay nangangailangan ng mas maraming kasalukuyang upang kumilos nang una kaysa sa kinakailangang hawakan ang relay sa sandaling ang mga contact ay nagsara. Ang kasalukuyang kinakailangan upang hawakan ang relay sa (Holding kasalukuyang) ay maaaring mas malaki mas mababa kaysa sa paunang kasalukuyang kinakailangan upang kumilos
Arduino Wattmeter - Boltahe, Kasalukuyang at Pagkonsumo ng Lakas: 3 Hakbang
Arduino Wattmeter - Boltahe, Kasalukuyang at Pagkonsumo ng Lakas: Maaaring magamit ang isang aparato upang masukat ang natupok na kuryente. Ang circuit na ito ay maaari ring kumilos bilang isang Voltmeter at Ammeter upang masukat ang boltahe at kasalukuyang
Paano Wastong Sukatin ang Pagkonsumo ng Lakas ng Mga Wireless na Module ng Komunikasyon sa Era ng Mababang Pagkonsumo ng Kuryente ?: 6 Mga Hakbang
Paano Wastong Sukatin ang Pagkonsumo ng Lakas ng Mga Wireless na Module ng Komunikasyon sa Panahon ng Mababang Pagkonsumo ng Power?: Ang mababang paggamit ng kuryente ay isang napakahalagang konsepto sa Internet ng Mga Bagay. Karamihan sa mga IoT node ay kailangang pinalakas ng mga baterya. Sa pamamagitan lamang ng wastong pagsukat ng pagkonsumo ng kuryente ng module ng wireless maaari nating tumpak na matantya kung magkano ang baterya i
Gumagamit para sa Patay na Mga Baterya ng Kotse at Mga Sealed Lead Acid Baterya: 5 Hakbang (na may Mga Larawan)
Gumagamit para sa Patay na Mga Baterya ng Kotse at Mga Sealed Lead Acid Baterya: Maraming mga "patay" na baterya ng kotse ang talagang perpektong mahusay na mga baterya. Hindi na lamang nila maibigay ang daan-daang mga amp na kinakailangan upang makapagsimula ng kotse. Maraming mga "patay" na selyadong lead acid baterya ay talagang hindi patay na baterya na hindi na mapagkakatiwalaang maibigay