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.

Exibições: 249

Anexos

Responder esta

Respostas a este tópico

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.

http://eletronworld.com.br/eletronica/efeito-bounce/

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...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço