Еще один способ эффективного энергосбережения для проектов
Размышляя на тему как максимально экономить батарейку в проектах где основная задача выполняется по нажатию кнопок (как в пультах ДУ)
в голову пришла очень простая и эффективная схема. Ее достоинство
состоит в том, чтобы на кнопку возложить не только задачу вызывать ту
или иную функцию, но и подавать питание на микроконтроллер. Таким
образом потребление схемы в режиме ожидание падает до нуля (!), так как батарейка оказывается полностью отключенной от схемы.
Такой алгоритм просто реализуется на кнопках с несколькими парами контактных групп, чаще же в проектах используется обычная тактовая кнопка, которая умеет замыкать только два контакта между собой. Поэтому пошевелив извилинами накидал вот такую схему:
Как видно, при нажатии на любую кнопку, происходит запитывание микроконтроллера и одновременно с этим на соответствующей ножке выставляется высокий уровень. Диоды в схеме нужны чтобы отсечь попадание высокого уровня на остальные входы.
для проверки схемы собрал ее на макетке:
код обработки нажатия самый элементарный:
$regfile="m16def.dat" $crystal= 8000000
ConfigPortb=Output ConfigPortc=Input
Do
IfPinc.0 = 1 Then Portb.0 = 1 EndIf
IfPinc.1 = 1 Then Portb.1 = 1 EndIf
IfPinc.2 = 1 Then Portb.2 = 1 EndIf
Loop
End
Как видно схема оказалась вполне работоспособной и ко всем прочим прелестям умеет обрабатывать сразу несколько нажатий, поэтому обязательно найдет себе применение.
Код программы требует доработок. Светодиоды выключаются только когда отжаты все кнопки. ТО есть если нажать две или три кнопки а потом отпустить все кроме одной (любой), то светодиоды буду продолжать гореть :-)
Ну и слава Богу, что разобрались. Сам сегодня, ради интереса, отключил питание от Меги 8 и подключил питание на пустую ногу. Мега8 справилась имея на борту DS1307, NRF24L01 и индикатор 1602.Всё отработало нормально. Конечно, через внутренние диоды запитывать опасно, но можно в программе включать ногу потрта, который откроет мосфет, который подаст питание уже на Vcc, как уже предлогал exersizze
kip96 я ни к кому не настроен враждебно.Я просто уточняю Вашу мысль.Я сразу ее не понял. Кстати, спасибо! Момент с диодной защитой я как-то упустил из виду...
Немного не допоняли вы друг друга, просто исключить из этой схемы диоды конечно нельзя, это очевидно Но камрад kip96 оказался таки прав. Если просто подавать напряжение с батареи на входы, то напряжение попадет на VCC через внутренние диоды. И схема работает точно также а для проверки просто отключил провод питания http://avrproject.ru/112/42dzhltva439.png падение на внутренних диодах оказалось 1 Вольт (при питании 5 вольт на VCC появляется 3,98 вольт) ps max, для пользователей смайлы отключил, из-за непонятной ошибки при вставке бывает что у сайта сносит крышу и страницы криво отображаются
Сам раньше думал про такой способ питания (включения) для передатчика на NRF24L01, но не хотелось возиться с диодами, так так после диода напряжение было меньше (особенно, заметно в цепях с низким напряжением питания).
Точно так-же, как и в схеме статьи. Эти диоды уже стоят в МК. т.е. получается масло масленное. Диоды уже давно ставят в микросхемах, это своеобразная защита от статики.
Видимо транзистор и подразумевается, иначе ничего серьезнее выше приведеной схемы и не соберешь)) 3 kip96!А как за пределами корпуса МК тогда разделить сигналы на прерывании без диодов? Иначе просто все кнопки окажутся запараллелеными. Или я не понял Вашу мысль?