Catatan: Saya ingin menunjukkan bahwa, meskipun jawaban saya diterima, pembaca (Anda) harus benar-benar membaca jawaban Anindo terlebih dahulu jika Anda benar-benar ingin menghemat energi dengan papan Arduino mana pun. Setelah Anda mengatasi item-item itu dalam desain Anda, maka Anda harus membaca jawaban saya dan khawatir tentang bagaimana mengatur MCU ke mode daya rendah.
Karena itu, ada beberapa teknik untuk membuat Arduino menghemat daya. Saya akan daftar beberapa dan kemudian mengarahkan Anda ke halaman yang menjelaskan semuanya secara lebih rinci.
Sementara controller tidak melakukan hal-hal penting (antara membaca sensor dan berikutnya, misalnya), Anda dapat menempatkan controller ke salah satu mode sleep di bawah ini, dengan perintah set_sleep_mode (SLEEP_MODE_PWR_DOWN)
. Di sebelah setiap mode adalah perkiraan konsumsi daya dari setiap mode.
- SLEEP_MODE_IDLE: 15 mA
- SLEEP_MODE_ADC: 6,5 mA
- SLEEP_MODE_PWR_SAVE: 1,62 mA
- SLEEP_MODE_EXT_STANDBY: 1,62 mA
- SLEEP_MODE_STANDBY: 0,84 mA
- SLEEP_MODE_PWR_DOWN: 0,36 mA
Nonaktifkan deteksi brown-out (sirkuit yang mematikan controller ketika tegangan rendah terdeteksi).
Matikan ADC (konversi analog ke digita)
Gunakan jam internal
Kemudian, ketika Anda meletakkan pengontrol tidur, Anda perlu menggunakan satu atau lebih mekanisme di bawah ini untuk membangunkan pengontrol dan melakukan sesuatu dengannya:
Ini adalah ringkasan yang saya buat dari -
Artikel itu sebagian besar berlaku untuk ATmega328P, tetapi teknik ini berlaku untuk pengontrol yang kompatibel dengan Arduino lainnya. Seperti yang dikatakan TheDoctor dengan baik, Anda perlu memeriksa lembar data untuk memastikan pengontrol Anda mendukung semua teknik itu dan bagaimana melakukannya dengan lebih tepat.
Secara realistis, pembuang daya terbesar pada papan Arduino adalah regulator tegangan linier di atasnya.
Selama mikrokontroler di papan tulis, LED, atau periferal lainnya, menarik arus, regulator linier menghabiskan daya sama dengan
difference between supply and board voltage
xcurrent drawn
.Jadi, perbaikan pertama adalah untuk melepaskan LED indikator daya di papan, dan tidak menggunakan LED lain sejauh mungkin. Kedua, sediakan voltase serendah mungkin yang cukup untuk menyalakan regulator.
Pada desain aslinya, regulator tegangan yang digunakan tidak memiliki arus diam yang rendah. Ini berarti bahkan tanpa menarik daya apa pun di papan, regulator itu sendiri menyia-nyiakan daya yang adil sepanjang waktu.
Perbaikan yang mudah adalah dengan mengganti regulator terpasang dengan LDO (regulator drop-out rendah) yang diperingkat untuk arus diam yang sangat rendah. Pencarian parametrik di berbagai situs vendor akan menghasilkan kemungkinan pengganti.
Bahkan dengan langkah-langkah di atas, papan Arduino tidak menyediakan mekanisme untuk mengatur LDO ke mode daya rendah, jika LDO yang dipilih mendukung ini. Desain hemat daya biasanya menggunakan pin "mode tidur" pada regulator tegangan untuk menghemat sedikit energi - bukan pilihan di sini.
Bahkan dengan semua kemungkinan mode dan trik penghematan daya yang diterapkan pada tingkat mikrokontroler, Arduino tidak dirancang untuk menjadi perangkat berdaya sangat rendah di luar kotak. Setelah bereksperimen dengan beberapa aplikasi non-sepele, saya telah menemukan bahwa yang terbaik yang dapat dicapai secara realistis adalah penghematan daya 10% hingga 30% tergantung pada aplikasi, karena pengatur tegangan dan LED akan tetap menggunakan sisanya.
sumber
Anda dapat membaca lembar data 200 halaman, dan kemudian mengacaukan dengan beberapa shift dan register bit yang membingungkan, tetapi saya merekomendasikan perpustakaan ini: http://playground.arduino.cc/Code/Enerlib
Juga, jika Anda menggunakan Uno atau yang lain dengan chip usb-to-serial, Anda bisa menonaktifkannya atau menghapusnya.
sumber
Setelah proyek Anda berhasil dan Anda perlu menggunakan lingkungan "produksi", Anda dapat memilih untuk mengganti Arduino dengan ATMega328 meta kosong atau chip keluarga ATTiny. Ini akan menyingkirkan semua pemakan daya di papan Arduino yang tidak Anda butuhkan. Saya menemukan:
Beberapa informasi lebih lanjut
Program ATtiny dengan Arduino
ATTiny file untuk Arduino IDE
sumber