Paso 7: El programa completo.
#include < Wire.h >
#include < Time.h >
#include < DS1307RTC.h >
const int setH = 14; botón de aumento de horas
const int setM = 15; botón de aumento de minutos
const int UnitMin01 = 12;
const int UnitMin02 = 9;
const int UnitMin04 = 8;
const int UnitMin08 = 7;
const int UnitTen01 = 2;
const int UnitTen02 = 11;
const int UnitTen04 = 10;
const int UnitHrs01 = 3;
const int UnitHrs02 = 4;
const int UnitHrs04 = 5;
const int UnitHrs08 = 6;
void setup()
{
Delay(200);
pinMode (setH, entrada);
pinMode (setM, entrada);
pinMode (UnitMin01, salida);
pinMode (UnitMin02, salida);
pinMode (UnitMin04, salida);
pinMode (UnitMin08, salida);
pinMode (UnitTen01, salida);
pinMode (UnitTen02, salida);
pinMode (UnitTen04, salida);
pinMode (UnitHrs01, salida);
pinMode (UnitHrs02, salida);
pinMode (UnitHrs04, salida);
pinMode (UnitHrs08, salida);
}
void loop()
{
tmElements_t tm;
Si (RTC.read(tm))
{
Si (digitalRead(setM) == HIGH)
{
j largo sin signo = RTC.get();
j = j + 60;
RTC.set(j);
}
Si (digitalRead(setH) == HIGH)
{
j largo sin signo = RTC.get();
j = j + 3600;
RTC.set(j);
}
binaryOutputHours (tm. Hora);
binaryOutputMinutes (tm. Minuto);
}
Delay(1000);
}
void binaryOutputHours(int number)
{
Si (cantidad == 0)
{
número = 12;
}
Si (número > = 13)
{
número = número - 12;
}
setBinaryHours(number);
}
void binaryOutputMinutes(int number)
{
Si (número > = 10)
{
int decenas = número/10;
int unidades = número - (decenas * 10);
setBinaryMins(units);
setBinaryTens(tens);
}
otra cosa
{
int decenas = 0;
int unidades = número;
setBinaryMins(units);
setBinaryTens(tens);
}
}
void setBinaryMins(int units)
{
Si (unidades > = 8)
{
digitalWrite (UnitMin08, alto);
unidades = unidades - 8;
}
otra cosa
{
digitalWrite (UnitMin08, bajo);
}
Si (unidades > = 4)
{
digitalWrite (UnitMin04, alto);
unidades = unidades - 4;
}
otra cosa
{
digitalWrite (UnitMin04, bajo);
}
Si (unidades > = 2)
{
digitalWrite (UnitMin02, alto);
unidades = unidades - 2;
}
otra cosa
{
digitalWrite (UnitMin02, bajo);
}
Si (unidades > = 1)
{
digitalWrite (UnitMin01, alto);
unidades = unidades - 1;
}
otra cosa
{
digitalWrite (UnitMin01, bajo);
}
}
void setBinaryTens(int tens)
{
Si (decenas > = 4)
{
digitalWrite (UnitTen04, alto);
decenas = decenas - 4;
}
otra cosa
{
digitalWrite (UnitTen04, bajo);
}
Si (decenas > = 2)
{
digitalWrite (UnitTen02, alto);
decenas = decenas - 2;
}
otra cosa
{
digitalWrite (UnitTen02, bajo);
}
Si (decenas > = 1)
{
digitalWrite (UnitTen01, alto);
decenas = decenas - 1;
}
otra cosa
{
digitalWrite (UnitTen01, bajo);
}
}
void setBinaryHours(int hours)
{
Si (horas > = 8)
{
digitalWrite (UnitHrs08, alto);
horas = horas - 8;
}
otra cosa
{
digitalWrite (UnitHrs08, bajo);
}
Si (horas > = 4)
{
digitalWrite (UnitHrs04, alto);
horas = horas - 4;
}
otra cosa
{
digitalWrite (UnitHrs04, bajo);
}
Si (horas > = 2)
{
digitalWrite (UnitHrs02, alto);
horas = horas - 2;
}
otra cosa
{
digitalWrite (UnitHrs02, bajo);
}
Si (horas > = 1)
{
digitalWrite (UnitHrs01, alto);
horas = horas - 1;
}
otra cosa
{
digitalWrite (UnitHrs01, bajo);
}
}