Проблема известная. Питание у ардуины от солнечной панели и аккумулятора. Аккумулятор очень слабый, наночь его никак не хватает. Надо снижать потербление. Т.е. тут два действия. Снижаем тактовую частоту почти до нуля. + переводим железку в глубокую спячку. Код на всё это давно есть, например тут http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/ В это коде очень смущает обильный и прямой доступ к регистрам самой микросхемы. Хотелось видеть всё это ввиде доступа к библиотечным фукнциям. Может у кого-то есть более красивый код?
Добавлю, что для реального энергосбережения годятся не все платы. Так, Arduino Uno в режиме Sleep продолжает потреблять около 12 мА. А вот Arduino Mini в том же режиме - 3 мА, а, если отковырять единственный светодиод, - вообще 0,2 мА.
Это ерунда полная. Чип одной комадной выключается. Вот как при этом оставить включённым только вач таймер и сделать так чтобы он будил через какое-то время. Да ещё не дёргая вручную регистры. Там не слова про всё это. Всё что там написано это как надо неправильно усыплять чип, и будиться по прерыванию, а кто будет это прерывание кидать? Кукушку с кнопкой рядом с платой сажать?
Да я тоже обратил внимание. Ардуина у меня даже диод на 13 пине не гасит при выключении, тем более диод на питании. У самого голого чипа внутри куча всяких устройств преобразовтелей, которые как-то выключаются программно - просто мозг сломаешь. Ещё на самой плате кроме чипа море разного железа, опять еже диод на питании, преобразователя usb-serial и прочее, это всё отключить никак нельзя. Вывод такой. Что про все эти корявые программы даже думать не стоит. Надо какую-то аппаратную схему на питание подвесить. Которая по таймеру включает плату, по команде с провода гасит. Только не знаю как это сделать попроще.
Более того, я бы сказал, что нужна специальная ревизия ардуины с управлением питанием компонент и заоптимизированным током холостого хода...
Отсюда по-подробней. На Arduino Mini из нашего каталога я без всяких плясок одной строчкой кода и отпаиванием светодиода получил 190 мкА. Можно ещё лучше?
На мини особо не разбежишься... можно попробовать при питании от внешнего источника 5V отключать от этой линии регулятор IC1, понизить напряжение питания самой атмеги, частоту уменьшить... Вот ежели взять хотя бы Uno, там еще можно USB-UART от питания отключать, когда он не нужен, на MegaADK USB-хост ну и т.д.
Под отключением я понимаю непосредственный разрыв ключом контура питания части схемы, а не просто перевод ее в режим холостого хода. Стяжки\подтяжки тоже можно с 10кОм спокойно увеличить до чего-нибудь в интервале 100кОм ~ 1МОм.
... собранная на MSP430 upd: у меня Chronos от Texas Instruments второй год работает на одной таблетке CR2032
Ещё один ньюанс.. Адрудино это же не только программа. Это же внешняя переферия. Вот повесили вы два три датчика, моторчик или радио канал. Это всё от трёх пяти вольт питается. Кристалл отключили, а питание идёт, датчики жрут. С этим всем наверное тяжело без дополнительных схем разобраться.
Не посоветуешь конкретную деталь, в иностранном аналоге? Мне всего-то надо 3-5 датчиков + радио на 5! вольт повесить. Отпираться это тоже от 5 вольт должно соотв. Нашёл по справочнику конкретный mosfet совкового производства. Но оказалось хрен его в магазине найдёшь. В лучшем случае 30 штук покупать или ехать из Москвы в какой-нибудь Томск. А по иностранным аналогам справочники дико неудобные. В лучшем случае 12 вольтовый найти можно..
Arduino pro mini; радио 433мг, DTH22 + барометр и ещё где-то три датчика.. Думаю очень мало.. я сижу 2N7000 смотрю..