Podría reemplazar todas las piezas de este diseño, excepto el interruptor, la batería y los LED con un microcontrolador y tendría una menor potencia de apagado, menor potencia de funcionamiento y probablemente incluso un menor costo.
El ahorro de energía se debe al hecho de que un microcontrolador moderno (como AVR) puede usar tan solo 0.1uA mientras duerme, y puede despertar un cambio en uno de sus pines de entrada.
Conecta el micro directamente a la fuente de alimentación y luego conecta los contactos del interruptor activo a los pines IO. Puede habilitar pull-ups internos en estos pines y luego usar una interrupción de cambio de pines para despertarse del sueño de baja potencia. La posición de "apagado" no necesita estar conectada a ningún pin: la MCU sabe que si ninguno de los otros pines está activo durante más de un cierto tiempo de espera, el interruptor está en la posición de apagado y se pone en suspensión hasta que se mueve el interruptor. Los pull-ups no usan energía cuando el interruptor está en la posición de apagado.
Esa es la idea básica. También hay mejoras que puede agregar, como tener el interruptor de apagado conectado a un pin con un pull-up para que pueda detectarlo instantáneamente, pero luego el software deshabilita el pull-up en ese pin antes de ir a dormir, así que nuevamente no hay pérdida de energía.
Tenga en cuenta también que puede controlar directamente los LED desde los pines MCU utilizando PWM. Esto ahorra evita las resistencias y también le brinda la oportunidad de sobrecargar los LED para obtener más brillo, lo que podría tener sentido para un spinner inquieto ya que es probable que tenga menos del 100% de ciclo de trabajo en esos LED.