Étape 4: Étape « last », le code.
#include < LedControl.h >
#include < Wire.h >
const int DS1307 = 0x68 ;
A5 = SCL, A4 = SDA
const char * jours [] = {"Dimanche", "Monday", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"} ;
const char * mois [] = {"Janvier", "Février", "Mars", "Avril", "peut", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"} ;
octet second = 0 ; minute de l’octet = 0 ; heure de l’octet = 0 ; jour de semaine octets = 0 ;
monthday octet = 0 ;
mois de l’octet = 0 ;
année de l’octet = 0 ;
lastMinute octets = 0 ;
lastSecond octets = 0 ;
int Led = 13 ;
octet nul = B0000000 ;
een octets = B01000000 ;
twee octets = B01100000 ;
drie octets = B01110000 ;
vier octets = B01111000 ;
vijf octets = B01111100 ;
le Sze octets = B01111110 ;
zeven octets = B01111111 ;
acht octets = B11111111 ;
negen octets = B01000000 ;
tien octets = B01100000 ;
elf octets = B01110000 ; J’ai
NT un = 0 ; int b = 0 ; int c = 0 ;
int vijfMinTwee = 0 ;
uitgang int = faible ;
/ * broche 12 est reliée à la DataIn broche 11 est reliée à la CLK broche 10 est connectée à charge * /
LedControl lc = LedControl(12,11,10,1) ;
unsigned long delaytime = 100 ;
void setup() {}
Wire.Begin() ; Serial.Begin(9600) ;
pinMode (Led, sortie) ;
LC.Shutdown(0,false) ;
/ * Régler la luminosité à une moyenne des valeurs * /
lc.setIntensity(0,8) ;
/ * et effacer l’affichage * /
lc.clearDisplay(0) ;
}
void loop() {}
readTime() ;
digitalWrite(Led,uitgang) ;
Si (second! = lastSecond) {}
Si (uitgang == faible) uitgang = élevé ;
d’autre sortie = faible ;
digitalWrite (Led, uitgang) ;
lastSecond = seconde ;
}
Si (minutes! = lastMinute) {printTime() ; lastMinute = minute ;
}
}
{bcdToDec(byte val) octets
Return ((val/16 * 10) + (val % 16)) ;
}
void printTime() {}
tampon de char [3] ;
minuten long = minute ;
uren long = heure ;
int vijfmin = minuten 5 ;
int eenminuut = minuten-(vijfmin * 5) ;
int vijfuren = uren/5 ;
int eenuren = uren - (vijfuren * 5) ;
un = vijfmin ;
Digitaal() ;
vijfmin = b ;
vijfMinTwee = c ;
un = eenminuut ;
Digitaal() ;
eenminuut = b ;
un = vijfuren ;
Digitaal() ;
vijfuren = b ;
un = eenuren ;
Digitaal() ;
eenuren = b ;
lc.setRow(0,4,vijfuren) ;
lc.setRow(0,3,eenuren) ;
lc.setRow(0,1,vijfmin) ;
lc.setRow(0,2,vijfMinTwee) ;
lc.setRow(0,0,eenminuut) ;
}
void readTime() {}
Wire.beginTransmission(DS1307) ;
Wire.Write(Byte(0)) ;
Wire.endTransmission() ;
Wire.requestFrom (DS1307, 7) ;
seconde = bcdToDec(Wire.read()) ;
minute = bcdToDec(Wire.read()) ;
heure = bcdToDec(Wire.read()) ;
jour de la semaine = bcdToDec(Wire.read()) ;
monthday = bcdToDec(Wire.read()) ;
mois = bcdToDec(Wire.read()) ;
an = bcdToDec(Wire.read()) ; }
void digitaal() {}
interrupteur (a) {}
case 0 :
b = nul ; c = nul ;
rupture ;
cas 1 :
b = een ; c = nul ;
rupture ;
cas 2 :
b = twee ; c = nul ;
rupture ;
cas 3 :
b = drie ; c = nul ;
rupture ;
cas 4 :
b = vier ; c = nul ;
rupture ;
cas no 5 :
b = vijf ; c = nul ;
rupture ;
cas 6 :
b = zes ; c = nul ;
rupture ;
cas 7 :
b = zeven ; c = nul ;
rupture ;
cas 8 :
b = acht ; c = nul ;
rupture ;
cas 9 :
b = acht ; c = negen ;
rupture ;
cas no 10 :
b = acht ; c = tien ;
rupture ;
cas no 11 :
b = acht ; c = elf ;
rupture ;
}
}
Assez simple, je crois.
Un autre avantage de cette esquisse : maintenant vous apprendre à compter en Néerlandais... De 0 à 11... ;-)
Espérons que vous apprécierez ce !
Marc.