Примечание: я хотел бы отметить, что, хотя мой ответ был принят, читатель (вы) должен действительно сначала прочитать ответ Anindo, если вы действительно хотите сэкономить энергию на любой плате Arduino. Как только вы решите эти вопросы в своем проекте, вам следует прочитать мой ответ и побеспокоиться о том, как установить MCU в режим пониженного энергопотребления.
Сказав это, есть несколько методов, чтобы заставить Arduino экономить энергию. Я перечислю несколько, а затем укажу на страницу, которая объясняет их все более подробно.
Хотя контроллер не делает ничего важного (например, между чтением датчика и следующим), вы можете перевести контроллер в один из приведенных ниже режимов ожидания с помощью команды set_sleep_mode (SLEEP_MODE_PWR_DOWN)
. Рядом с каждым режимом указано приблизительное энергопотребление каждого режима.
- SLEEP_MODE_IDLE: 15 мА
- SLEEP_MODE_ADC: 6,5 мА
- SLEEP_MODE_PWR_SAVE: 1,62 мА
- SLEEP_MODE_EXT_STANDBY: 1,62 мА
- SLEEP_MODE_STANDBY: 0,84 мА
- SLEEP_MODE_PWR_DOWN: 0,36 мА
Отключить обнаружение отключения (схема, которая отключает контроллер при обнаружении низкого напряжения).
Отключить АЦП (аналого-цифровое преобразование)
Используйте внутренние часы
Затем, когда вы переводите контроллер в спящий режим, вам нужно использовать один или несколько механизмов ниже, чтобы активировать контроллер и что-то с ним сделать:
Проснись с сигналом
Проснись с таймером
Это резюме, из которого я сделал -
Эта статья в основном относится к ATmega328P, но эта техника применима и к другим Arduino-совместимым контроллерам. Как хорошо сказал TheDoctor, вам нужно проверить набор данных, чтобы убедиться, что ваш контроллер поддерживает любые из этих методов и как сделать это более точно.