E se ele usar esta instrução
pinMode(leitura_do_botao, INPUT_PULLUP);
em vez de
pinMode(leitura_do_botao, INPUT);?
só tem de ligar um botão do pino 12 ao GND e usar este if
if ((estado_atual_do_botao == 0) && (estado_atual_do_botao != estado_anterior_do_botao))
Não sabemos como está tudo ligado e pode mesmo ser o botão que está no ar... ou pode ser uma polaridade errada.