Está en la página 1de 4

/*

PATILLAGE LCD:
LCD VSS a gnd
LCD VDD a 5v
LCD RS al pin 12
LCD ENABLE al pin 11
LCD D4 al pin 5
LCD D5 al pin 4
LCD D6 al pin 3
LCD D7 al pin 2

POTENCIOMETRO 1 10K (Contraste):


Conectado a 5v y a gnd. Conectado a LCD V0

SENSORES/PULSADORES:
Sensor START/STOP al pin 6 (Se activa con señal LOW)
Pulsador RESET al pin 7 (Se activa con señal LOW)

*/

#include <LiquidCrystal.h> //Incluimos la libreria que contiene


las funciones del display LCD
//</liquidcrystal.h>
int m,s,l, m1,s1,l1; //Declaramos las variables
que vamos a usar
int mu=0,md=0,su=0,sd=0,lu=0,ld=0,lc=0;
int mu1=0,md1=0,su1=0,sd1=0,lu1=0,ld1=0,lc1=0;
int pulsador,antes,depois, cont, reset, cont2, pulsador1;
long int tempo,inicio, inicio1;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configuramos las Entradas/Salidas a
las que esta conectado el LCD

void setup() {

lcd.begin(16, 2); //Establecemos el tamaño del display


(16 caracteres de largo y 2 lineas de alto)
lcd.setCursor(4, 0); //Situamos el comienzo de la siguiente
impresion de datos en el caracter 5
//(comienza a contar en el 0)
lcd.print("00:00:000"); //y en la segunda linea empezando por
arriba(comienza a contar en 0)
//Imprimimos "00:00:000"
pinMode(6, INPUT); //Ponemos el pin 6 como entrada para
el Sensor START/STOP
pinMode(7, INPUT); //Ponemos el pin 7 como entrada para
el Pulsador RESET
pinMode(10,OUTPUT); //Ponemos el pin 10 como salida para
mandar la señal al zumbador
antes=HIGH; //Ponemos la variable antes a HIGH
depois=HIGH;
cont=0;
reset=HIGH;
}

void loop() {
reset=digitalRead(7);
if(reset==LOW){ //Se o pino 7 (reset) é acionado
lcd.setCursor(4, 0);
lcd.print("00:00:000"); //Escreve 00:00:000 (zerar
cronometro)
cont=0;
cont2=0;
delay(200); //tempo de espera de 200ms
}
depois=digitalRead(6); //Guardamos o valor do pino 6
(liga/desliga) na variável ‘depois’
if(depois==LOW&&antes==HIGH){ //Si el valor que tenia era HIGH y aora
tiene LOW sera porque lo hemos activado
delay(200);
inicio=millis(); //Guardamos en inicio el tiempo que se
lleva ejecutando el programa hasta que
//se activa el sensor start/stop
antes=depois; //cambiamos el valor de la variable
antes al que tiene la variable despues
pulsador=0; //Ponemos la variable pulsador a 0
pulsador1=0;
//Establecemos un retardo de 200ms
while(pulsador==0){ //Cuando la variable pulsador sea 0
tempo=millis()-inicio; //Calculamos el tiempo que paso desde
que se activo el sensor start/stop
m=tempo/60000; //Calculamos los minutos
mu=m%10; //Descomponemos los minutos y sacamos
el valor de las unidades
md=(m-mu)/10; //Descomponemos los minutos y sacamos
el valor de las decenas
s=(tempo/1000)-(m*60); //Calculamos los segundos
su=s%10; //Descomponemos los segundos y sacamos
el valor de las unidades
sd=(s-su)/10; //Descomponemos los segundos y sacamos
el valor de las decenas
l=tempo-(s*1000)-(m*60000); //Calculamos las milesimas de segundo
lu=l%10; //Descomponemos las milesimas y
sacamos el valor de las unidades
ld=((l-lu)/10)%10; //Descomponemos las milesimas y
sacamos el valor de las decenas
lc=(l-(ld*10)-lu)/100; //Descomponemos las milesimas y
sacamos el valor de las centenas
lcd.setCursor(4, 0); //Ponemos el cursor en la linea 2 y el
caracter 5
lcd.print(md); //Imprimimos los valores en el display
lcd.print(mu);
lcd.print(":");
lcd.print(sd);
lcd.print(su);
lcd.print(":");
lcd.print(lc);
lcd.print(ld);
lcd.print(lu);
depois=digitalRead(6); //Guardamos en la variable despues el
valor del pin6 (sensor start/stop)
if(depois==LOW&&antes==HIGH && cont==3){ //Si el valor que tenia era
HIGH y aora tiene LOW sera porque hemos activado
//el sensor

//cambiamos el valor de la variable antes al que tiene


la variable despues
pulsador=1;
//Ponemos la variable pulsador a 1
lcd.setCursor(4, 2);
lcd.print(md); //Imprimimos los valores en el
display
lcd.print(mu);
lcd.print(":");
lcd.print(sd);
lcd.print(su);
lcd.print(":");
lcd.print(lc);
lcd.print(ld);
lcd.print(lu);

if(depois==LOW&&antes==HIGH){
inicio1=millis();
antes=depois;
while(pulsador1==0){ //Cuando la variable pulsador sea 0
tempo=millis()-inicio1; //Calculamos el tiempo que paso desde
que se activo el sensor start/stop
m=tempo/60000; //Calculamos los minutos
mu=m%10; //Descomponemos los minutos y sacamos
el valor de las unidades
md=(m-mu)/10; //Descomponemos los minutos y sacamos
el valor de las decenas
s=(tempo/1000)-(m*60); //Calculamos los segundos
su=s%10; //Descomponemos los segundos y sacamos
el valor de las unidades
sd=(s-su)/10; //Descomponemos los segundos y sacamos
el valor de las decenas
l=tempo-(s*1000)-(m*60000); //Calculamos las milesimas de segundo
lu=l%10; //Descomponemos las milesimas y
sacamos el valor de las unidades
ld=((l-lu)/10)%10; //Descomponemos las milesimas y
sacamos el valor de las decenas
lc=(l-(ld*10)-lu)/100; //Descomponemos las milesimas y
sacamos el valor de las centenas
lcd.setCursor(4, 0); //Ponemos el cursor en la linea 2 y el
caracter 5
lcd.print(md); //Imprimimos los valores en el display
lcd.print(mu);
lcd.print(":");
lcd.print(sd);
lcd.print(su);
lcd.print(":");
lcd.print(lc);
lcd.print(ld);
lcd.print(lu);
}
}
}

if(depois==LOW && antes==HIGH){


cont++;
}

antes=depois; //cambiamos el valor de la variable antes


al que tiene la variable despues
}
}

antes=depois; //cambiamos el valor de la variable


antes al que tiene la variable despues
}

También podría gustarte