Как вы программируете режим сна для вашего Arduino? Каковы хорошие методы для сна процессора, особенно если он работает от батареи, но просыпается только при необходимости?
источник
Как вы программируете режим сна для вашего Arduino? Каковы хорошие методы для сна процессора, особенно если он работает от батареи, но просыпается только при необходимости?
avr / sleep.h может иметь то, что вам нужно - документация находится на http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
Хотя есть некоторые предупреждения о том, что процессор переходит в спящий режим :)
Надеюсь это поможет.
Имейте в виду, что в зависимости от вашего режима ожидания на вашем Arduino работает несколько источников прерываний. timer0 генерирует прерывание переполнения, которое будит ваше arduino примерно каждую миллисекунду, а uart будет генерировать прерывание каждый раз, когда появляется входящий символ. ... и, конечно, есть внешние прерывания на контактах 2 и 3, которые вы можете или не можете включить с помощью функции attachInterrupt.
когда происходит прерывание, ваш эскиз будет пробужден от сна, а после обслуживания прерывания он продолжит работу с того места, где он перешел в режим сна. Решение этой проблемы состоит в том, чтобы настроить ваш эскиз так, чтобы он каждый раз возвращался в спящий режим, если на самом деле не пришло время просыпаться.
здесь моя библиотека Arduino сна