Não sei o que estou fazendo de errado!!
Deveria fazer: Ele começa com led no máximo (250), aperta uma vez abaixa para 120, mais uma 50 e por ultimo apaga o led. Se clicar mais uma vez ele retorna para posição 1.
Problema: Quando eu aperto o botão, o led faz as 4 fases, e volta a ficar aceso, nao entendo o porque!!
HELPPPPP
int estado = 1;
void setup() {
pinMode(10,OUTPUT);
pinMode(2,INPUT);
}
void loop() {
if (digitalRead(2) == HIGH) {
estado++;
delay(300);
}
if (estado==5){
estado=1;
}
switch (estado){
case 1:
analogWrite (10,250);
break;
case 2:
analogWrite (10,120);
break;
case 3:
analogWrite (10,50);
break;
case 4:
analogWrite (10,0);
break;
}
}
Tags:
Isso pode ser um efeito chato chamado de "debounce",
Simplificadamente falando: Quando você pressiona o botão e testa com HIGH o Arduino demora um certo tempo para saber que você soltou o botão.
Veja aqui como resolver esse problema:
Obrigado amigo, vou comprar um resistor de 10k e testar! valeu
Daniel, na verdade o problema não é o resistor.
Mas a correção é no sketch. No exemplo que te passei mostra como resolver o problema do debounce
O resistor é importante usar para não queimar o led.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por