Babos, а почему, когда отключаешь комнату со все светом потом снова включаешь ардуино он не сохраняет таймер, даже если я комментирую строчку. с сеттером начального таймера-тамера.
Можно. Я же красивый!
потому что сначала надо пройти курс, повторить проекты, и большинство вопросов сразу отпадет, инфа 300%! из 100
потому что этот модуль не ах. У меня было точно так же и уже давно ничего кроме модуля DS3231 не использую.
… но ты пробуй другие библиотеки, а вдруг…
Ребят, все работает как надо:
Но в Alash_DS1302.h у меня ошибка: время сбрасывается, после выключения питания! На 0.0.0 1.1.2000:
#include <Wire.h>
#include <Alash_DS1302.h>
//Today is: 0:0:0 1.1.2000 W: 0
/*
DS1302 IC Atmel AVR ESP8266 ESP32
GND GND GND GND
VCC2 5V(или 3.3V) 3V3 3V3
SCLK (CLK) 2(цифровой пин) D4 0
I/O (DAT) 3(цифровой пин) D2 5
CE (RST) 4(цифровой пин) D2 4
*/
// Подключение пина данных DS1302 к цифровому пину Arduino
#define DS1302_CLK_PIN 2
#define DS1302_IO_PIN 3
#define DS1302_CE_PIN 4
// Создание объекта RTC
Alash_DS1302 rtc = Alash_DS1302(DS1302_CLK_PIN, DS1302_IO_PIN, DS1302_CE_PIN);
String de0=":";
String de1=".";
void setup(){
Serial.begin(9600); // Начало последовательной связи с скоростью 115200 бит/с
Wire.begin(); // Начало работы с I2C
Wire.setClock(100000); // Установка скорости передачи данных по I2C
rtc.begin();
// Установка даты/времени: 19:20:22 1/1/2024 Weekday:5
//rtc.setDateTime(22, 32, 22, 9, 1, 2026, 5); // Вывод сообщения об ошибке в последовательный порт
}
void loop() {
String name ="20:22:20 1.1.2026" ;// Объявление массива для хранения строкового значения дня недели и месяца
uint8_t hour; //hh
uint8_t min; // mm
uint8_t sec; // ss
uint8_t mday; // dd
uint8_t mon; // MM
uint16_t year; // YYYY
uint8_t wday; // W
// Чтение даты/времени
if (!rtc.getDateTime(&hour, &min, &sec, &mday, &mon, &year, &wday)) {
Serial.println("Error:0000");
}
else{
Serial.print("Today is: ");
Serial.print(hour);
Serial.print(de0);
Serial.print(min);
Serial.print(de0);
Serial.print(sec);
Serial.print(" ");
Serial.print(mday);
Serial.print(de1);
Serial.print(mon);
Serial.print(de1);
Serial.print(year);
Serial.print(" W: ");
Serial.println(wday);
}
delay(1000); // Задержка 1000 мс
}```
а батарейка в часах есть ?)))
а она точно заряд держит ?)))
что то я не знаю тогда причину)))
Бабос, можете библиотеку подсказать нормальную.
Может в ней причина?
у меня их чуть ли не 10ток, и каждый раз перебираю какую использовать, то одно, то другое не работает…
возможно iarduino_RTC.h то что нужно, но это не точно
Ну, видимо, так и надо, раз “работает как надо”! Забейте!
Китайцы в своих часах очень любят ds1302 использовать. Ввиду дешевизны, очевидно.) Только там писать то всего ничего. Сотня строк за глаза.)
#include <iarduino_RTC.h>
iarduino_RTC time(RTC_DS1302, 2, 3, 4);
void setup() {
delay(300);
Serial.begin(9600);
time.begin();
time.settime(10, 10, 10, 4, 10, 2026, 3); // 10 секунд, 10 минут, 10 часов, 4 октября, 2017 года, среда
}
void loop() {
if (millis() % 1000 == 0) {
Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
delay(1); // делаем небольшую задержку, чтобы не выводить время слишком часто
}
}
Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Плата:"Arduino Uno"
C:\Users\new\Desktop\AT0000\AT0000.ino: In function 'void setup()':
AT0000:7:9: error: 'class iarduino_RTC' has no member named 'begin'
time.begin();
^~~~~
exit status 1
'class iarduino_RTC' has no member named 'begin'
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
ну вот, уже начали целые лишние строки в место 1го символа пихать…
Я скопировал код поменял на Ваш. И вуаля. Ничего не работает, такая же ошибка.
Что за ошибка то?
это лишняя строчка! я же говорил вам что курс надо сначала пройти ?)))
а еще вы кажется обманщик!))) у меня компилируется даже с лишней строчкой!