Неправильный отсчёт времени DS1307 shiled Wemos D1 mini
- Войдите на сайт для отправки комментариев
Пт, 14/09/2018 - 11:15
Друзья, помогите разобраться с поделкой китайцев!
Купил shield RTC + microSD для Wemos D1 mini.
Подпаял ножки, подключил, заливаю код
#include <Wire.h>
#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 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.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);
}
И вижу вот такой вывод...
2018/9/14 10:5:28
since midnight 1/1/1970 = 1536919528s = 17788d
now + 7d + 30s: 2018/9/21 10:5:58
2018/9/14 10:5:46
since midnight 1/1/1970 = 1536919546s = 17788d
now + 7d + 30s: 2018/9/21 10:6:16
2018/9/14 10:6:4
since midnight 1/1/1970 = 1536919564s = 17788d
now + 7d + 30s: 2018/9/21 10:6:34
2018/9/14 10:6:22
since midnight 1/1/1970 = 1536919582s = 17788d
now + 7d + 30s: 2018/9/21 10:6:52
Секунды отсчитываются неправильно, да и само время не сохраняется. Батарейку крутил и так, и эдак. Результата нет. Шилд установлен контактами к Wemos, все символы совпадают, а работать не хочет. Подскажите, как решить проблему
если время не сохраняется:
1 поменять /проверить батарейку
2 выкинуть, купить рабочий
andycat, спасибо за ответ!
Батарейку менял, но толку нет. Минус устанавливается лицом к плате?
Выкидывать не хочется, получаю время по WiFi, а слот для SD карты рабочий. Хочется разобраться со временем
По поводу "не сохраняется время". А Вы скетч так со строкой 14 и используете?
По поводу "не сохраняется время". А Вы скетч так со строкой 14 и используете?
Я один раз залил, потом перезагружаю, смотрю вывод в com порт. Время же должно было 1 раз записаться, а потом браться из памяти, нет?
Один раз залить и запустить скетч с этой строкой. Потом закомментировать её и залить новый скетч. Сейчас при включении у Вас каждый раз устанавливаются "те самые" дата и время.
А с точностью хода у этих модулей много чудес. Вот например одна из тем: http://arduino.ru/forum/apparatnye-voprosy/speshat-chasy-ds1307