DS1307 проверка , запущены ли часы?
- Войдите на сайт для отправки комментариев
Вс, 09/10/2016 - 01:12
Использую библиотеку "DS1307". Как в скетче при запуске сделать проверку :запущен или нет RTC?Если не запущен -запустить.
К примеру , запускаем скетч из примеров "ds1307_rtc".
#if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif #include <Wire.h> #include <DS1307.h> // written by mattt on the Arduino forum and modified by D. Sjunnesson void setup() { Serial.begin(9600); } void loop() { Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true Serial.print(":"); Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false) Serial.print(":"); Serial.print(RTC.get(DS1307_SEC,false));//read seconds Serial.print(" "); // some space for a more happy life Serial.print(RTC.get(DS1307_DATE,false));//read date Serial.print("/"); Serial.print(RTC.get(DS1307_MTH,false));//read month Serial.print("/"); Serial.print(RTC.get(DS1307_YR,false)); //read year Serial.println(); delay(1000); }
Есть батарейка на модуле и неизвестно при первом запуске -запущен ли РТС?
Если RTC не запущен - часы не идут. Я в сетап вставил следующие строки:
void setup() { RTC.stop(); RTC.start(); }
Правильно ли я сделал?Или можно сделать как-то проще?Или ,точнее, как правильно?
проверить, изменилось время или нет, во всяком случае останавливать не нужно, просто
RTC.start();
если время остановилось из-за разрядки батареи, то оно сбросится в зашитую дату,
можно сделать алгоритм проверки.
как я понял, твоя проблема в том, что часы начинают идти со времени компиляции.?
так, но нужно найти подходящую библиотеку, т.к. их множество...
Спасибо за ответ DIVGENY!У меня с DS1307 собран нагреватель воды. Через пол года после какого-то включения выключения часы остановились .Я их опять запустил командой RTC.start();. Но в случае если это опять повторится хочу что бы была проверка на предмет - запущен ли РТС.Если в сетап вставть просто RTC.start();, то при перезапуске часы через раз останавливаются и запускаются. а при вставке
вроде как все ок - часы идут нормально(и при останоленном РТС , и при запущеном)