İçindekiler:
- Adım 1: LiPo Pil Kullanarak Besleme Voltajını Azaltma
- Adım 2: CPU Saatini Azaltın
- Adım 3: Yerleşik Güç LED'ini ve Güç Düzenleyicisini çıkarın
- Adım 4: USB D- Çekme Direncinin (152 olarak işaretlenmiştir) 5 Volttan (VCC) Çıkarılması ve USB V+'a Bağlanması
- Adım 5: Delay() Yerine Uyku Kullanın
- Adım 6: Sigortaları Değiştirin
- 7. Adım: Daha Fazla Bilgi
Video: Digispark ATtiny85 için Pil Gücü Tüketimini Azaltma: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
veya: 2 yıl boyunca 2032 madeni para hücreli bir Arduino çalıştırmak.
Digispark Arduino Board'unuzu kutudan çıktığı gibi Arduino programı ile kullanarak 5 voltta 20 mA çeker.
2000 mAh'lik 5 voltluk bir powerbank ile sadece 4 gün çalışacaktır.
Adım 1: LiPo Pil Kullanarak Besleme Voltajını Azaltma
Besleme olarak 3,7 voltluk bir LiPo pil kullanarak Digispark kartınız sadece 13 mA çeker.
2000 mAh pil ile 6 gün çalışacaktır.
Adım 2: CPU Saatini Azaltın
Programınızda USB bağlantısı, yoğun matematik veya hızlı yoklama kullanmıyorsanız saat hızını düşürün. Örneğin. ağır sorgulamalı kızılötesi alıcı kitaplığı IRMP, 8 MHz'de iyi çalışır.
1 MHz'de Digispark'ınız 6 mA çeker. 2000 mAh pil ile 14 gün çalışacaktır.
Adım 3: Yerleşik Güç LED'ini ve Güç Düzenleyicisini çıkarın
Güç LED'ini diyota bağlayan bakır teli bir bıçakla keserek veya 102 direncini sökerek/devre dışı bırakarak güç LED'ini devre dışı bırakın.
Artık bir LiPo pil kullandığınız için, yerleşik güç düzenleyici IC'yi de çıkarabilirsiniz. Önce dış pimleri bir havya ve pim yardımıyla kaldırın. Ardından büyük konektörü lehimleyin ve regülatörü çıkarın. Küçük regülatörler için çok fazla lehim kullanın ve 3 pimi birlikte ısıtın, ardından çıkarın.
1 MHz ve 3,8 voltta Digispark'ınız artık 4,3 mA çekiyor. 2000 mAh pil ile 19 gün çalışacaktır.
Adım 4: USB D- Çekme Direncinin (152 olarak işaretlenmiştir) 5 Volttan (VCC) Çıkarılması ve USB V+'a Bağlanması
Bu değişiklik, mikronükleus önyükleyicinin all1.x sürümleriyle uyumludur. Anakartınızda zaten yeni bir 2.x önyükleyiciniz varsa, adında "activePullup" olan 2.5 sürümlerinden birine yükseltmeniz gerekir. Bunu yapmanın en kolay yolu, yeni digispark board paketini kurmak ve bootloader'ı önerilen (!!!varsayılan veya agresif değil!!!) sürümle yakmaktır.
Direncin ATtiny'yi gösteren tarafındaki bakır kabloyu kırın. Bu, USB arabirimini devre dışı bırakır ve buna karşılık Digispark kartını USB üzerinden programlama olanağını devre dışı bırakır. Yeniden etkinleştirmek, ancak yine de güçten tasarruf etmek için, rezistörü (152 ile işaretli) doğrudan shottky diyotun dış tarafında kolayca bulunabilen USB V+'a bağlayın. Diyot ve doğru tarafları bir süreklilik test cihazı kullanılarak bulunabilir. Bu diyotun bir tarafı ATtiny (VCC) ve Digispark 5V'nin 8 numaralı pinine bağlanır. Diğer taraf USB V+'a bağlıdır. Artık USB çekme direnci yalnızca Digispark kartı USB'ye bağlıysa etkinleştirilir; programlama sırasında.
Son 2 adım da burada belgelenmiştir.
1 MHz ve 3,8 voltta Digispark'ınız artık 3 mA çekiyor. 2000 mAh pil ile 28 gün çalışacaktır.
Adım 5: Delay() Yerine Uyku Kullanın
Uzun gecikmeler yerine güç tasarrufu sağlayan CPU uykusunu kullanabilirsiniz. Uykular 15, 30, 60, 120, 250, 500 milisaniyelik ve 1, 2, 4, 8 saniyelik adımlarla 15 milisaniyeden 8 saniyeye kadar sürebilir.
Fabrika digispark sigorta ayarları ile uykudan başlama süresi 65 milisaniye olduğundan, sadece 80 ms'den büyük gecikmeler uyku ile değiştirilebilir.
Uyku sırasında Digispark'ınız 27 µA çeker. 200 mAh düğme hücre 2032 ile 10 ay boyunca uyur.
Doğru olması için, Digispark'ın en az 8 saniyede bir uyanması, en az 65 milisaniye çalışması ve yaklaşık 2 mA akım çekmesi gerekir. Bu, ortalama 42 µA ve 6 aylık bir akıma yol açar. Bu senaryoda, programınızın 10 milisaniye (her 8 saniyede bir) çalışması neredeyse hiç fark etmez.
Uyku kullanma kodu:
#include #include uçucu uint16_t sNumberOfSleeps = 0; extern uçucu işaretsiz uzun millis_timer_millis; geçersiz kurulum() { sleep_enable(); set_sleep_mode(SLEEP_MODE_PWR_DOWN); // en derin uyku modu … } void loop(){ … sleepWithWatchdog(WDTO_250MS, true); // 250 ms uyku … sleepWithWatchdog(WDTO_2S, true); // 2 sn için uyku … } /* * aWatchdogPrescaler 0 (15 ms) ila 3(120 ms), 4 (250 ms) ila 9 (8000 ms) olabilir */ uint16_t hesaplamaSleepMillis(uint8_t aWatchdogPrescaler) { uint16_t tResultMillis = 8000; for (uint8_t i = 0; 200 uA tasarruf ediyorum // wdt_enable() kullan, çünkü WDP3 bitinin WDTCR kaydının 5. bitinde olduğunu ele alır wdt_enable(aWatchdogPrescaler); WDTCR |= _BV(WDIE) | _BV(WDIF); // Watchdog kesmesi etkinleştirme + kesme bayrağını sıfırlama -> ISR(WDT_vect) sei()'ye ihtiyaç duyar; // Kesintileri etkinleştirme sleep_cpu(); // Watchdog kesmesi bizi uykudan uyandırır wdt_disable(); // Çünkü sonraki kesme başka türlü olur wdt_enable() WDE'yi ayarladığından / Watchdog Sistem Sıfırlama Etkinleştir ADCSRA |= ADEN; /* * Zamanlayıcı saati devre dışı bırakılabileceğinden, millis ayarı yalnızca BOŞLUK modunda uyumazsa (SM2…0 bitleri 000'dir) */ eğer (aAdjustMillis && (MCUCR & ((_BV(SM1) | _BV(SM0)))) != 0) { millis_timer_millis += hesaplamaSleepMillis(aWatchdogPrescaler); } } /* * Bu kesme, işlemciyi uyku modundan çıkarır */ ISR(WDT_vect) { sNumberOfSleeps++; }
Adım 6: Sigortaları Değiştirin
27 mA'nın 22 mA'sı BOD (BrownOutDetection/düşük voltaj algılama) tarafından çekilir. BOD, yalnızca bir ISP programcısı ile yapılabilen sigortaların yeniden programlanmasıyla devre dışı bırakılabilir. Bu betiği kullanarak akımı 5,5 µA'ya düşürebilir ve ayrıca uykudan başlama süresini 4 milisaniyeye düşürebilirsiniz.
Kalan 5,5 µA'nın 5'i aktif bekçi sayacı tarafından çekilir. Uyandırma için harici sıfırlamaları kullanabiliyorsanız, mevcut tüketim veri sayfasında belirtildiği gibi 0,3 µA'ya kadar düşebilir.
Bu değere ulaşamıyorsanız bunun nedeni VCC ile pullup arasındaki schottky diyotun ters akımının çok yüksek olması olabilir. 12 MOhm'lik bir direncin ayrıca 3,7 voltta 0,3 µA çektiğini unutmayın.
Bu, örn. verileri burada olduğu gibi 3 milisaniye boyunca her 8 saniyede bir işleyin.
7. Adım: Daha Fazla Bilgi
Bir Digispark panosunun güncel çizimi.
Bu talimatları kullanarak projelendirin.
Önerilen:
Radon Azaltma Monitörü: 4 Adım
Radon Azaltma Monitörü: Genel BakışRadon, Amerika Birleşik Devletleri ve Avrupa Birliği genelinde evlerimizin altındaki kayalardan ve topraktan doğal olarak gelir. Her zaman etrafımızda kokusuz, tatsız ve görünmez bir radyoaktif gazdır. Radon sorunlu çünkü evimize sızıyor
Fantom Pil Gücü: 6 Adım (Resimlerle)
Fantom Pil Gücü: Hey.Kızım bazı ses ekipmanlarını değiştirdi ve oldukça hoş görünen bir yoğunlaştırıcı mikrofonla sonuçlandı. Sorun şu ki, hayalet güce ihtiyacı var ve ekipmanlarının hiçbirinde mevcut değildi. Dışarıda bir sürü hayali güç kaynağı var
12v Pil için DIY Pil Seviye Göstergesi/Otomatik Kesme: 5 Adım (Resimlerle)
12v Pil için Kendin Yap Pil Seviye Göstergesi/Otomatik Kesme: Kendin Yapçılar…Üst düzey şarj cihazlarımızın bu lityum polimer pilleri şarj etmekle meşgul olduğu durumlardan hepimiz geçtik, ancak yine de o 12v kurşun asit pili ve sizin için tek şarj cihazını şarj etmeniz gerekiyor. var kör biri…. Evet kör gibi
Kendin Yap Boyutlandır ve Pil Gücü Yedekleme Jeneratörü W/12V Derin Döngü Piller: 5 Adım (Resimlerle)
Kendin Yap Boyutlandır ve Pil Gücü Yedekleme Jeneratörü W/12V Derin Döngü Piller: ***NOT: Piller ve elektrikle çalışırken dikkatli olun. Pilleri kısa devre yapmayın. Yalıtımlı aletler kullanın. Elektrikle çalışırken tüm güvenlik kurallarına uyun.*** Bekleyen bir pil gücüyle bir dahaki sefere elektrik kesilmeden önce hazırlıklı olun
Tatil Neşesini Yaymak için Gücü Kullanın!: 5 Adım
Tatil Neşesini Yaymak için Kuvveti Kullanın!: Bu Eğitim Tablosu size ofis malzemelerinden bir masaüstü Noel ağacının nasıl oluşturulacağını, bir mikro denetleyici ve ayrı ayrı adreslenebilir LED'lerin nasıl ekleneceğini ve ardından Sphero Force Band'i (ikinci nesil Sphero BB ile piyasaya sürüldü) nasıl kullanacağınızı gösterecektir. -8 droid) çevirmek için