DS1302 скидывает время

zorg807
Offline
Зарегистрирован: 31.01.2018

Когда выключаю из сети или перезапускаю монитор порта скидывается время. Как исправить? Батарейка стоит.

#include <RTC.h>
#define PIN_RELAY 5
RTC time;
 
void setup() {
Serial.begin(9600);
pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход
digitalWrite(PIN_RELAY, HIGH); // Выключаем реле - посылаем высокий сигнал
delay(300);
time.begin(RTC_DS1302,10,13,12); //вывод RST(10), вывод CLK(13), вывод DAT(12)
time.settime(35,10,20); // 35 сек, 10 мин, 20 час
 
}
 
void loop(){
 if(millis()%1000==0) // если прошла 1 секунда
      Serial.println(time.gettime("H:i:s")); // выводим время
     delay(1);    
 if (time.seconds==45)
    digitalWrite(PIN_RELAY, LOW);
 if (time.seconds==15)
    digitalWrite(PIN_RELAY, HIGH); 
}

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Что делает 11-я строка?

zorg807
Offline
Зарегистрирован: 31.01.2018

Записываем время с которого начнет считать

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, дык при включении питания она всегда с этого времени и начинает. нет?

zorg807
Offline
Зарегистрирован: 31.01.2018

Я думал что батарейка для того, что бы время не скидывалось 

Энергонезависимая память

b707
Offline
Зарегистрирован: 26.05.2017

zorg807 пишет:

Я думал что батарейка для того, что бы время не скидывалось 

Энергонезависимая память

Zorg. я сегодня уже одного просителя назвал идиотом. Не вас случайно?

Ну вы хоть чуть-чуть думайте, прежде чем спросить. Если вы каждое утро, вставая, будете выставлять на календаре 1 января  - он будет показывать правильную дату? причем здесь батарейка вообще?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

zorg807 пишет:

Я думал что батарейка для того, что бы время не скидывалось 

Она и не скидывается пока Вы её принудительно не поставите в одно и тоже значение. Зачем Вы это делаете?