Диммер
- Войдите на сайт для отправки комментариев
Пт, 23/04/2021 - 22:57
Добрый вечер. Нужна помощь в написании кода. Программированием на плюсах занимался лет 8 назад.
Может кто поможет начать программу. У меня ардуино уно, к ней подключен AC Dimmer на порты: zeroPin-2 dinPin-3, также к нему подлючено релереального времени DS3231 (оно уже запраграммировано на реальное время, библиотека <DS3231.h>).
Смысл программы: в определенное время (например с 1:00 до 2:00) диммер должен регулировать мощность от 10 до 20 процентов поднимая один процент каждые 6 минут.
Я думал писать через swith и case, но немного не знаю как присвоить переменной время с реле реального времени, чтобы потом это описать через if в case.
За ранее спасибо!!!
"За ранее" спасибо!!!
Модуль реле ds3231, разве он называется не так?
За ранее спасибо!!!
А за "позднее" что будет?
Ничего)))) просто описался, пробел поставил)))
Модуль реле ds3231, разве он называется не так?
Да как хош, так и называй! Как гриццо: "Для Вас - везде!" ;))
Модуль реле ds3231, разве он называется не так?
Так я у Вас спросил, чё за зверь такой. Хоть бы ссылку дали, что ли.
...Я думал писать через swith и case, но немного не знаю как присвоить переменной время с реле реального времени, чтобы потом это описать через if в case.
Ищи преобразование unix time. Оно спасёт.
Модуль реле ds3231, разве он называется не так?
Так я у Вас спросил, чё за зверь такой. Хоть бы ссылку дали, что ли.
166,40 руб. -3% | Модуль памяти DS3231 AT24C32 IIC Precision RTC в режиме реального времени для Arduino, 1 шт., новый оригинальный
Так там же нет никакого реле? Это просто часы с дополнительной памятью. Реле-то здесь каким боком?
Так там же нет никакого реле? Это просто часы с дополнительной памятью. Реле-то здесь каким боком?
оно так называется)))
Denisblr,
Все, что нужно для приручения DS3231:
https://github.com/adafruit/RTClib
Смотри класс RTC_DS3231
оно так называется)))
Так там же нет никакого реле? Это просто часы с дополнительной памятью. Реле-то здесь каким боком?
оно так называется)))
кем? не дошло, что над этим и глумимся?
Denisblr,
Все, что нужно для приручения DS3231:
https://github.com/adafruit/RTClib
Смотри класс RTC_DS3231
не порть пятницу!!!
не порть пятницу!!!
Сорян за ранее)))
оно уже запраграммировано на реальное время, библиотека <DS3231.h>).
Откуда оно взяло реальное время? Ардуино само в интернет не умеет, GPS не озвучен.. Руками вбиваете?
Можно и не руками, варианты есть и без GPS.
Добрый вечер. Нужна помощь в написании кода. Программированием на плюсах занимался лет 8 назад.
Может кто поможет начать программу. У меня ардуино уно, к ней подключен AC Dimmer на порты: zeroPin-2 dinPin-3, также к нему подлючено релереального времени DS3231 (оно уже запраграммировано на реальное время, библиотека <DS3231.h>).
Смысл программы: в определенное время (например с 1:00 до 2:00) диммер должен регулировать мощность от 10 до 20 процентов поднимая один процент каждые 6 минут.
Я думал писать через swith и case, но немного не знаю как присвоить переменной время с реле реального времени, чтобы потом это описать через if в case.
За ранее спасибо!!!
Так а какие проблемы?
Начните с регулировки яркости ламы или с включения нагрузки в определенное время, потом объедините обе части.
Так там же нет никакого реле? Это просто часы с дополнительной памятью. Реле-то здесь каким боком?
оно так называется)))
Добрый вечер. Нужна помощь в написании кода. Программированием на плюсах занимался лет 8 назад.
Может кто поможет начать программу. У меня ардуино уно, к ней подключен AC Dimmer на порты: zeroPin-2 dinPin-3, также к нему подлючено релереального времени DS3231 (оно уже запраграммировано на реальное время, библиотека <DS3231.h>).
Смысл программы: в определенное время (например с 1:00 до 2:00) диммер должен регулировать мощность от 10 до 20 процентов поднимая один процент каждые 6 минут.
Я думал писать через swith и case, но немного не знаю как присвоить переменной время с реле реального времени, чтобы потом это описать через if в case.
За ранее спасибо!!!
Так а какие проблемы?
Начните с регулировки яркости ламы или с включения нагрузки в определенное время, потом объедините обе части.
приведите пожалуйста пример кода включения в определённое время
1. Переводите часы, минуты, секунды необходимого времени срабатывания в секунды.
2. Раз в секунду считываете из часов реального времени текущее время.
3. Переводите текущее время в секунды.
4. Сравниваете текущее время в секундах и с временем уставки в секундах. Если больше или равно то выполняем что хотели.
Помним о количестве секунд в сутках и правильно выбираем размер переменных, что бы не было переполнения.
Можно и не руками, варианты есть и без GPS.
Как без интернета, GPS и не руками?
_
приведите пожалуйста пример кода включения в определённое время
???
Дата и время компиляции:
Ну и нужно проверку сделать, что именно это время уже загрузили в RTC, чтобы при каждом старте не устанавливалось.
В часах установлена батарейка, время каждый раз я неустанавливаю. Примером скетча с библиотеки DS3231 я установил время и оно не обнуляется при отключении питания.
В часах установлена батарейка, время каждый раз я неустанавливаю. Примером скетча с библиотеки DS3231 я установил время и оно не обнуляется при отключении питания.
Ну хотя-бы обрывок программы, а лучше всю. С указанием проблемы. Иначе мы так и будем над Вами глумится.
Я почти все сделал. Программа будет чуть позже, когда я ее полностью допилю до идеала
оно так называется)))
Нет, оно так не называется.
когда я ее полностью допилю до идеала
Наши советы Вам будут не нужны. Зачем сюда вылезли? Засветиться?
Оценил -> Денис.
У меня не получается сделать так, чтобы в 19:00 он включил 1% и в течении часа постепенно поднимал его до 100. Он постоянно выходит из case и начинает выполнять все заново, а цикл FOR не проходит.
Serial.print очень много, для того чтобы я через мониторинг порта мог отслеживать какие он значения выдаёт.
только что попробывал выкинуть в отдельную функцию, но все равно одно и тоже
P.S. этот код собран из нескольких, когда он будет доделан, половина будет убрана
Не надо case. Всё делается через флаги. Сначала проверяется время и если пора поднимать - выставляется флаг пора поднимать. По этому флагу время больше не проверяем, а в лупе поднимаем потихоньку мощность на процент в 6 минут по аналогии с блиньк без делея (есть тема). Как подняли до 20% флаг снимаем. Если потом надо что то делать - выставляем следующий флаг. И так далее.
Вы что издеваетесь? Вставьте код нормально, почему у Вас символы заменены?
Сорри, исправил
А это чего за херня? Типа это работает????
Не надо case. Всё делается через флаги. Сначала проверяется время и если пора поднимать - выставляется флаг пора поднимать. По этому флагу время больше не проверяем, а в лупе поднимаем потихоньку мощность на процент в 6 минут по аналогии с блиньк без делея (есть тема). Как подняли до 20% флаг снимаем. Если потом надо что то делать - выставляем следующий флаг. И так далее.
а не подскажите как это реализовать?
А это чего за херня? Типа это работает????
Представьте, да.
Представьте, да.
Денис, а Вы пизди-те. Именно это работать не может. Скорее всего Вы пи... и в остальном. Дениска - давай не прыскай!
А что я непонятного написал? Флаг - просто булева переменная - поднят true, опущен - false.
http://arduino.ru/Reference/BooleanVariables
Наверху над темой есть строчка поиска. Наберите там слово флаг и посмотрите как народ их использует. Вот примеры оттуда прямо только что вытащенные
http://arduino.ru/forum/proekty/arduino-knopka-s-samovozratom-rele
А здесь добрый человек показывает как правильно в лупе события вызывать через интервалы времени, которые можно через if с поднятым флагом использовать для поднятия мощности.
http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/zamenit-delay-...
я не п...., я написал что именно у меня не работает. может и for неправильно написан. у меня не работает цикл, но в case он заходит.
Ну так попробуйте после строки с for точку с запятой убрать.
Ну так попробуйте после строки с for точку с запятой убрать.
Спасибо, пошёл выполняться цикл
Чтобы такого не случалось, лучше писать в стиле Кернигена и Ритчи:
Напомнило последнюю фразу из анекдота:
- Лазарь Абрамович, Вы как предпочитаете рыбу фиш кушать: из вилки, или из ложки?
- Да мне всё равно, Хана Иосифовна, мне лишь бы "да".
)))) Ну а как бы вы абстрактный код представили? Я вот так решил, суть как скобки расположить.
Кому интересно, как пока что получилось, и тем кто не верил в работоспособность https://photos.app.goo.gl/bvJXrQq7Qt1x1f956
Осталось только немного допилить, чтобы программа когда зашла в Case, там же и осталась, и там же проверяла время каждую минуту, а не с начала начинала.
Не судите строго, первый опыт с Ардуино.
Осталось только немного допилить, чтобы программа когда зашла в Case, там же и осталась, и там же проверяла время каждую минуту, а не с начала начинала.
Успехов!