YannLO
1
Hola
mi contador no para de contar rapidísimo del 0 al 20.
Esta es mi programación, agradecería la ayuda!!
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int entrada=6,cont=0,estado=0;
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Num. de objetos");
pinMode(entrada,INPUT);
delay(3000);
}
void loop() { //bucle infinito
estado = digitalRead(entrada);
if(estado == LOW){
cont++;
while(estado == LOW){ //antirebote
estado = digitalRead(entrada);
}
}
lcd.setCursor(7,1); //Coorddenadas LCD (x,y)
lcd.print(cont);
if(cont > 20){
lcd.clear();
lcd.print("Num. de objetos");
cont=0;
}
}
Lo primero que debes hacer es leer las Normas del foro y luego editar tu post inicial usando etiquetas para código.
Si lo que pretende hacer tu código es que con cada pulsación avance 1, entonces es mas fácil de este modo
Acá lo tienes
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int entrada=6,cont=0;
bool estado, estadoAnt = false;
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Num. de objetos");
pinMode(entrada,INPUT);
delay(3000);
}
void loop() { //bucle infinito
estado = digitalRead(entrada);
if (estado == LOW && estadoAnt == HIGH){
if (cont++ > 20)
cont = 0;
}
estadoAnt = estado;
lcd.setCursor(7,1); //Coorddenadas LCD (x,y)
lcd.print(cont);
}
NOTA: observa como debe verse un código debidamente posteado.