Код для DS3231

Добрый день, в Ардуино новичок. Возникла проблема с датчиком ds3231, в частности с кодом.
Не совсем понимаю как в моем коде сделать так, чтобы время считалось без включенной платы (код рабочий, просто не знаю как перестроить его так, чтобы время выводилось с момента начала работы скетча).

#include <DS3231.h> 
#include <Wire.h>
#include <LiquidCrystal.h>         
DS3231  rtc(SDA, SCL);  
const int rs = 6, en = 7, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int soilMoistureValue = 0;
int soilmoisturepercent = 0; ;
unsigned int recv_size = 0;
unsigned long prev, interval = 1000;
void setup() {     
  lcd.begin(16, 2);
  Serial.begin(9600);
  pinMode(soilMoistureValue, INPUT);
  Serial.begin(115200);              
  rtc.begin();                                          
  rtc.setTime(14, 54,20);              //  Установить время 16:29:00 (формат 24 часа)
}
void loop() {
  if (Serial.available()) 
    delay(100);
    //lcd.clear();
    while (Serial.available() > 0) 
      lcd.write(Serial.read());  
  const int AirValue = 513;             // Максимальное значение сухого датчика
  const int WaterValue = 215;           // Минимальное значение погруженного датчика         
  soilMoistureValue = analogRead(A0);   // Считываем данные с порта A0 и записываем их в переменную
  soilmoisturepercent = map(soilMoistureValue, AirValue, WaterValue, 0, 100);  
  lcd.setCursor(0,0);
  lcd.print("Humidity:");
  lcd.print(soilmoisturepercent);
  lcd.print("%");
  lcd.print("  ");
  lcd.setCursor(11,1);
  lcd.println(rtc.getTimeStr());    // Отправляем время
  
  delay (1000);                        // Задержка в одну секунду
  lcd.setCursor(0,1);
  lcd.print("T:");
  lcd.print(rtc.getTemp());
  lcd.print("\x99\x43");
  delay (800); }

Так там для этого и стоит батарейка.

Так код написан, только для заданных изначально значений

При выключении питания и при повторном включении время сбрасывается

Так в следущей прошивке заремте 17 строку, и время будет дальше продолжать идти. А вообще установку часов делают 1 раз четез код монитора порта.

1 лайк

можете подсказать, что такое “заремте”?

понял, спасибо за разъяснения

REM – создание комментариев в командных файлах Windows.

но по мне так, это пошло со времен языка BASIC.