Примечание: я хотел бы отметить, что, хотя мой ответ был принят, читатель (вы) должен действительно сначала прочитать ответ 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, вам нужно проверить набор данных, чтобы убедиться, что ваш контроллер поддерживает любые из этих методов и как сделать это более точно.
Реально, самая большая потеря мощности на плате Arduino - это линейный регулятор напряжения на ней.
Пока микроконтроллер на плате, светодиоды или любые другие периферийные устройства потребляют ток, линейный регулятор расходует энергию, равную
difference between supply and board voltage
xcurrent drawn
.Итак, первым исправлением было бы отключить светодиодный индикатор питания на плате и не использовать какие-либо другие светодиодные индикаторы, насколько это возможно. Во-вторых, подайте на плату как можно более низкое напряжение, которого достаточно для питания встроенного регулятора.
В оригинальных конструкциях используемые регуляторы напряжения не обладают низким током покоя. Это означает, что даже если ничто не потребляет энергию внутри платы, сам регулятор тратит немало энергии все время, пока он включен.
Простое решение - заменить встроенный регулятор на LDO (линейный регулятор с малым падением напряжения), рассчитанный на чрезвычайно низкий ток покоя. Параметрические поиски на сайтах различных поставщиков приведут к вероятным заменам.
Даже с учетом описанных выше шагов плата Arduino не предоставляет механизм для перевода LDO в режим пониженного энергопотребления, если выбранная LDO поддерживает это. В энергосберегающих конструкциях обычно используется вывод «спящего режима» на стабилизаторах напряжения, чтобы сэкономить немало энергии - здесь не вариант.
Даже при всех возможных режимах энергосбережения и приемах, применяемых на уровне микроконтроллера, Arduino просто не предназначен для использования в качестве устройства с ультранизким энергопотреблением. Поэкспериментировав с несколькими нетривиальными приложениями, я обнаружил, что лучшее, что реально достижимо, - это экономия энергии от 10% до 30% в зависимости от приложения, поскольку регулятор напряжения и светодиоды в любом случае будут потреблять остальное.
источник
Вы можете прочитать 200-страничную таблицу данных, а затем связываться с некоторыми запутанными битовыми сдвигами и регистрами, но я рекомендую эту библиотеку: http://playground.arduino.cc/Code/Enerlib
Кроме того, если вы используете Uno или любой другой с чипом от USB к последовательному порту, вы можете отключить это или удалить его.
источник
Как только ваш проект заработает, и вам нужно будет развернуть его в «производственной» среде, вы можете заменить Arduino на чистую мета-версию ATMega328 или любой из чипов семейства ATTiny. Это избавит от всех пожирателей энергии на плате Arduino, которые вам не нужны. Я нашел:
Еще немного информации
Программируй ATtiny с Arduino
ATTiny файлы для Arduino IDE
источник