Étape 3: Le RTClib
http://Arduino-info.wikispaces.com/DS1307_RealTime_Clock_Brick
Votre CCF viendra avec le temps ; parfois avec l’heure locale de la Chine ; pour modifier le temps, allez à th, connectez votre RTC (le site Web vous montrera le diagramme) et exécutez le code suivant :
Arduino 1.0 + seulement
Arduino 1.0 + seulement
#include « Wire.h »
#define DS1307_ADDRESS 0x68
octet zéro = 0 x 00 ; solution de contournement pour problème #527
void setup() {}
Wire.Begin() ;
Serial.Begin(9600) ;
setDateTime() ; DEVEZ CONFIGURER EN FONCTION
}
void loop() {}
printDate() ;
Delay(1000) ;
}
void setDateTime() {}
modifier ici la date et l’heure
octet second = 20 ; 0-59
minute de Byte = 27 ; 0-59
heure d’octet = 22 ; 0-23
jour de semaine octets = 26 ; 1-7
monthDay octet = 22 ; 1-31
mois d’octet = 11 ; 1-12
année de l’octet = 13 ; 0-99
Wire.beginTransmission(DS1307_ADDRESS) ;
Wire.Write(Zero) ; arrêter l’oscillateur
Wire.Write(decToBcd(second)) ;
Wire.Write(decToBcd(minute)) ;
Wire.Write(decToBcd(Hour)) ;
Wire.Write(decToBcd(weekDay)) ;
Wire.Write(decToBcd(monthday)) ;
Wire.Write(decToBcd(month)) ;
Wire.Write(decToBcd(Year)) ;
Wire.Write(Zero) ; début
Wire.endTransmission() ;
}
{decToBcd(byte val) octets
Convertir des nombres décimaux normales en décimale codée en binaire
Return ((val/10 * 16) + (10 % de val)) ;
}
{bcdToDec(byte val) octets
Convertir de décimale codée en binaire en nombres décimaux normal
Return ((val/16 * 10) + (val % 16)) ;
}
void printDate() {}
Réinitialiser le registre de pointeur
Wire.beginTransmission(DS1307_ADDRESS) ;
Wire.Write(Zero) ;
Wire.endTransmission() ;
Wire.requestFrom (DS1307_ADDRESS, 7) ;
int = deuxième bcdToDec(Wire.read()) ;
minute d’int = bcdToDec(Wire.read()) ;
int h = bcdToDec(Wire.read() & 0b111111) ; 24 heures
jour de semaine int = bcdToDec(Wire.read()) ; 0-6-> dimanche - samedi
int monthDay = bcdToDec(Wire.read()) ;
int mois = bcdToDec(Wire.read()) ;
année int = bcdToDec(Wire.read()) ;
imprimer la date EG 01/03/11 23:59:59
Serial.Print(month) ;
Serial.Print("/") ;
Serial.Print(monthday) ;
Serial.Print("/") ;
Serial.Print(Year) ;
Serial.Print("") ;
Serial.Print(Hour) ;
Serial.Print(":") ;
Serial.Print(minute) ;
Serial.Print(":") ;
Serial.println(second) ;
}