Étape 4: Le CCF set sketch de membre CME. Prenez ceci.
vous devez entrer votre temps, télécharger et puis ouvrir la série et appuyez sur y et envoyer.//////////////////////////////////////////
Poseur de données et l’heure RTC / /
// //
Cet exemple de programme permet à l’utilisateur / /
pour définir la date et l’heure d’un CCF / /
à l’aide de I2C. //
// //
// Codes by: //
eGizmo Mechatronix Central / /
Taft, Manille, Philippines / /
http://www.egizmo.com / /
15 avril 2013 / /
///////////////////////////////////////////
#include < Wire.h >
const int DS1307 = 0x68 ; Adresse du DS1307 voir fiches techniques
const char * jours [] =
{"Dimanche", « Monday », « Mardi », « Mercredi », « Jeudi », « Vendredi », « Samedi »} ;
const char * mois [] =
{"Janvier", « Février », « Mars », « Avril », « Mai », « Juin », « Juillet », « Août », « Septembre », « Octobre », « Novembre », « Décembre »} ;
Initialise toutes les valeurs :
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 ;
void setup() {}
Wire.Begin() ;
Serial.Begin(9600) ;
Delay(2000) ; Ce délai permet la MCU lire la date et l’heure.
Serial.Print ("la date et l’heure est:") ;
printTime() ;
Serial.println ("s’il vous plaît changer pour saut de ligne se terminant les paramètres en bas à droite de la Serial Monitor") ;
Serial.println ("souhaitez-vous pour régler la date et l’heure actuelle ? O/N") ;
while (!. Serial.available()) delay(10) ;
Si (Serial.read() == « y » || Serial.Read() == "Y")
Cet ensemble de fonctions permet à l’utilisateur de changer la date et l’heure
{
Serial.Read() ;
setTime() ;
Serial.Print ("la date et l’heure est désormais:") ;
printTime() ;
}
Serial.println ("Merci.") ;
}
Fonction continue pour convertir les octets à décimales et inversement
void loop() {}
}
{decToBcd(byte val) octets
Return ((val/10 * 16) + (10 % de val)) ;
}
{bcdToDec(byte val) octets
Return ((val/16 * 10) + (val % 16)) ;
}
Cet ensemble de codes est autorise l’entrée des données
setTime() Sub {}
Serial.Print ("Veuillez saisir l’année en cours, 00-99. - ");
année = 13 ;
Serial.println(Year) ;
Serial.Print ("Veuillez entrer le mois en cours, 1-12. - ");
mois = 9 ;
Serial.println(months[month-1]) ;
Serial.Print ("Veuillez entrer le jour de mois, 1-31. - ");
monthday = 20 ;
Serial.println(monthday) ;
Serial.println ("entrez le jour de la semaine, 1-7.") ;
Serial.Print ("1 soleil | 2 Lun | 3 Mar | 4 Weds | 5 jeu | 6 Ven | 7 assis - ") ;
jour de semaine = 6 ;
Serial.println(Days[Weekday-1]) ;
Serial.Print ("Veuillez saisir l’heure courante au format 24 heures, 0-23. - ");
heure = 13 ;
Serial.println(Hour) ;
Serial.Print ("Veuillez saisir l’actuel minute, 0-59. - ");
minute = 51 ;
Serial.println(minute) ;
deuxième = 15 ;
Serial.println ("les données a été entrées.") ;
Les codes suivants transmet les données au CCF
Wire.beginTransmission(DS1307) ;
Wire.Write(Byte(0)) ;
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(Byte(0)) ;
Wire.endTransmission() ;
Extrémités de transmission de données
}
octet readByte() {}
while (!. Serial.available()) delay(10) ;
lecture d’octets = 0 ;
incomingByte octets = Serial.read() ;
tandis que (incomingByte! = « \n ») {}
Si (incomingByte > = « 0 » & & incomingByte < = « 9 »)
lecture = lecture * 10 + (incomingByte - « 0 ») ;
d’autre ;
incomingByte = Serial.read() ;
}
Serial.Flush() ;
retour de lecture ;
}
void printTime() {}
tampon de char [3] ;
const char * AMPM = 0 ;
readTime() ;
Serial.Print(Days[Weekday-1]) ;
Serial.Print("") ;
Serial.Print(months[month-1]) ;
Serial.Print("") ;
Serial.Print(monthday) ;
Serial.Print (", 20") ;
Serial.Print(Year) ;
Serial.Print("") ;
Si {(heure > 12)
heure-= 12 ;
AMPM = « H » ;
}
d’autre AMPM = « AM » ;
Serial.Print(Hour) ;
Serial.Print(":") ;
sprintf (tampon, "% 02d", minuscules) ;
Serial.Print(buffer) ;
Serial.println(AMPM) ;
}
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()) ;
}