Mündəricat:

Digispark ATtiny85: 7 Addım üçün Batareya Gücünün Azaldılması
Digispark ATtiny85: 7 Addım üçün Batareya Gücünün Azaldılması

Video: Digispark ATtiny85: 7 Addım üçün Batareya Gücünün Azaldılması

Video: Digispark ATtiny85: 7 Addım üçün Batareya Gücünün Azaldılması
Video: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Dekabr
Anonim
Digispark ATtiny85 üçün Batareya Gücünün Azaldılması
Digispark ATtiny85 üçün Batareya Gücünün Azaldılması
Digispark ATtiny85 üçün Batareya Gücünün Azaldılması
Digispark ATtiny85 üçün Batareya Gücünün Azaldılması

və ya: 2032 sikkə hüceyrəsi olan bir Arduino -nu 2 il işlədin.

Digispark Arduino lövhənizi bir Arduino proqramı ilə 5 voltda 20 mA çəkir.

2000 mAh olan 5 volt güc bankı ilə yalnız 4 gün işləyəcək.

Addım 1: LiPo Batareya istifadə edərək Təchizat Gərginliyinin Azaldılması

LiPo Batareya istifadə edərək Təchizat Gərginliyinin Azaldılması
LiPo Batareya istifadə edərək Təchizat Gərginliyinin Azaldılması

Digispark lövhənizin təchizatı olaraq 3,7 volt LiPo batareyasından istifadə etməklə cəmi 13 mA çəkir.

2000 mAh batareya ilə 6 gün işləyəcək.

Addım 2: CPU saatını azaldın

Proqramınızda USB bağlantısı, ağır riyaziyyat və ya sürətli sorğu istifadə etmirsinizsə, saat sürətini azaldın. Məsələn, ağır sorğu infraqırmızı qəbul kitabxanası IRMP 8 MHz -də yaxşı işləyir.

1 MHz -də Digispark 6 mA çəkir. 2000 mAh batareya ilə 14 gün işləyəcək.

Addım 3: Gəmidəki Güc LEDini və Güc Tənzimləyicisini çıxarın

Güc LED -ini diodla bıçaqla bağlayan mis telini qıraraq güc LEDini söndürün və ya 102 rezistorunu çıxarın / söndürün.

İndi LiPo batareyası istifadə etdiyiniz üçün, təyyarədəki IC tənzimləyicisini də çıxara bilərsiniz. Əvvəlcə bir lehimləmə dəmiri və bir pin istifadə edərək xarici sancaqları qaldırın. Sonra böyük konnektoru lehimləyin və tənzimləyicini çıxarın. Kiçik tənzimləyicilər üçün çoxlu lehim istifadə edin və 3 pimi birlikdə qızdırın, sonra çıxarın.

1 MHz və 3.8 voltda Digisparkınız indi 4.3 mA çəkir. 2000 mAh batareya ilə 19 gün işləyəcək.

Addım 4: USB D-Çekmə Rezistorunu (152 işarəsi ilə) 5 Voltdan (VCC) ayırın və USB V+ -ya qoşun

USB D- Pullup Resistorunu ayırın (152 ilə qeyd olunur) 5 Voltdan (VCC) və USB V+ -ya qoşun
USB D- Pullup Resistorunu ayırın (152 ilə qeyd olunur) 5 Voltdan (VCC) və USB V+ -ya qoşun

Bu dəyişiklik micronucleus bootloader -in all1.x versiyaları ilə uyğundur. Lövhənizdə artıq yeni bir 2.x yükləyicisi varsa, adında "activePullup" olan 2.5 versiyadan birinə yüksəltməlisiniz. Bunun ən asan yolu, yeni digispark lövhə paketini qurmaq və bootloader -ı tövsiyə olunan (!!! standart və ya aqressiv deyil !!!) versiyası ilə yandırmaqdır.

Rezistorun yan tərəfindəki ATtiny -ə işarə edən mis teli kəsin, bu USB interfeysini deaktiv edir və öz növbəsində Digispark lövhəsini USB vasitəsilə proqramlaşdırmaq imkanı verir. Yenidən işə salmaq, lakin yenə də enerjiyə qənaət etmək üçün, rezistoru (152 işarəsi ilə) birbaşa shottky diodunun xarici tərəfində asanlıqla mövcud olan USB V+ -ya qoşun. Diod və düzgün tərəfləri bir davamlılıq test cihazı istifadə edərək tapıla bilər. Bu diodun bir tərəfi ATtiny (VCC) və Digispark 5V pin 8 -ə bağlıdır. Digər tərəf USB V+ilə əlaqəlidir. İndi USB çəkmə rezistoru yalnız Digispark lövhəsi USB -yə qoşulduqda işə salınır. proqramlaşdırma zamanı.

Sonuncu 2 addım da burada sənədləşdirilmişdir.

1 MHz və 3.8 voltda Digispark 3 mA çəkir. 2000 mAh batareya ilə 28 gün işləyəcək.

Addım 5: Gecikmə yerinə Yuxudan istifadə edin ()

Gecikmə yerinə Yuxudan istifadə edin ()
Gecikmə yerinə Yuxudan istifadə edin ()

Uzun gecikmələr əvəzinə enerji qənaət edən CPU yuxusundan istifadə edə bilərsiniz. Yuxular 15, 30, 60, 120, 250, 500 milisaniyə və 1, 2, 4, 8 saniyəlik addımlarla 15 millisaniyədən 8 saniyəyə qədər davam edə bilər.

Fabrik digispark sigorta parametrləri ilə yuxudan başlama müddəti 65 milisaniyə olduğundan, yalnız 80 ms -dən böyük gecikmələr yuxu ilə əvəz edilə bilər.

Yuxu zamanı Digispark 27 µA çəkir. 200 mAh düymə hüceyrəsi 2032 ilə 10 ay yatacaq.

Doğru olmaq üçün, Digispark ən az 65 millisaniyə işləyərək və təxminən 2 mA cərəyan çəkərək hər 8 saniyədən bir oyanmalıdır. Bu, ortalama 42 µA və 6 aylıq bir cərəyana səbəb olur. Bu ssenaridə, proqramınızın 10 milisaniyə (hər 8 saniyədə) işləməsi demək olar ki, fərq etməz.

Yuxudan istifadə kodu:

#include #include uçucu uint16_t sNumberOfSleeps = 0; xarici uçucu işarəsiz uzun millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // ən dərin yuxu rejimi…} void loop () {… sleepWithWatchdog (WDTO_250MS, doğru); // 250 ms yuxu… sleepWithWatchdog (WDTO_2S, doğru); // 2 saniyə yuxu…}/ * * aWatchdogPrescaler 0 (15 ms) - 3 (120 ms), 4 (250 ms) - 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = ola bilər 8000; for (uint8_t i = 0; i 200 uA saxlayır // wdt_enable () istifadə edir, çünki WDP3 biti WDTCR qeydinin wdt_enable (aWatchdogPrescaler) bitinin 5 -də olduğunu idarə edir; WDTCR | = _BV (WDIE) | _BV (WDIF); // Gözətçi müdaxiləsini aktiv et + kəsmə bayrağını sıfırla -> ISR (WDT_vect) sei () lazımdır; // Aralıqları aktiv et yuxu_cpu (); // Gözətçi müdaxiləsi bizi yuxudan oyandıracaq wdt_disable (); // Çünki növbəti fasilə başqa cür olacaq wdt_enable () WDE / Watchdog System Reset Encable ADCSRA | = ADEN; / * * timer saatı söndürülə biləcəyi üçün yalnız IDLE rejimində yatmadığı təqdirdə millisi tənzimləyin (SM2… 0 bit 000 -dir) * / (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0)))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Bu fasilə cpu yuxudan oyadır * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Addım 6: Sigortaları dəyişdirin

27 mA -nın 22 mA -ı BOD (BrownOutDetection/undervoltage detect) tərəfindən çəkilir. BOD yalnız qoruyucuları yenidən proqramlaşdırmaqla söndürülə bilər, bu yalnız bir ISP proqramçısı ilə edilə bilər. Bu skriptdən istifadə edərək cərəyanı 5.5 µA -a qədər azalda bilərsiniz və yuxudan başlayaraq 4 millisaniyəyə qədər işə salma müddətini azalda bilərsiniz.

Qalan 5.5 µA -dan 5 -i aktiv nəzarətçi sayğacı tərəfindən çəkilir. Oyanmaq üçün xarici sıfırlamalardan istifadə edə bilsəniz, cari istehlak məlumat cədvəlində göstərildiyi kimi 0.3 µA -a enə bilər.

Bu dəyərə çata bilmirsinizsə, bunun səbəbi VCC ilə çəkmə arasındakı schottky diodunun tərs cərəyanının çox yüksək olması ola bilər. Unutmayın ki, 12 MOhm rezistor da 3.7 voltda 0.3 µA çəkir.

Bu, orta hesabla 9 µA (200 mAh düyməli hüceyrə 2032 ilə 2,5 il) istehlakına səbəb olur. buradakı kimi 3 milisaniyədə hər 8 saniyədə bir məlumat işlə.

Addım 7: Əlavə məlumat

Digispark lövhəsinin cari təsviri.

Bu təlimatları istifadə edərək layihə hazırlayın.

Tövsiyə: