Код: Выделить всё
#include <Arduino.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup ()
{
Serial.begin(9600);
delay(3000); // ждать открытия консоли
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
// Закомментируйте ниже строки, как только вы установите дату и время
// Следующая строка устанавливает RTC на дату и время компилирования этого скетча
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop ()
{
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
DateTime now = rtc.now();
Serial.println("Current Date & Time: ");
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 монитор с временем на компьютере - разница в лучшем случае 30 сек. На таймере на 30 сек меньше. Почему так? И как тогда выставить время секунда в секунду?