/*
xsetaseta@gmail.com Juan Galaz 5/SEP/2017
*/
#include <TM1638.h>
// define a module on data pin 8, clock pin 9 and strobe pin 7
TM1638 module(8, 9, 7);
byte display[8];
char cadena[20];
int alarma,contador,time1;
#define MILED 13
#define PIN_SOUND 12
#define RETRASO 597
char fcontador;
void setup()
{
pinMode(MILED, OUTPUT);
pinMode(PIN_SOUND, OUTPUT);
digitalWrite(MILED, LOW);
module.setupDisplay(1,0);
module.setDisplayToString("TIMER ",0,0);
delay(500);
module.setDisplayToString("0060----",0,0);
display[2]=6;
alarma=60;
}
void loop()
{
byte keys;
int z;
keys = module.getButtons();
switch(keys)
{
case 1:
if(fcontador==0)
{display[0]++; if(display[0]>9) display[0]=0;}
break;
case 2:
if(fcontador==0)
{display[1]++; if(display[1]>9) display[1]=0;}
break;
case 4:
if(fcontador==0)
{display[2]++; if(display[2]>9) display[2]=0;}
break;
case 8:
if(fcontador==0)
{display[3]++; if(display[3]>9) display[3]=0;}
break;
case 16:
fcontador=0;
contador=alarma;
digitalWrite(MILED, LOW);
module.setLEDs(16);
break;
case 128:
fcontador=1;
contador=alarma;
time1=RETRASO;
digitalWrite(MILED, LOW);
module.setLEDs(128);
break;
}
if(fcontador==0 && keys>0)
{
alarma=display[0]*1000+display[1]*100+display[2]*10+display[3];
sprintf(cadena,"%04d%04d",alarma,contador);
module.setDisplayToString(cadena,0,0);
delay(300);
}
time1--;
if(fcontador==1 && time1<=0)
{
module.setLEDs(0);
time1=RETRASO;
contador--;
sprintf(cadena,"%04d%04d",alarma,contador);
module.setDisplayToString(cadena,0,0);
if(contador<1)
{
fcontador=0;
for(z=0;z<10;z++)
{
sprintf(cadena,"%04d0000",alarma);
module.setDisplayToString(cadena,0,0);
delay(200);
sprintf(cadena,"%04d ",alarma);
module.setDisplayToString(cadena,0,0);
delay(200);
}
sprintf(cadena,"%04d----",alarma);
module.setDisplayToString(cadena,0,0);
digitalWrite(MILED,HIGH);
for(z=0;z<300;z++)
{
digitalWrite(PIN_SOUND, HIGH);
delay(1);
digitalWrite(PIN_SOUND, LOW);
delay(1);
}
}
}
delay(1);
}
|