Помогите разобраться с модулем реального времени

  • У нас появились СТАТЬИ! Левая кнопка в меню навигации. Любую тему можно преобразовать в статью (в настройках темы И при её создании): первое сообщение станет текстом статьи, а остальные - комментариями. На форуме много достойных тем, думаю стоит навести порядок в первом сообщении с учётом всех остальных постов, красиво оформить и перевести их в статьи. Хорошие темы должны быть на "витрине"! Данное объявление можно отключить крестиком (куки должны быть включены)

Dan_Hahatsky

✩✩✩✩✩✩✩
2 Апр 2020
10
0
Собрал проект часов на Ардуино с использованием датчика реального времени DS1302. Проблема в том что при отключении питания на часах устанавливается время, которое прописано в коде. Как сделать чтобы время сохранялось при отключении питания? И еще, если не сложно, подскажите как сделать адаптивную подсветку экрана LSD 1602 I2C, подсветка должна управляться через фоторезистор. .
Скетч:
#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6, 7, 8); //CLK, DAT, RST
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <dht11.h>
dht11 sensor;
#define DHT11PIN 2

byte degree[8] = // кодируем символ градуса
{
B00100,
B01010,
B01010,
B01110,
B10001,
B10001,
B01110,
};
byte water[8] =
{
B00100,
B00100,
B01110,
B01110,
B11101,
B11001,
B01110,
};
void setup()
{
lcd.begin(16,2);
myRTC.setDS1302Time(00,03, 20, 02, 18, 04, 2020);
lcd.init();
lcd.backlight();
lcd.createChar(1, degree); // Создаем символ под номером 1
lcd.createChar(2, water); // Создаем символ под номером 2
}
void loop()
{
//дата и время
{
myRTC.updateTime();
lcd.setCursor(0, 0);
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(":");
lcd.print(myRTC.seconds);
lcd.print(" ");
delay(1000);
}
//символы
{
lcd.setCursor(8, 1);
lcd.print ("|");
lcd.setCursor(12, 1);
lcd.print ("|");
}
//температура и влажность
{
int chk = sensor.read(DHT11PIN);
lcd.setCursor(9, 1);
lcd.write (byte(2));
lcd.setCursor(13, 1);
lcd.write (byte(2));
lcd.setCursor(10, 1);
lcd.print(sensor.humidity);
lcd.setCursor(13, 1);
lcd.write (byte(1));
lcd.setCursor(14, 1);
lcd.print(sensor.temperature);
delay(1000);
}
}
 
Последнее редактирование:

Старик Похабыч

★★★★✩✩✩
14 Авг 2019
1,015
256
Москва
Установи правильное время, прошей.
УБЕРИ СТРОКУ где ты выставляешь время
myRTC.setDS1302Time(00,03, 20, 02, 18, 04, 2020);

ПРОШЕЙ ЕЩЕ РАЗ БЕЗ НЕЕ!
 

Эдуард Анисимов

★★★✩✩✩✩
23 Сен 2019
505
111
54
Марий-Эл
В дополнение к вышесказанному.
А батарейка на DS1302 стоит?

И адаптивная подсветка это как? Чем она должна управляться?