Daftar Isi:
- Langkah 1: Mengurangi Tegangan Pasokan dengan Menggunakan Baterai Lipo
- Langkah 2: Kurangi Jam CPU
- Langkah 3: Lepaskan LED Daya dan Pengatur Daya di Papan
- Langkah 4: Lepaskan Resistor USB D- Pullup (bertanda 152) Dari 5 Volt (VCC) dan Hubungkan ke USB V+
- Langkah 5: Gunakan Tidur Alih-alih Penundaan ()
- Langkah 6: Ubah Sekring
- Langkah 7: Informasi Lebih Lanjut
Video: Mengurangi Konsumsi Daya Baterai untuk Digispark ATtiny85: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
atau: Menjalankan Arduino dengan sel koin 2032 selama 2 tahun.
Menggunakan Papan Arduino Digispark Anda di luar kotak dengan program Arduino, ia menarik 20 mA pada 5 volt.
Dengan power bank 5 volt 2000 mAh hanya akan berjalan selama 4 hari.
Langkah 1: Mengurangi Tegangan Pasokan dengan Menggunakan Baterai Lipo
Menggunakan baterai LiPo dengan 3,7 volt sebagai suplai papan Digispark Anda hanya menarik 13 mA.
Dengan baterai 2000 mAh akan berjalan selama 6 hari.
Langkah 2: Kurangi Jam CPU
Jika Anda tidak menggunakan koneksi USB, matematika berat atau polling cepat dalam program Anda, kurangi kecepatan clock. Misalnya. perpustakaan penerima inframerah polling berat IRMP berjalan dengan baik pada 8 MHz.
Pada 1 MHz Digispark Anda menarik 6 mA. Dengan baterai 2000 mAh bisa bertahan selama 14 hari.
Langkah 3: Lepaskan LED Daya dan Pengatur Daya di Papan
Nonaktifkan LED daya dengan memutus kabel tembaga yang menghubungkan LED daya ke dioda dengan pisau atau lepaskan / nonaktifkan resistor 102.
Karena Anda menggunakan baterai LiPo sekarang, Anda juga dapat melepas IC regulator daya terpasang. Pertama angkat pin luar dengan bantuan besi solder dan pin. Kemudian solder konektor besar dan lepaskan regulator. Untuk regulator kecil, gunakan banyak solder dan panaskan semua 3 pin secara bersamaan, lalu lepaskan.
Pada 1 MHz dan 3,8 volt Digispark Anda sekarang menarik 4,3 mA. Dengan baterai 2000 mAh akan berjalan selama 19 hari.
Langkah 4: Lepaskan Resistor USB D- Pullup (bertanda 152) Dari 5 Volt (VCC) dan Hubungkan ke USB V+
Modifikasi ini kompatibel dengan versi all1.x dari bootloader micronucleus. Jika Anda sudah memiliki bootloader 2.x baru di papan Anda, Anda harus meningkatkan ke salah satu versi 2.5 dengan "activePullup" di namanya. Cara termudah untuk melakukannya, adalah menginstal paket papan digispark baru dan membakar bootloader dengan versi yang direkomendasikan (!!! bukan default atau agresif!!!).
Putuskan kabel tembaga di sisi resistor yang mengarah ke ATtiny. Ini menonaktifkan antarmuka USB dan pada gilirannya kemungkinan untuk memprogram papan Digispark melalui USB. Untuk mengaktifkannya kembali, namun tetap menghemat daya, sambungkan resistor (bertanda 152) langsung ke USB V+ yang mudah didapat di sisi luar dioda shottky. Dioda dan sisi-sisinya yang benar dapat ditemukan dengan menggunakan penguji kontinuitas. Satu sisi dioda ini terhubung ke pin 8 dari ATtiny (VCC) dan Digispark 5V. Sisi lain terhubung ke USB V+. Sekarang resistor pullup USB hanya diaktifkan jika papan Digispark terhubung ke USB mis. selama pemrograman.
2 langkah terakhir juga didokumentasikan di sini.
Pada 1 MHz dan 3,8 volt Digispark Anda sekarang menarik 3 mA. Dengan baterai 2000 mAh akan berjalan selama 28 hari.
Langkah 5: Gunakan Tidur Alih-alih Penundaan ()
Alih-alih penundaan lama, Anda dapat menggunakan tidur CPU hemat daya. Tidur dapat berlangsung dari 15 milidetik hingga 8 detik dalam langkah 15, 30, 60, 120, 250, 500 milidetik dan 1, 2, 4, 8 detik.
Karena waktu mulai dari tidur adalah 65 milidetik dengan pengaturan sekering digispark pabrik, hanya penundaan yang lebih besar dari 80 ms yang dapat diganti dengan tidur.
Selama tidur Digispark Anda menarik 27 A. Dengan sel tombol 200 mAh 2032 itu akan tidur selama 10 bulan.
Agar benar, Digispark setidaknya harus bangun setiap 8 detik, berjalan setidaknya 65 milidetik dan menarik arus sekitar 2 mA. Hal ini menyebabkan arus rata-rata 42 A dan 6 bulan. Dalam skenario ini hampir tidak ada bedanya jika program Anda berjalan selama 10 milidetik (setiap 8 detik).
Kode untuk menggunakan sleep adalah:
#include #include uint16_t volatil sNumberOfSleeps = 0; extern volatile unsigned long millis_timer_millis; void setup() { sleep_enable(); set_sleep_mode(SLEEP_MODE_PWR_DOWN); // mode tidur terdalam … } void loop(){ … sleepWithWatchdog(WDTO_250MS, benar); // tidur selama 250 md … sleepWithWatchdog(WDTO_2S, benar); // tidur selama 2 d … } /* * aWatchdogPrescaler dapat berupa 0 (15 md) hingga 3 (120 md), 4 (250 md) hingga 9 (8000 md) */ uint16_t computeSleepMillis(uint8_t aWatchdogPrescaler) { uint16_t tResultMillis = 8000; for (uint8_t i = 0; saya menghemat 200 uA // gunakan wdt_enable() karena menangani bahwa bit WDP3 berada di bit 5 dari register WDTCR wdt_enable(aWatchdogPrescaler); WDTCR |= _BV(WDIE) | _BV(WDIF); // Pengaktifan interupsi pengawas + setel ulang flag interupsi -> membutuhkan ISR(WDT_vect) sei(); // Aktifkan interupsi sleep_cpu(); // Interupsi pengawas akan membangunkan kita dari tidur wdt_disable(); // Karena interupsi berikutnya akan sebaliknya menyebabkan reset, karena wdt_enable() set WDE / Watchdog System Reset Aktifkan ADCSRA |= ADEN; /* * Karena jam timer dapat dinonaktifkan, sesuaikan milis hanya jika tidak tidur dalam mode IDLE (SM2…0 bit adalah 000) */ jika (aAdjustMillis && (MCUCR & ((_BV(SM1) | _BV(SM0)))) != 0) { millis_timer_millis += computeSleepMillis(aWatchdogPrescaler); } } /* * Interupsi ini membangunkan cpu dari tidur */ ISR(WDT_vect) { sNumberOfSleeps++; }
Langkah 6: Ubah Sekring
22 mA dari 27 mA ditarik oleh BOD (BrownOutDetection/deteksi undervoltage). BOD hanya dapat dinonaktifkan dengan memprogram ulang sekering, yang hanya dapat dilakukan dengan programmer ISP. Dengan menggunakan skrip ini, Anda dapat mengurangi arus hingga 5,5 A dan juga mengurangi waktu mulai dari tidur menjadi 4 milidetik.
5 dari 5,5 A yang tersisa diambil oleh penghitung pengawas aktif. Jika Anda dapat menggunakan reset eksternal untuk bangun, konsumsi saat ini dapat turun ke 0,3 A seperti yang tercantum dalam lembar data.
Jika Anda tidak dapat mencapai nilai ini, alasannya mungkin karena arus balik dioda schottky antara VCC dan pullup terlalu tinggi. Perlu diingat bahwa resistor 12 MOhm juga menarik 0,3 A pada 3,7 volt.
Ini menghasilkan konsumsi arus rata-rata 9 A (2,5 tahun dengan sel tombol 200 mAh 2032) jika Anda misalnya. memproses data setiap 8 detik selama 3 milidetik seperti di sini.
Langkah 7: Informasi Lebih Lanjut
Gambar papan Digispark saat ini.
Proyek menggunakan instruksi ini.
Direkomendasikan:
Penghemat Baterai, Sakelar Pemutus Pelindung Debit Dengan ATtiny85 untuk Mobil Asam Timbal atau Baterai Lipo: 6 Langkah
Penghemat Baterai, Sakelar Pemutus Pelindung Pelepasan Dengan ATtiny85 untuk Mobil Asam Timbal atau Baterai Lipo: Karena saya memerlukan beberapa pelindung baterai untuk mobil dan tata surya saya, saya menganggap yang komersial dengan harga $49 terlalu mahal. Mereka juga menggunakan terlalu banyak daya dengan 6 mA. Saya tidak dapat menemukan petunjuk apa pun tentang masalah ini. Jadi saya membuat sendiri yang menarik 2mA. Bagaimana
Sinyal Alarm Konsumsi Daya Shelly: 8 Langkah
Sinyal Alarm Konsumsi Daya Shelly: PERINGATAN Instruksi ini harus dilakukan oleh seseorang yang memiliki keterampilan yang baik sebagai tukang listrik. Saya tidak bertanggung jawab atas bahaya terhadap orang atau benda. INTRO: Di Italia, kontrak daya reguler adalah untuk 3KW, dan jika daya Anda konsumsi melebihi
Mengurangi Konsumsi Daya Relai - Menahan Arus Penjemputan Versus: 3 Langkah
Mengurangi Konsumsi Daya Relai - Menahan Arus Penjemputan Versus: Sebagian besar relai membutuhkan lebih banyak arus untuk bekerja pada awalnya daripada yang diperlukan untuk menahan relai setelah kontak ditutup. Arus yang dibutuhkan untuk menahan relai (Holding current) bisa jauh lebih kecil dari arus awal yang dibutuhkan untuk menggerakkan
Pengisi Daya Tenaga Surya, GSM, MP3, Baterai Go-Pro, Dengan Indikator Pengisian Daya Baterai!: 4 Langkah
Solar Charger, GSM, MP3, Baterai Go-Pro, Dengan Indikator Pengisian Baterai!: Di sini semuanya ditemukan di tempat sampah.-1 usb boost DC 0.9v/5v (atau bongkar Pemantik Rokok Mobil USB 5v,+ di akhir dan-di sisi elemen) -1 Kotak baterai (permainan anak-anak)-1 panel surya (di sini 12 V) tetapi 5v adalah yang terbaik!-1 Ba
Bagaimana Mengukur Konsumsi Daya Modul Komunikasi Nirkabel dengan Benar di Era Konsumsi Daya Rendah?: 6 Langkah
Bagaimana Mengukur Konsumsi Daya Modul Komunikasi Nirkabel dengan Benar di Era Konsumsi Daya Rendah?: Konsumsi daya rendah merupakan konsep yang sangat penting dalam Internet of Things. Sebagian besar node IoT perlu ditenagai oleh baterai. Hanya dengan mengukur konsumsi daya modul nirkabel dengan benar, kami dapat memperkirakan secara akurat berapa banyak baterai yang