Étape 7: Le programme complet.
#include < Wire.h >
#include < Time.h >
#include < DS1307RTC.h >
const int setH = 14 ; bouton d’augmentation de l’heure
const int setM = 15 ; bouton d’augmentation minute
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, entrée) ;
pinMode (setM, entrée) ;
pinMode (UnitMin01, sortie) ;
pinMode (UnitMin02, sortie) ;
pinMode (UnitMin04, sortie) ;
pinMode (UnitMin08, sortie) ;
pinMode (UnitTen01, sortie) ;
pinMode (UnitTen02, sortie) ;
pinMode (UnitTen04, sortie) ;
pinMode (UnitHrs01, sortie) ;
pinMode (UnitHrs02, sortie) ;
pinMode (UnitHrs04, sortie) ;
pinMode (UnitHrs08, sortie) ;
}
void loop()
{
tmElements_t tm ;
Si (RTC.read(tm))
{
Si (digitalRead(setM) == HIGH)
{
unsigned long j = RTC.get() ;
j = j + 60 ;
RTC.set(j) ;
}
Si (digitalRead(setH) == HIGH)
{
unsigned long j = RTC.get() ;
j = j + 3600 ;
RTC.set(j) ;
}
binaryOutputHours (tm. Heure) ;
binaryOutputMinutes (tm. Minute) ;
}
Delay(1000) ;
}
Sub binaryOutputHours(int number)
{
Si (nombre == 0)
{
nombre = 12 ;
}
Si (nombre > = 13)
{
Nombre = Nombre - 12 ;
}
setBinaryHours(number) ;
}
Sub binaryOutputMinutes(int number)
{
Si (nombre > = 10)
{
int dizaines = nombre/10 ;
les unités int = nombre - (RTE * 10) ;
setBinaryMins(units) ;
setBinaryTens(tens) ;
}
d’autre
{
des dizaines d’int = 0 ;
les unités int = nombre ;
setBinaryMins(units) ;
setBinaryTens(tens) ;
}
}
Sub setBinaryMins(int units)
{
Si (unités > = 8)
{
digitalWrite (UnitMin08, élevé) ;
unités = unités - 8 ;
}
d’autre
{
digitalWrite (UnitMin08, basse) ;
}
Si (unités > = 4)
{
digitalWrite (UnitMin04, élevé) ;
unités = unités - 4 ;
}
d’autre
{
digitalWrite (UnitMin04, basse) ;
}
Si (unités > = 2)
{
digitalWrite (UnitMin02, élevé) ;
unités = unités - 2 ;
}
d’autre
{
digitalWrite (UnitMin02, basse) ;
}
Si (unités > = 1)
{
digitalWrite (UnitMin01, élevé) ;
unités = unités - 1 ;
}
d’autre
{
digitalWrite (UnitMin01, basse) ;
}
}
Sub setBinaryTens(int tens)
{
Si (dizaines > = 4)
{
digitalWrite (UnitTen04, élevé) ;
des dizaines = dizaines - 4 ;
}
d’autre
{
digitalWrite (UnitTen04, basse) ;
}
Si (dizaines > = 2)
{
digitalWrite (UnitTen02, élevé) ;
des dizaines = dizaines - 2 ;
}
d’autre
{
digitalWrite (UnitTen02, basse) ;
}
Si (dizaines > = 1)
{
digitalWrite (UnitTen01, élevé) ;
des dizaines = dizaines - 1 ;
}
d’autre
{
digitalWrite (UnitTen01, basse) ;
}
}
Sub setBinaryHours(int hours)
{
Si (h > = 8)
{
digitalWrite (UnitHrs08, élevé) ;
heures = heures - 8 ;
}
d’autre
{
digitalWrite (UnitHrs08, basse) ;
}
Si (h > = 4)
{
digitalWrite (UnitHrs04, élevé) ;
heures = heures - 4 ;
}
d’autre
{
digitalWrite (UnitHrs04, basse) ;
}
Si (h > = 2)
{
digitalWrite (UnitHrs02, élevé) ;
heures = heures - 2 ;
}
d’autre
{
digitalWrite (UnitHrs02, basse) ;
}
Si (h > = 1)
{
digitalWrite (UnitHrs01, élevé) ;
heures = heu - 1 ;
}
d’autre
{
digitalWrite (UnitHrs01, basse) ;
}
}