Ардуино - энергосбережение
- Войдите на сайт для отправки комментариев
Добрый день! Хочу сделать простой проект. Есть Ардуино нано, светодиод (штатный) и батарейка.
Хочу запустить проект на подобии Blink:
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(5000); digitalWrite(13, LOW); delay(5000); }
Но так, чтобы лампа моргала как можно дольше. (Что то вроде маячка). В идеале месяц от кроны или 6хАА.
Я нашел функции по отключению переферии и мой проект стал выглядеть так:
#include <avr/power.h> void setup() { pinMode(13, OUTPUT); power_adc_disable(); power_spi_disable(); power_timer1_disable(); power_timer2_disable(); power_twi_disable(); power_usart0_disable(); } void loop() { digitalWrite(13, HIGH); delay(5000); digitalWrite(13, LOW); delay(5000); }
Понимаю, что энергосбережением от ардуино не пахнет, но хочу посмотреть на сколько его хватит.
Еще думаю, что возможно интервал моргания увеличить до 10 секунд, а в это время вводить контроллер в сон. Но устройство должно работать автономно. Думаю, вожможно ли вводить ардуино в сон, а выводить его срабатыванию внутреннего таймера. Если кто сталкивался, очень сильно прошу вашей помощи!!!
Может быть есть пример? Буду признателен.
Votmax, тут энергосбережением не пахнет вообще. Ни от вашего скетча, ни от применения ардуино-нано, ни от кроны или 6"АА". Все эти три пункта вместе или по отдельности исключают энергосбережение в принципе. Вопрос как и что делать тут разжевывался много раз, гугл в помощь.
И не лень такое писать??? Не хотите не отвечайте. А такие ответы от "Гуру" как у вас к чему? Всегда удивляюсь, зачем тогда нужны специализированные форумы? Ведь форум и нужем, чтобы спрашивать... Ну давайте тогда о погоде поговорим? У нас +15, а у вас?
Может у кого то есть готовый пример или кто то с этим уже сталкивался?
В гугле я как раз и нашел как отключать периферию. Остальное нет, вот и обращаюсь на форум.
https://www.google.com/search?q=энергосбережение+site%3Aarduino.ru%2Fforum
https://www.google.com/search?q=спящий+режим+site%3Aarduino.ru%2Fforum
https://www.google.com/search?q=энергопотребление+site%3Aarduino.ru%2Fforum
Про питание бОльшим напряжением (9 вольт) с понижением его до 5 вольт (3,3 вольт) на встроенном в ардуину стабилизаторе сразу забудьте. Энергия батареек будет уходить в тепло. А у 9 вольтовой кроны вообще ёмкость маленькая. Питать надо 3,3В - 5В напрямую на ножку VCC.
да-да, и отпаять/отрезать питание от чипа интерфеса USB-UART , ибо тоже жрёт тыц
Да там и стабилизатор по ходу выпаивать надо. В общем, проще взять отдельно Атмегу. Заодно и кварц на меньшую тактовую частототу поставить, для мигалки много не надо. Ну или вообще от внутреннего осциллятора.
Спасибо за ответы! Понятно, что можно много чего отпаять с платы, тогда уж проще взять отдельный контроллер и сделать ему минимально необходимую обвязку в виде кварца и питания. Но нет под рукой программатора и с паяльником я не очень в ладах. Поэтому и остановился на ардуино. Оговорюсь, что понимаю, что минимального энергототребления не добиться, я к этому и не стремлюсь. Хочу его снизить на столько на сколько это возможно в рамках ардуино нано и среды разработки. Я все таки думал про программное решение. В моем случае, можно ли на 5 сек (то есть вместо delay(5000)) уводить контроллер в сон, затем по срабатыванию внешнего таймера выводить? Все таки какая то экономия. Как думаете?
Так nano и есть готовый программатор. Если питать от батарейки, то и контроллер обвязывать не надо. Т е батарейка, простейший контроллер и диод с резистором.
А чё, спаять два транзистора в симметричный мультивибратор или, ещё лучше, взять экономичный КМОП'овский 555 таймер (хоть ICM7555IPA или GLC555) - типа "не наш метод"?
А чё, спаять два транзистора в симметричный мультивибратор или, ещё лучше, взять экономичный КМОП'овский 555 таймер (хоть ICM7555IPA или GLC555) - типа "не наш метод"?
Да наш метод, но хочет все сделать программно. Так сказать выжать максимум, подходя только программным способом.
Никто не работал с таймером на прерываниях?
Так еще интересней. Всунул в панель запрограммировал . Высунул и вставил в схему.
https://static12.insales.ru/images/products/1/3688/35843688/arduino-uno....
Никто не работал с таймером на прерываниях?
Что Вы под этим понимаете?
Можно сделать всё. И частоту понизить програмно, и от внутреннего таймера просыпаться для выключения и включения лампочки.
Кладезь знаний по теме http://gammon.com.au/power (англ.)
http://we.easyelectronics.ru/AVR/avr-power-management-ili-kak-pravilno-s...
http://we.easyelectronics.ru/AVR/avr-power-management-ili-kak-pravilno-spat.html
По моему то что и искал))) Включаем светодиод, уходим в сон, просыпаемся, выключаем светодиод, уходим в сон и т.д. Спасибо буду разбираться!
P.S. Кстати Крона (Варта) продержалась на нано с мигающим каждые 10 секунд светодиодом 36 часов. Правда еще все время горел светодиод питания. Вот им, я думаю, пожертвовать можно.
По моему то что и искал))) Включаем светодиод, уходим в сон, просыпаемся, выключаем светодиод, уходим в сон и т.д. Спасибо буду разбираться!
Если стоит задача только мигать светодиодом, то проще воспользоваться советом ЕвгенийП и применить 555 таймер.
http://radiokot.ru/articles/01/
По моему то что и искал))) Включаем светодиод, уходим в сон, просыпаемся, выключаем светодиод, уходим в сон и т.д. Спасибо буду разбираться!
P.S. Кстати Крона (Варта) продержалась на нано с мигающим каждые 10 секунд светодиодом 36 часов. Правда еще все время горел светодиод питания. Вот им, я думаю, пожертвовать можно.
Помнится, в начальной школе изучали такую науку - Арифметика называется.
Итак: На светодиоды обычно ставятся резисторы по 1к, следовательно (с учетом падения 2В на самом светодиоде) ток составит 3 мА. Это у того, что в питании. Скважность того, что мигает, составляет 2, следовательно, жрет он в 2 раза меньше - примероно 1.5 мА. Стабилизатор питания жрет около 3 мА и еще около 0.25 мА - CH340. Итого набирается почти 8 мА.
За 36 часов из батарейки только указанными цепями (не считая самомго контроллера) было высосано 8*36 = ~290 Ма/ч.
Заявленная емкость Кроны составляет 500 мА/ч, а реальная - в 2-3 раза меньше http://www.chipdip.ru/video/id000282900/
Собственно, судя по результатам либо контроллер не потреблял ток от Кроны, а сам выполнял роль батареи, либо Вам очень повезло, и Ваша Крона продемонстрировала емкость заметно выше средней.
В общем, пытаться загнать контроллер в сон при потреблении остальными элементами схемы 8 мА - занятие явно неблагодарное.
Рекомендации:
0. Питать от чего-то 3.3-5-вольтового. Например, от трех пальчиковых батареек или одной 18650.
1. Выпаять светодиод в питании.
2. Выпаять стабилизатор.
3. Увеличить скважность сигнала на индикаторном светодиоде. Например, чтобы длительность вспышки составляла 0.1с при 9.9 с. паузы.
4. Вероятно выпаять (или перерезать питание) CH340, а также светодиоды RX, TX.
После этого повторить эксперимент, но, все-таки, надежнее - измерить амперметром потребляемый ток.
И только после этого думать, а имеет ли смысл вгонять контроллер в энергосберегающий режим.
PS. И еще раз подумать о применении 555 таймера.
Добрый день! Спасибо за хороший ответ!
Расскажу каких результатов я добился. Воспользовался примером по ссылке выше + отключил периферию. Выпаял светодиод питания (Ну как выпаяил, похоже отломал).
Программу я сделал так (код прикреплю вечером): контроллер включает светодиод и сразу уход в сон, через секунду просыпается, выключает светодиод и на 8 секунд опять уход в сон. То есть работает, когда переключает питание светодиода. Батарейку использовал такую же как и раньше, обычная желтая Варта. Светодиод моргал 4,5 суток.
До своего нужного месяца не дотянул)). Так что воспользуюсь вашеми советами про таймер 555.
Всем спасибо!
P.S. Воспользовался арифметикой)) Примерно вышел на теже показатели емкости батарейки.
А "самомигающий" не? http://www.aliexpress.com/item-img/Free-Shipping-One-Lot-100pcs-3mm-red-flashing-led-water-clear-blinking-F-R/1870412974.html?spm=2114.10010208.0.52.9cv5IU
Использовал такой для иммитации сигнализации. Замечаний небыло.
Выкладываю сборную солянку моего кода, может быть кому нибудь пригодится)).
А "самомигающий" не? http://www.aliexpress.com/item-img/Free-Shipping-One-Lot-100pcs-3mm-red-flashing-led-water-clear-blinking-F-R/1870412974.html?spm=2114.10010208.0.52.9cv5IU
Использовал такой для иммитации сигнализации. Замечаний небыло.
А это кстати интересная идея. Нужно будет посмотреть. А на сколько батарейки хватает?