Moduł RTC DS1307 jest zegarem czasu rzeczywistego.
Materiały:
Dokumentacja układu DS1307 [pdf]
Schemat (przykładowy):
Płytka (zdjęcie):
- RTC DS1307
Specyfikacja:
- Napięcie zasilania: 5V
- Pobór prądu: poniżej 500 nA
- Interfejs komunikacyjny: I2C / TWI (SDA, SCL)
- Częstotliwość odświeżania: 1 Hz
- Dostępne dane:
Czas: godzina (AM, PM), minuta, sekunda
Data: miesiąc dzień, rok - Możliwość podtrzymywania danych przy pomocy baterii
- Dokładny kalendarz do roku 2100
- Pamięć wewnętrzna ogólnodostępna: 56 bajtów
Przykładowy kod (nietestowany), wymaga biblioteki RTClib.h:
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib #include #include "RTClib.h" RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled //RTC.adjust(DateTime(__DATE__, __TIME__)); } } void loop () { DateTime now = RTC.now(); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.println(); Serial.print(" since 1970 = "); Serial.print(now.unixtime()); Serial.print("s = "); Serial.print(now.unixtime() / 86400L); Serial.println("d"); // calculate a date which is 7 days and 30 seconds into the future DateTime future (now.unixtime() + 7 * 86400L + 30); Serial.print(" now + 7d + 30s: "); Serial.print(future.year(), DEC); Serial.print('/'); Serial.print(future.month(), DEC); Serial.print('/'); Serial.print(future.day(), DEC); Serial.print(' '); Serial.print(future.hour(), DEC); Serial.print(':'); Serial.print(future.minute(), DEC); Serial.print(':'); Serial.print(future.second(), DEC); Serial.println(); Serial.println(); delay(3000); }