Boa tarde pessoal, estou com dificuldades em aplicar um debounce na leitura de um sensor Infra Vermelho.
Quero filtrar bounces e pequenos ruídos via código, e aceitar somente que mude de HIGH para LOW ou vice-versa se a leitura for acima de 500ms.
segue meu código, que não esta dando certo...
--------------------------------------------------------------------------------------
int buttonState; // variável do estado do botão
unsigned long lastDebounceTime = 0; // última vez que o botão foi pressionado
unsigned long debounceDelay = 500; // O intervalo
String passou_peca; // variável que recebe sim/não
void setup() {
pinMode(buttonPin, INPUT);
}
void loop()
{
// verifica se o botão foi pressionado
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH)
{
if ((millis() - lastDebounceTime) > debounceDelay)
{
passou_peca = "sim";
}
lastDebounceTime = millis();
}
if (buttonState == LOW)
{
if ((millis() - lastDebounceTime) > debounceDelay)
{
passou_peca = "nao";
}
lastDebounceTime = millis();
}
}
Tags:
Exato Elcids, postei antes e depois que vi sua resposta..heheh.
Grato.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por