Hola a todos.
Nuevamente agradeceros a todos la estupenda comunidad que teneis! ES FANTASTICA.
Os expongo el problema que tengo.
He montado una barrera laser pero esta no tiene botones de añadir o restar . Es decir si pasa algún error durante el computo ( sin querer pasa algo por la barrera o si quiero implementar el numero al final ) no puedo hacerlo. Ademas no tengo ningún sistema de reinicio del contador a demás del propio botón de arduino .
Me gustaría mucho poder añadir dos botones uno para + y otro para el – y ademas que esos botones me sirvieran para poder hacer el reset del contador. Os parece que es posible?
Nuevamente os pido ayuda para el tema de botones porque no me entero de nada.
Os dejo el codigo ( utilizo un codigo de un tutorial de leantec )
/*
Código desarrollado por LEANTEC Robotics & Electronics.
Queda permitido el uso de este código siempre que sea sin ánimo de lucro
*/
// incluir libreria
#include <LiquidCrystal.h>
//Declaramos las variables necesarias
int numero=0;
int auxnumero=0;
int sensorPinLDR = A0;
int valorLDR = 0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Declaramos los pines que usa nuestra pantalla(RS,E,D4,D5,D6,D7)
void setup() {
lcd.begin(16, 2);//Iniciamos la pantalla y le decimos el numero de caracteres y filas
lcd.setCursor(5, 0);//Situamos el lugar donde empezar la escritura
lcd.print("LEANTEC");//Escribimos LEANTEC
delay (2000);//Esperamos dos segundos
lcd.clear();//Limpiamos la pantalla
lcd.setCursor(0, 0);
lcd.print("Robotics &");
delay (2000);
lcd.setCursor(5, 1);
lcd.print("Electronics");
delay (2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CONTADOR CON");
delay (2000);
lcd.setCursor(3, 1);
lcd.print("BARRERA LASER");
delay (3000);
lcd.clear();
}
void loop() {
valorLDR = analogRead(sensorPinLDR);// Leemos el valor de la LDR y lo guardamos en valorLDR
lcd.setCursor(0, 0);//Situamos el lugar donde escribiremos
lcd.print("CONTADOR");//Escribimos contador
lcd.setCursor(10, 1);//Situamos el lugar donde escribiremos
lcd.print(numero);//Representamos la variable numero
auxnumero=0;//hacemos la variable auxnumero 0. Esta variable nos ayuda a contar solo 1 cada vez que entremos en el bucle de más abajo
while(valorLDR<600){//Entramos en el bucle si valorLDR es menor de 600. Esto ocurre cuando no da el laser sobre la LDR.
valorLDR = analogRead(sensorPinLDR);// Leemos el valor de la LDR y lo guardamos en valorLDR
if(auxnumero==0){// Entramos en el if si auxnumero es 0. Esto solo ocurre la primera vez que recorremos el while.
numero++;//Sumamos 1 a la variable numero
auxnumero=1;//hacemos auxnumero 1, para que solo sume una vez 1 a la variable numero cuando estamos dando vueltas dentro del bucle.
}
}
}
Os comento también que sería muy importante para mi poder implementar conectividad de la barrera con una base de datos o poder registrar de alguna manera la cantidad que marca el contador de la barrera , para así poder almacenar los datos y hacer estadísticas. ¿ sería posible?
De antemano MUCHAS MUCHAS gracias por vuestra ayuda!
Saludos.