здравствуйте! у меня как то не так выводится время от модуля ds1302 (модуль шел в наборе), но я совсем в нем не разбираюсь (время выводится такое: 21:15:00.385 → 000:00:00 00.00.2000 – 00:00:00
(не понимаю что за стрелочка, но до нее - настоящее время, а после нулевая дата))
DS1302 rtc(10, 9, 8); //инициализация платы DS1302
Time t;
void setup()
{
// подключаемся к порту
Serial.begin(9600);
//инициализируем пины питания
//Установим время, и отключить защиту от записи
rtc.halt(false);
rtc.writeProtect(false);
// Если у вас в DS1302 уже сохранено установленное время, то нужно за комментировать
rtc.setDOW(THURSDAY); // Устанавливаем день недели FRIDAY
rtc.setTime(21, 10, 10); // Устанавливаем время 20:30:10 (24часа формат времени)
rtc.setDate(25, 1, 2024); // Устанавливаем число месяц и год
}
void loop()
{
t = rtc.getTime();
// Выводим день недели
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Выводим дату
Serial.print(rtc.getDateStr());
Serial.print(" – ");
// Выводим время
Serial.println(rtc.getTimeStr());
if(t.sec==30)
{
Serial.println(“Прошло 30 секунд”);
}
// Ставим задержку в 1 секунду
delay (1000);
}```
Скетч приведён не весь. Потеряли строчку в которой подключается библиотека для работы с этим модулем. Вот к этой библиотеке скорее всего есть примеры, как ей пользоваться. Смотрели?
Скорее всего раз у неё есть halt(), то есть и какой-нибудь метод запуска, которого в скетче не хватает.
простите пожалуйста, вы правы, я не скопировал строку с включением библиотеки в скетч
#include "DS1302.h"
DS1302 rtc(10, 9, 8); //инициализация платы DS1302
Time t;
void setup()
{
// подключаемся к порту
Serial.begin(9600);
//инициализируем пины питания
//Установим время, и отключить защиту от записи
rtc.halt(false);
rtc.writeProtect(false);
// Если у вас в DS1302 уже сохранено установленное время, то нужно за комментировать
rtc.setDOW(THURSDAY); // Устанавливаем день недели FRIDAY
rtc.setTime(21, 10, 10); // Устанавливаем время 20:30:10 (24часа формат времени)
rtc.setDate(25, 1, 2024); // Устанавливаем число месяц и год
}
void loop()
{
t = rtc.getTime();
// Выводим день недели
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Выводим дату
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Выводим время
Serial.println(rtc.getTimeStr());
if(t.sec==30)
{
Serial.println("Прошло 30 секунд");
}
// Ставим задержку в 1 секунду
delay (1000);
}