Вы можете заменить все детали в этой конструкции, за исключением переключателя, батареи и светодиодов, на микроконтроллер, и он будет иметь более низкое энергопотребление, более низкую рабочую мощность и, вероятно, даже более низкую стоимость.
Экономия энергии на отключении достигается благодаря тому факту, что современные микроконтроллеры (например, AVR) могут потреблять всего 0,1 мкА во время сна и могут просыпаться при изменении одного из своих входных выводов.
Вы подключаете микро напрямую к источнику питания, а затем подключаете контакты активного переключателя к контактам ввода-вывода. Вы можете включить внутренние подтягивания на этих выводах, а затем использовать прерывание смены выводов, чтобы выйти из режима сна с низким энергопотреблением. Положение «выключено» не нужно подключать к какому-либо выводу - MCU знает, что если ни один из других выводов не активен в течение более определенного времени, то переключатель находится в положении выключения, и он переходит в спящий режим до тех пор, пока переключатель не будет перемещен. Подтягивающие устройства не используют никакой энергии, когда переключатель находится в выключенном положении.
Это основная идея. Есть также усовершенствования, которые вы можете добавить, например, отключив выключатель, прикрепленный к штырю с подтягиванием, чтобы вы могли мгновенно обнаружить его, но затем программное обеспечение отключает подтягивание на этом штыре перед сном, поэтому снова нет утечки питания.
Также обратите внимание, что вы можете напрямую управлять светодиодами от выводов MCU с помощью ШИМ. Это позволяет избежать использования резисторов, а также дает вам возможность перегрузить светодиоды для большей яркости, что может иметь смысл для вращающегося устройства, так как вы, вероятно, будете иметь менее 100% рабочего цикла на этих светодиодах.