Академический Документы
Профессиональный Документы
Культура Документы
#include <MsTimer2.h>
//Variables conectadas a PINS (E/S)
int points = 8;
int ud_min = 7;
int dec_min = 6;
int ud_hora = 5;
int dec_hora = 4;
int latchPin = 2;
int clockPin = 3;
int dataPin = 1;
int j=0;
int variable;
byte dataArray[11];
byte dataArray_motor[7];
void tick2()
{
segundos++;
/*digitalWrite(points, state);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, 219);
digitalWrite(latchPin, 1);*/
//state = !state;
j++;
}
void setup()
{
pinMode(puls_horas, INPUT);
pinMode(puls_minutos, INPUT);
pinMode(set_alarm, INPUT);
pinMode(set, INPUT);
pinMode(interruptor_alarma, INPUT);
pinMode(latchPin, OUTPUT);
pinMode(points, OUTPUT);
pinMode(ud_min, OUTPUT);
pinMode(dec_min, OUTPUT);
pinMode(ud_hora, OUTPUT);
pinMode(dec_hora, OUTPUT);
dataArray[0] = 63;
dataArray[1] = 6;
dataArray[2] = 91;
dataArray[3] = 79;
dataArray[4] = 102;
dataArray[5] = 109;
dataArray[6] = 125;
dataArray[7] = 7;
dataArray[8] = 127;
dataArray[9] = 103;
dataArray[10] = 219;
dataArray_motor[0] = 1;
dataArray_motor[1] = 2;
dataArray_motor[2] = 70;
dataArray_motor[3] = 69;
dataArray_motor[4] = 73;
dataArray_motor[5] = 74;
dataArray_motor[6] = 192;
void loop()
{
settings();
if(segundos==119)
{
minutos++;
segundos = 0;
if (minutos >59)
{
minutos = 0;
if (horas ==23)
{
horas = 0 ;
}
else horas = horas + 1;
}
}
if ((horas == horas_alarm)&&(minutos == minutos_alarm))
{
alarma = HIGH;
}
alarm();
set_select = digitalRead(set);
set_select2 = digitalRead(set_alarm);
if(set_select2 == HIGH && set_select == LOW)
{
hh = horas_alarm;
mm = minutos_alarm;
muestra(hh,mm,m);
}
else
{
hh = horas;
mm = minutos;
muestra(hh,mm,m);
}
void settings()
{
horas_inc = digitalRead(puls_horas);
min_inc = digitalRead(puls_minutos);
set_select = digitalRead(set);
set_select2 = digitalRead(set_alarm);
while (((horas_inc==LOW )||(min_inc==LOW))&& set_select2==LOW)
{
if(horas_inc==LOW)
{
if (horas ==23)
{
horas = 0 ;
}
else horas = horas + 1;
}
if (min_inc==LOW)
{
if (minutos == 59)
{
minutos = 0 ;
}
else minutos = minutos + 1;
}
delay(750);
horas_inc = digitalRead(puls_horas);
min_inc = digitalRead(puls_minutos);
set_select = digitalRead(set);
set_select2 = digitalRead(set_alarm);
}
}
if (min_inc==LOW)
{
muestra(hh,mm,m);
if (minutos_alarm == 59)
{
minutos_alarm = 0 ;
}
else minutos_alarm = minutos_alarm + 1;
delay(750);
horas_inc = digitalRead(puls_horas);
min_inc = digitalRead(puls_minutos);
set_select = digitalRead(set);
set_select2 = digitalRead(set_alarm);
}
}
//stop shifting
digitalWrite(myClockPin, 0);
}
void alarm()
{
int_alarma = digitalRead(interruptor_alarma);
if((alarma == HIGH)&&(int_alarma == HIGH))
{
if (j>4)
{
variable=random(5);
m=variable;
j=0;
}
else
{
m=variable;
}
}
else
{
m=6;
alarma=LOW;
}
}
int min_ud;
int min_dec;
int hora_ud;
int hora_dec;
min_ud=mm%10;
min_dec=mm/10;
hora_ud=hh%10;
hora_dec=hh/10;
digitalWrite(ud_min, 1);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataArray_motor[mot]);
shiftOut(dataPin, clockPin, dataArray[min_dec]);
digitalWrite(latchPin, 1);
digitalWrite(ud_min,0);
digitalWrite(dec_min, 1);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataArray_motor[mot]);
shiftOut(dataPin, clockPin, dataArray[hora_ud]);
digitalWrite(latchPin, 1);
digitalWrite(dec_min, 0);
digitalWrite(ud_hora, 1);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataArray_motor[mot]);
shiftOut(dataPin, clockPin, dataArray[hora_dec]);
digitalWrite(latchPin, 1);
digitalWrite(ud_hora, 0);
digitalWrite(dec_hora, 1);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataArray_motor[mot]);
shiftOut(dataPin, clockPin, dataArray[min_ud]);
digitalWrite(latchPin, 1);
digitalWrite(dec_hora, 0);
}