Stap 4: De instellen rtc schets van lid WWC. Dit nemen.
u hebt uw tijd invoeren, uploaden en vervolgens openen seriële en hit y en verzenden.//////////////////////////////////////////
RTC gegevens en tijd setter / /
// //
Deze steekproefprogramma kan de gebruiker / /
instellen van de datum en tijd van een RTC / /
met behulp van I2C. //
// //
// Codes by: //
eGizmo Mechatronix centrale / /
Taft, Manilla, Filipijnen / /
http://www.egizmo.com / /
April 15, 2013 / /
///////////////////////////////////////////
#include < Wire.h >
Const int DS1307 = 0x68; Adres van DS1307 Zie informatiebladen
const char * dagen [] =
{"Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"};
const char * maanden [] =
{'Januari', 'Februari', 'Maart', "April", "Mei", "Juni", "juli", "Augustus", "September", "Oktober", "November", "December"};
Initialiseert alle waarden:
byte tweede = 0;
byte minuut = 0;
byte uur = 0;
byte weekdag = 0;
byte monthday = 0;
byte maand = 0;
byte jaar = 0;
VOID Setup {}
Wire.begin();
Serial.begin(9600);
delay(2000); Deze vertraging kan de MCU te lezen van de huidige datum en tijd.
Serial.Print ("de huidige datum en tijd is:");
printTime();
Serial.println ("Please wijziging newline eindigt de instellingen op de rechterbenedenhoek van de Serial Monitor");
Serial.println ("Would you like to Stel de datum en de tijd nu? Y/N");
terwijl (!. Serial.available()) delay(10);
Als (Serial.read() == 'y' || Serial.Read() == 'Y')
Deze set van functies kan de gebruiker de datum en tijd wijzigen
{
Serial.Read();
setTime();
Serial.Print ("de huidige datum en tijd is nu:");
printTime();
}
Serial.println ("Thank you.");
}
Continue functie voor het converteren van bytes naar decimalen en vice versa
void loop {}
}
byte decToBcd(byte val) {}
retourneren ((val/10 * 16) + (val % 10));
}
byte bcdToDec(byte val) {}
retourneren ((val/16 * 10) + (val % 16));
}
Deze set codes is mogelijk maakt van de invoer van gegevens
VOID setTime() {}
Serial.Print ("Voer het lopende jaar, 00-99. - ");
jaar = 13;
Serial.println(Year);
Serial.Print ("Voer de huidige maand, 1-12. - ");
maand = 9;
Serial.println(months[month-1]);
Serial.Print ("Voer de huidige dag van de maand, 1-31. - ");
MonthDay = 20;
Serial.println(MonthDay);
Serial.println ("Voer de huidige dag van de week, 1-7.");
Serial.Print ("1 zon | 2 Ma | 3 Dins | 4 Weds | 5 do | 6 VR | 7 zat - ");
weekdag = 6;
Serial.println(Days[Weekday-1]);
Serial.Print ("Voer het huidige uur in 24-uurs indeling, 0-23. - ");
uur = 13;
Serial.println(hour);
Serial.Print ("Voer de huidige minuut, 0-59. - ");
Minute = 51;
Serial.println(Minute);
tweede = 15;
Serial.println ("de gegevens heeft ingevoerd.");
De volgende codes stuurt de gegevens naar de RTC
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();
Uiteinden transmissie van gegevens
}
byte readByte() {}
terwijl (!. Serial.available()) delay(10);
byte lezing = 0;
byte incomingByte = Serial.read();
terwijl (incomingByte! = '\n') {}
Als (incomingByte > = '0' & & incomingByte < = '9')
lezen = lezing * 10 + (incomingByte - '0');
anders;
incomingByte = Serial.read();
}
Serial.Flush();
retourneren van lezing;
}
ongeldig printTime() {}
char buffer [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("");
Als (uur > 12) {}
uur-= 12;
AMPM = "PM";
}
anders AMPM = "AM";
Serial.Print(hour);
Serial.Print(":");
sprintf (buffer, "% 02d", minuut);
Serial.Print(buffer);
Serial.println(AMPM);
}
ongeldig readTime() {}
Wire.beginTransmission(DS1307);
Wire.write(byte(0));
Wire.endTransmission();
Wire.requestFrom (DS1307, 7);
tweede = bcdToDec(Wire.read());
minuten = bcdToDec(Wire.read());
uur = bcdToDec(Wire.read());
weekdag = bcdToDec(Wire.read());
MonthDay = bcdToDec(Wire.read());
maand = bcdToDec(Wire.read());
jaar = bcdToDec(Wire.read());
}