Boa tarde, pessoal!!
estou fazendo um controlador de umidade com um DHT11,
funcionou tudo certo, porem quando vou apertar o botão para regulagem ele muda mais de um valor,
tipo de 60 teria que ir para 61, apertar o botão novamente para 62 ...
mas ele pula de 60 para 65 ou mais.
alguem pode me ajudar?
segue o código.
e fotos.
obs. :não reparem a bagunça do código rsrsrs.
Tags:
Provavelmente é o velho e conhecido efeito de bouncing. Pode-se resolver este problema através de software ou hardware. Colocando delay ou então através de capacitor.
Sim! Pode-se fazer o debouncing através de interrupções também:
http://www.instructables.com/id/Arduino-Push-Switch-Debouncing-Inte...
obrigado ,Jose Augusto Cintra e Gilmar .
já tinha feito a parte física, (pull-down),
mas continuava, coloquei um delay de 350 e deu certo..(kkkkk, coisa de principiante).
valeu
if (CIMA == HIGH)
{
VALOR=VALOR+1;
delay (350);
lcd.setCursor(13,1);
lcd.print(VALOR);
}
if (BAIXO ==HIGH)
{
VALOR=VALOR-1;
delay (350);
lcd.setCursor(13,1);
lcd.print(VALOR);
}
Marcos, OK
O uso de delay é outra forma de efetuar o debounce. Talvez a forma fácil.
Mas o problema é que o delay é um comando que vai parar todo o processamento durante o tempo especificado.
Isso, em algumas aplicações, pode ser inaceitável.
Não sei se o seu projeto vai envolver outros sensores ou módulos ou se vai precisar controlar intervalos de tempo e realizar muitas tarefas. Nesse caso, a alternativa do delay precisaria ser repensada.
Caso contrário, vá em frente...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por