MDiMaI666
@MDiMaI666
Талантливый программист

Как сделать микроконтроллеру самовыключение?

Есть микроконтроллер (допустим ардуино и что еще).
Как сделать чтобы при нажатии кнопки без фиксации микроконтроллер включался, работал и при завершении программы выключался от питания.

Попробовал кнопку подающий кратковременно на микруху, далее через транзистор(NPN) он бы подавал себе питание (коллектор 5+, эмиттер на свой вход, базу на пин). Но при нажатии включается и при отпускании тут же отключается.
  • Вопрос задан
  • 1746 просмотров
Решения вопроса 1
@Androniy
Кроме всего вышесказанного советую посмотреть энергопотребление вашего микроконтроллера в режиме Standby. У большинства МК в этом режиме энергопотребление составляет порядка единиц мкА или даже наноамперы. Например, при потреблении 1 мкА и емкости аккумулятора в 1000 мА*Ч его хватит на 1 миллион часов (в первом приближении), что составляет более сотни лет такого сна. Это существенно меньше саморазряда большинства аккумуляторов, так что, возможно, проще отправлять МК спать и просыпаться по нажатию кнопки, чем усложнять схему питания. Единственное неудобство - кнопку, вероятней всего, придется ставить на один конкретный порт (смотрите документацию на ваш МК).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vanyamba-electronics
Потребуется логический элемент ИЛИ. При нажатии на кнопку сигнал подаётся на элемент ИЛИ, с выхода которого включается транзистор, подающий питание на микроконтроллер. Микроконтроллер при запуске подаёт второй сигнал на элемент ИЛИ, чтобы пользователь мог отпустить кнопку. После окончания работы программы микроконтроллер подаёт сигнал выключения.

Однако в этой схеме есть ситуация, что микроконтроллер отключился от питания, но кнопка до сих пор нажата пользователем. На этот случай после отключения питания в программе микроконтроллер должен или входить в вечный цикл, или засыпать самым глубоким режимом сна.

fa38b6bc94724d40a6b204c759e9cf8b.png

Пользователь нажимает на кнопку S1 и удерживает её нажатой, пока не начнёт светиться светодиод LED1. При старте программы, микроконтроллер подаёт высокий логический уровень на выводе PWRON.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы