не работает как надо
Ваша ошибка.sergii2012 писал(а): ↑14.08.2019{, 09:44}начинает прибавлять в интервал когда не должно по условию. моя это ошибка или работа логики?!
Если честно, почти ничо не понял.sergii2012 писал(а): ↑14.08.2019{, 20:38}как должно быть: в 7 часов начинается рассвет в течении часа длится от 254 до 0(мосфет работает от "-")
в 17 часов начинается закат в течении часа от 0 до 254 (остается 1 для подсветки)
при сбое питания в заданный интервал должно установиться нужное значение с 7 до 17 - 0. после 17 до 7 - 254.
в данном куске независимо от времени при резете начинается отсчет от 0.
наоборот потому как мосфет работает по низкому уровнюDryundel писал(а): ↑14.08.2019{, 21:28}Если честно, почти ничо не понял.sergii2012 писал(а): ↑14.08.2019{, 20:38}как должно быть: в 7 часов начинается рассвет в течении часа длится от 254 до 0(мосфет работает от "-")
в 17 часов начинается закат в течении часа от 0 до 254 (остается 1 для подсветки)
при сбое питания в заданный интервал должно установиться нужное значение с 7 до 17 - 0. после 17 до 7 - 254.
в данном куске независимо от времени при резете начинается отсчет от 0.
Из того что понял:
В 7 часов ШИМ должен увеличиваться в течении часа и оставаться на максимуме до 17 часов.
В 17 часов ШИМ должен уменьшаться в течении часа и оставаться на максимуме до 7 часов.
Так?
Код: Выделить всё
Скетч использует 3828 байт (11%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 250 байт (12%) динамической памяти,
оставляя 1798 байт для локальных переменных. Максимум: 2048 байт.
Логика и счетчик это конечно хорошо. Однако представим что питание контроллера пропало на минуту - электричество вырубили. И что тогда будет с закатом или рассветом? Счетчик начнет сначала или вообще не заработает.
Именно поэтому я и предложил нелинейное масштабирование. В какой бы момент устройсто ни было включено, если есть опорное время, выставиться нужный режим работы.SSSergeich писал(а): ↑17.08.2019{, 01:15}Похоже надо в железе собирать и тестировать, а то чот я уже запутался... )))
Да, но только если отключение не произойдет в середине рассвета или заката.
IMHO, не очень сложно.. не сложно добавить еще 4 переменные НР КР НЗ КЗ (начало рассвета и т.д... а если уж совсем припрет, то и секунды) и делать проверку включения, если попадаешь в тот диапазон, что время включения превышает НР или НЗ, то пересчет генератора произвести с момента включения...Dryundel писал(а): ↑17.08.2019{, 09:16}Да, но только если отключение не произойдет в середине рассвета или заката.
Отправлено спустя 4 минуты 6 секунд:
И с такой логикой сложно перестроить время рассвета и заката. Если к примеру рассвет длится не час а полтора (зимой) или полчаса (летом). Придется пересчитывать генератор со счетчиком.
Я не про это писал, а смотрел еще чуть дальше. Есть такое понятие как гражданские сумерки. Ну кроме них еще есть навигационные и астрономические но они в данном случае менее интересны. Для любой географической точки можно посмотреть на онлайн калькуляторе их время на 22 июня и 22 декабря. Так вот если добавить еще два блока масштабирования с опорой на время начала и конца гражданских сумерек в эти даты, тогда и построится полный цикл реальных рассвета и заката.SSSergeich писал(а): ↑19.08.2019{, 21:17}IMHO, не очень сложно.. не сложно добавить еще 4 переменные НР КР НЗ КЗ (начало рассвета и т.д... а если уж совсем припрет, то и секунды)...
А какая разница, куда добавлять эти данные? Если это уже переменные?)