Amigos, Fiz um contador de voltas com Arduíno. O contador está instavel. Depois que passa de 12 ela para de contar ou conta saltando umas voltas; 

Segue o código

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensor = 50; 
int estadoBot = 0; 
int cont=0;

void setup() {

    lcd.begin(16, 2);
    pinMode(sensor, INPUT);
}

void loop() {

    estadoBot = digitalRead(sensor);

    if (estadoBot == HIGH) { 
        cont=cont +1;
        delay(200);
        lcd.setCursor(5, 1);
        lcd.print(cont);
     }

}

}

Exibições: 326

Responder esta

Respostas a este tópico

Darley,

Um dos problemas é devido ao delay de 200ms, enquanto o mcu estiver contando o tempo, ele perde qualquer acionamento.

Procure por debounce na net.

Outra coisa, se o botão ficar acionado por mais de 200ms, irá contar mais de uma vez.

Para resolver tente isso:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensor = 50; 
int estadoBot = 0; 
int cont=0;

int trava=0;

void setup() {

    lcd.begin(16, 2);
    pinMode(sensor, INPUT);
}

void loop() {

estadoBot = digitalRead(sensor);

if (estadoBot == HIGH && trava == LOW ) { 
        cont=cont +1;
        delay(2);
        lcd.setCursor(5, 1);
        lcd.print(cont);

        trava = 1;

     }

if (estadoBot == LOW && trava == HIGH ) {

     trava = 0;

     }

}

Abraço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço