Не смог построить логику с часами реального времени
- Войдите на сайт для отправки комментариев
Здравствуйте помогите пожалуйста!!!
не смог составить логику реального времени(RTC_DS1307).
Мне нужна чтобы в 8:00 пин 13 был HIGH, 8:20 пин 14 HIGH;
и в 23:00 пин 13 был LOW, 23:20 пин 14 был LOW
iarduino_RTC watch(RTC_DS1307);
LiquidCrystal_I2C lcd(0x27,20,4);
void setup() {
Serial.begin(9600);
watch.begin();
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
//watch.settime(40,59,22,16,03,21,2); // сек, мин, час, число , месяц, год, день недели
}
void loop() {
String H = watch.gettime("H");
String M = watch.gettime("i");
Serial.println(watch.gettime("H:i"));
if ((H>="08") and (H<"23"))
{
Serial.println("Первая лампа включина ON");
digitalWrite(14, HIGH);
}
if ((H>="08") and (H<"23"))
{
Serial.println("Вторая лампа включина ON");
digitalWrite(13, HIGH);
}
}
Во первых вставьте программу по правилам.
Во вторых как Вы себе представляете сравнение текстовых строк? Особенно когда больше или равно?
Преобразуйте в числа и их сравнивайте stoi() Вам в помощь.
Да, а где #include???
Эти вещи делаются через unix-time.
Переменная seconds // Содержит секунды от 0 до 59.
Переменная minutes// Содержит минуты от 0 до 59.
Переменная hours // Содержит часы от 1 до 12.
Переменная Hours // Содержит часы от 0 до 23.
Переменная midday // Содержит полдень 0 или 1 (0-am, 1-pm).
Переменная day // Содержит день месяца от 1 до 31.
Переменная weekday // Содержит день недели от 0 до 6 (0-воскресенье, 6-суббота).
Переменная month // Содержит месяц от 1 до 12.
Переменная year // Содержит год от 0 до 99.
Переменная Unix // Содержит секунды прошедшие с начала эпохи Unix, от 0 до 4'294'967'295.
Николай, вот пример. Доделаете под свои задачи.
delay(24*60*60*1000UL) не в трендах?
А, сорри. Я этот пост с постом про перезагрузка каждые 24 часа спутал ))
Вариант
Вариант
Минусователь,)) расскажи в чем я неправ.
Минусователь,)) расскажи в чем я неправ.
отключаться пины никогда не будут?
new_sate это new_state? - полиглот:)
Минусователь,)) расскажи в чем я неправ.
отключаться пины никогда не будут?
new_sate это new_state? - полиглот:)
Как только выражение ( totalMinut >= 480 && totalMinut < 1380) станет ложью, так и отключится.
Шалун.)
Pyotr, a вы какой код обсуждаете? Не вижу у fogary переменной Totalminut
Вообще помоему у fogary в #6 все нормально, насчет отключения это я сам прогнал
Свой.) И я бы добавил -1 за magic numbers.)
Канешн свой) ТС_у для подумать чуть.
По #6. Девайс включили или он перегрузился в 9:00. Что будет?
Свой.) И я бы добавил -1 за magic numbers.)
это Петру? Там скорее нужно говорить о сознательном запутывании ТС:) Одна строчка с миллис ("для примера") чего стоит ;)
Свой.) И я бы добавил -1 за magic numbers.)
Я посчитал минуты за ТС. А минусы я люблю, гловное шоб поболе)))
Это что. Я на Яндекс.дзене как то добавил комментарий... и получил -700.(
Свой.) И я бы добавил -1 за magic numbers.)
А никто и не обещал легкой жизни начинающему ардуинщику))
Это что. Я на Яндекс.дзене как то добавил комментарий... и получил -700.(
Любопытно посмотреть.
И я о том же.) Ну вот нафига высчитывать за компилятор? Ну хотя бы пиши 8 * 60 тогда.)
Любопытно посмотреть.
Нет. Обстановка сильно накалилась.( Сам был не рад. Да и давно это было, года 2 как.
Такого количества идиотов, как в Дзене - еще поискать. Домохозяйки и пенсинерки
Я лично зарёкся. Правда попадались и адекватные (некоторые даже благодарили), но их меньшинство.(
По #6. Девайс включили или он перегрузился в 9:00. Что будет?
Остальная часть без изменений.
По #6. Девайс включили или он перегрузился в 9:00. Что будет?
Остальная часть без изменений.
Ну если для меня))... то я бы убрал строки 6 и 7, и ради чтения двух регистров из RTC не стал бы тянуть библиотеку (говорят не самая лучшая).
Ну и если в будущем захочется сделать установку времени, скажем в 7:59 подвести часы на 2 минуты вперед, то опять все порушится. В лупе условия нужно писать как в сетапе сейчас.
А если в будущем нужно включить в 23:00, а выключить в 8? А если ещё один выход добавить?
Обычно все параметры задаются вне, а в код вообще не заглядываешь.