Hola, les comento el problema que se me presenta. Estoy realizando un contador que funcionaria atravez de un sensor infrarrojo, al pasar un objeto lo contabilizara. Hasta aqui todo bien, el problema es que al momento de querer instalar un boton ,el cual serviria para disminuir la cuenta, y agragar el codigo que respondera a la señal del boton no me disminuye la cuenta. He probado diferentes soluciones pero no he logrado solucionar.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,10,9,8,7); // Pines del arduino al la LCD
int sensor=13,estado=0,cont=0; // Sensor infrarrojo, su entrada y estado inicial
int boton=6,estado2=0; // Boton, con su entrada y estado inicial
void setup() {
lcd.begin(16,2);
pinMode(sensor,INPUT); // Pin sensor indicado como entrada
pinMode(boton,INPUT_PULLUP); // Pin boton indicado como entrada
lcd.setCursor(4,0);
lcd.print("ARMIX"); // Proyectar el nombre de la empresa
delay(1400); // Espera 1.4 segundo
lcd.clear(); // Limpia la pantalla
delay(300);
lcd.setCursor(1,0);
lcd.print("No. de piezas:");
}
void loop() {
estado = digitalRead(sensor);
estado2 = digitalRead(boton);
// Este es el codigo para Pin sensor, este funciona correctamente y no da problemas
if(estado == LOW){
cont++;
while(estado == LOW){ // Este codigo evita que al mantener un objeto sobre el sensor siga contando
estado = digitalRead(sensor);
}
}
//Este seria el codigo para Pin boton, este no me funcina y no arroja resultados
if(estado2 == HIGH){
cont--;
while(estado2 == HIGH){
estado2 = digitalRead(boton);
}
}
// Impresion en la LCD
lcd.setCursor(7,1);
lcd.print(cont);
}
NOTA: El motivo de intalar el boton es por si algun objeto pasa por el sensor de forma accidental de la posibilidad de disminuir la cuenta