Как получить код для ответа на определенное время от DS3231 RTC?
Я пытаюсь сделать программу, которая работает, когда она доходит до пяти часов дня, так что 17:00:00.
Я использую эту библиотеку DS3231, но не могу понять, как заставить ее отправить "Woooopp" на последовательный монитор в указанное время.
На DS3231 штифт с надписью SCL подключен к A5 на Arduino, а штифт с надписью SDA подключен к A4 на Arduino.
SCL -> A5 ПДД -> А4 >
Мой код:
#include <DS3231.h>
// Инициализация DS3231 с помощью аппаратного интерфейса
DS3231 rtc (SDA, SCL);
void setup() {
// Настройка последовательного подключения
Serial.begin(115200);
// Раскомментируйте следующую строку, если вы используете Arduino Leonardo
//while (!Serial) {}
// Инициализация объекта rtc
rtc.begin();
// Следующие строки могут быть раскомментированы для установки даты и времени
// rtc.setDOW(SATURDAY); // Set Day-of-Week to SUNDAY
// rtc.setTime(19, 48, 50); // Set the time to 12:00:00 (24hr format)
// rtc.setDate(3, 6, 2017); // Set the date to January 1st, 2014
}
void loop() {
// Отправить День недели
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Дата отправки
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Время отправки
Serial.println(rtc.getTimeStr());
// Подождите одну секунду, прежде чем повторить :)
if (rtc.getTimeStr() == "19:58:12") {
Serial.println("Woooopp");
}
delay (1000);
}
Никаких ошибок не выбрасывается, однако код просто не работает.
Любая помощь будет очень признательна!
@Wisaacj, 👍1
Обсуждение1 ответ
▲ -1
Как получить код для ответа в определенное время от DS3231 RTC?
проще всего настроить сигнализацию в rtc.
в качестве альтернативы продолжайте читать rtc до тех пор, пока не пройдет желаемое время. не очень эффективно.
,
@dannyf
Смотрите также:
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
Какую библиотеку RTC вы используете ? Кажется, вот это: http://www.rinkydinkelectronics.com/library.php?id=73, @Jot
Да, я использовал его. Извините, я забыл связать его, я буду редактировать вопрос сейчас., @Wisaacj
Попробуйте использовать более короткую задержку. Все остальное также требует времени для запуска, так что вы проверяете чуть меньше одного раза в секунду. Так что определенные секунды будут пропущены., @Gerben
Спасибо за ваш ответ, я попробовал это сделать, и это сработало вместе со мной, также заранее объявив время в переменной, а затем сравнив его. Хорошего вам дня!, @Wisaacj
Когда вы смотрите на последовательный вывод, совпадает ли строка, которую вы получаете от getTimeStr, с тем, что вы ожидаете?, @Delta_G
Вы можете использовать встроенную функцию сигнализации DS3231 RTC для включения Arduino Uno., @Mikael Patel
@Delta_G Мне удалось выяснить, что проблема заключается в том, что я не объявляю переменную для хранения текущего времени. До этого я непосредственно сравнивал выходные данные функции с желаемым временем. Но все же спасибо вам за помощь!, @Wisaacj
@MikaelPatel Спасибо, я постараюсь использовать это также, чтобы увидеть, будет ли это работать более эффективно, чем метод, который я нашел в конце концов., @Wisaacj