Você poderia substituir todas as partes deste projeto, exceto a chave, a bateria e os LEDs, por um microcontrolador, que teria menor potência, menor potência de operação e provavelmente um custo ainda mais baixo.
A economia de energia é devida ao fato de que um microcontrolador moderno (como o AVR) pode usar apenas 0,1 uA enquanto dorme e pode ativar uma alteração em um de seus pinos de entrada.
Você conecta o micro diretamente à fonte de alimentação e conecta os contatos do comutador ativo aos pinos de E / S. Você pode ativar pull-ups internos nesses pinos e, em seguida, usar uma interrupção de troca de pinos para despertar do sono de baixa energia. A posição "desligado" não precisa ser conectada a nenhum pino - o MCU sabe que se nenhum dos outros pinos estiver ativo por mais de um tempo limite, o interruptor estará na posição desligado e entrará no modo de suspensão até que o interruptor seja movido. Os pull-ups não usam energia quando o interruptor está na posição desligada.
Essa é a ideia básica. Também há aprimoramentos que você pode adicionar, como a chave de desligamento conectada a um pino com um pull-up para que você possa detectá-lo instantaneamente - mas o software desabilita o pull-up desse pino antes de dormir novamente, sem perda de energia.
Observe também que você pode direcionar diretamente os LEDs dos pinos do MCU usando o PWM. Isso economiza, evita os resistores e também oferece a oportunidade de sobrecarregar os LEDs para obter mais brilho, o que pode fazer sentido para um girador de fidget, pois você provavelmente terá um ciclo de trabalho inferior a 100% nesses LEDs.