Botão de reset externo para Arduino. Realmente foi uma coisa com a qual nunca me preocupei, até receber o email abaixo de um leitor do blog:

“Caro, 

Montei o seu circuito de lâmpadas com relés e controlado por infravermelho. Funciona perfeitamente mas o único problema é que quando o Arduino trava e o programa pára de funcionar, eu tenho que desparafusar a caixa plástica onde instalei o circuito, e apertar o botão de reset ou então desligar a energia do aparelho.

Isso dá um certo trabalho. Tem como instalar um botão de reset na caixa ?”

Tem sim, e é bem fácil de implementar.

O ATMega, quando ligado, está com o pino 1 (reset), em nível alto (1). Ao aplicarmos 0v (nível baixo) neste pino, o ATMega é resetado.

Repare que no barramento inferior do Arduino Uno, logo abaixo do microcontrolador, temos um dos pinos com a marcação RESET. Podemos utilizar este pino para resetar o microcontrolador, simplesmente aplicando à ele 0 volts.

Botão de reset Arduino

Seguindo esse princípio, podemos ligar um push-button ao pino RESET, a outra perna do botão ao GND, e utilizar um resistor pull-up para manter o pino em nível alto quando o botão não estiver sendo acionado.

Circuito botão de reset externo e Arduino

O circuito fica mais ou menos assim, com um resistor de 10 K junto ao push-button. Usei um programa de teste para piscar o led ligado à porta 7 :

Circuito Reset Arduino

Algumas pessoas utilizam esse circuito sem o resistor pull-up. Eu testei aqui as duas versões, com o mesmo resultado.

Não sei se há algum problema na utilização dessa solução de botão de reset externo à longo prazo. Se alguém usa uma versão diferente ou tem alguma consideração sobre essa ligação e quiser contribuir com o post, será bem vindo.

Se gostou deste post, confira outros posts sobre Arduino aqui mesmo no Arduino e Cia!

5/5 - (1 vote)