Hola, soy relativamente nuevo con arduino y quiero hacer un cronometro que se active cuando pulso el boton de un teclado, conozco lo mas basico de programacion asi que mi codigo es aun un poco robusto
El problema que tengo es que cuando pulso el boton 'A' se muestra el cronometro en ceros y no avanza, intente llamarlo por funciones y el resultado es el mismo
por favor si tienen alguna idea se los agradeceria mucho
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 24, 26, 28, 30, 32);
int verde=5;
int rojo=4;
int amarillo=3;
bool estado1=true;
bool estado2=false;
bool estado3=false;
int horas=0;
int minutos=0;
int segundos=0;
int decimas=0;
long milisegundos=0;
int moldes=0;
int modelo=0;
int tool=0;
int calidad=0;
//int boton1=3;
//int boton2=4;
//int boton3=5;
int contadorfallas=0;
int contadortecnicos=0;
int contadorreinicios=0;
boolean run = true;
#include <Keypad.h>
const byte filas = 4; //Cuatro filas
const byte cols = 4; //Cuatro columnas
byte Pins_Filas[] = {13, 12, 11, 10}; //Pines Arduino para las filas
byte Pins_Cols[] = { 9, 8, 7, 6}; // Pines Arduinopara las columnas
char Teclas [ filas ][ cols ] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, filas, cols);
void setup() {
Serial.begin(9600);
pinMode(verde,OUTPUT);
pinMode(rojo,OUTPUT);
pinMode(amarillo,OUTPUT);
digitalWrite(verde,HIGH);
digitalWrite(rojo,LOW);
digitalWrite(amarillo,LOW);
lcd.begin(16, 2);
}
void loop() {
//===============================================================================================
char pulsacion = Teclado1.getKey() ;
if(pulsacion=='A' && estado2==0 && estado3==0 )
{
milisegundos = millis();
if(milisegundos % 100 == 0){
decimas++;
if(decimas == 10){
decimas = 0;
segundos++;
}
if(segundos == 60){
segundos = 0;
minutos++;
}
if(minutos == 60){
minutos = 0;
horas++;
}
}
estado1=!estado1;
estado2=!estado2;
digitalWrite(verde,LOW);
digitalWrite(rojo,HIGH);
digitalWrite(amarillo,LOW);
Serial.println("La maquina 4 de la linea 2 ha dejado de funcionar");
contadorfallas=contadorfallas+1;
}
lcd.setCursor(0,0);
if(horas < 10){
lcd.print("0");
}
lcd.print(horas);
lcd.print(":");
lcd.setCursor(3,0);
if(minutos < 10){
lcd.print("0");
}
lcd.print(minutos);
lcd.print(":");
lcd.setCursor(6,0);
if(segundos < 10){
lcd.print("0");
}
lcd.print(segundos);
lcd.print(":");
lcd.setCursor(9,0);
lcd.print(decimas);
///////////////////////////////////////////////////////////////////////////////////////////////////////
if(pulsacion=='B' && estado1==0 && estado3==0)
{
estado2=!estado2;
estado3=!estado3;
digitalWrite(verde,LOW);
digitalWrite(rojo,LOW);
digitalWrite(amarillo,HIGH);
delay(10);
contadortecnicos=contadortecnicos+1;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(pulsacion=='C' && estado2==0 && estado1==0)
{
estado3=!estado3;
estado1=!estado1;
digitalWrite(verde,HIGH);
digitalWrite(rojo,LOW);
digitalWrite(amarillo,LOW);
delay(10);
contadorreinicios=contadorreinicios+1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
arduino2.0.ino (4.05 KB)