Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Date and time functions using a DS1307 RTC connected via I2C and Wire lib
- #include <Wire.h>
- #include "RTClib.h"
- #if defined(ARDUINO_ARCH_SAMD)
- // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
- #define Serial SerialUSB
- #endif
- RTC_DS1307 rtc;
- char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
- void setup () {
- #ifndef ESP8266
- while (!Serial); // for Leonardo/Micro/Zero
- #endif
- Serial.begin(57600);
- Wire.begin(D3, D4);
- if (! rtc.begin()) {
- Serial.println("Couldn't find RTC");
- while (1);
- }
- 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(F(__DATE__), F(__TIME__)));
- // This line sets the RTC with an explicit date & time, for example to set
- // January 21, 2014 at 3am you would call:
- // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
- }
- }
- 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(daysOfTheWeek[now.dayOfTheWeek()]);
- 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 midnight 1/1/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 + TimeSpan(7,12,30,6));
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement