Stap 8: klok
Voor het verkrijgen van de huidige tijd met de toepassing van de klok moet u eerst instellen uw DS1307, in het geval dat het niet deed het nog. Hiervoor kunt u laden volgende arduino schets en stel de huidige tijd in (unix-indeling):
/* T(string_utctime) */ #include <Time.h> #include <Wire.h>#include // a basic DS1307 library that returns time as a time_tvoid setup() { Serial.begin(9600); setSyncProvider(RTC.get); // the function to get the time from the RTC if(timeStatus()!= timeSet) Serial.println("Unable to sync with the RTC"); else Serial.println("RTC has set the system time"); }void loop() { if(Serial.available()) { time_t t = processSyncMessage(); if(t >0) { RTC.set(t); // set the RTC and the system time to the received value setTime(t); } } digitalClockDisplay(); delay(1000); }void digitalClockDisplay(){ // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.print(" "); Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); }void printDigits(int digits){ // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }/* code to process time sync messages from the serial port */ #define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits #define TIME_HEADER 'T' // Header tag for serial time sync messagetime_t processSyncMessage() { // return the time if a valid sync message is received on the serial port. while(Serial.available() >= TIME_MSG_LEN ){ // time message consists of a header and ten ascii digits char c = Serial.read() ; Serial.print(c); if( c == TIME_HEADER ) { time_t pctime = 0; for(int i=0; i < TIME_MSG_LEN -1; i++){ c = Serial.read(); if( c >= '0' && c <= '9'){ pctime = (10 * pctime) + (c - '0') ; // convert digits to a number } } return pctime; } } return 0; }
Na het instellen van uw DS1307 kunt u de gadget voor het krijgen van de huidige tijd door te klikken op het pictogram van de klok in het hoofdvenster.