FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Среда, 07.12.2016, 11:37
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 3123»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Суточный таймер. Как сделать? (Как реализовать суточный таймер для искуственного освещения?)
Суточный таймер. Как сделать?
AlexRyzh
Дата: Вторник, 27.09.2016, 08:49 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
На Arduino Nano делаю небольшую автоматику для контроля основных параметров микроклимата бройлерам. В этом устройстве запланировал реализовать и таймер включения и отключения освещения в нужное время. На первый взгляд казалось это просто, но в итоге не получается, и ничего придумать не могу. Может кто сталкивался, подскажите как правильно реализовать, чтоб работало как нужно.
Задача: Сделать 2 периода включения света.
Первый период это включение рано утром (например в 4:00 для увеличения светового дня) и выключение, когда уже светло (например в 9:00)
Второй период, включение в 17:00 и выключение в 2:00 (Время включения и отключения может меняться, в зависимости от возраста цыплят и времени года, эти диапазоны я меняю с пульта вручную, по ситуации, необходимости...)
Для реализации такого таймера, я считываю с часов время одним числом. Т.е если время 9:45, я считываю как число 945. Задаю переменную для включения утром и переменную для отключения утром. И еещ переменные для включения вечером и выключения ночью.
Получается Вкл в 4:00 Выкл 9:00
_________  Вкл в 17:00 Выкл 2:00
Хотел реализовать через блоки сравнения, но т.к происходит обнуление текущего времени при переходе на новые сутки сравнение будет работать не правильно
От и не пойму как реализовать такой простой таймер sad

Можно было бы сделать через сравнение текущего времени, например, если текущее время равно установленному для включения, то включить на 5 (или сколько нужно) часов. Но в таком случае, если произойдет перезагрузка конроллера (что не исключено), То Ардуино не будет знать, что сейчас время включенного освещения, и тем более не будет знать сколько этого времени осталось. Т.е. такой подход совсем некорректный
 
rw6cm Дата: Вторник, 27.09.2016, 09:09 | Сообщение # 2
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Вообще то при переходе через 00:00 время надо разбивать 17:00 - 23:59,  00:00 - 2:00.
При этом. от неприятностей использовать условие     17:00 < вкл < 23:59 и 00:00 < вкл < 2:00/


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
confiden Дата: Вторник, 27.09.2016, 09:16 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 0
Статус: Offline
покажите то что вы уже сделали. И посмотрим что надо изменить тогда уже
 
Agafon Дата: Вторник, 27.09.2016, 09:18 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 18
Награды: 0
Репутация: 0
Статус: Offline
А я для этой цели использовал датчик света, он изначально стоит чтоб вечером или ночью по участку впотьмах не лазить. Собственно он и отключает внешний свет, а заодно и внутренний.
Делал на скорою руку, не успевали с переселением в новый курятник. Сейчас переделываю smile


Сообщение отредактировал Agafon - Вторник, 27.09.2016, 09:19
 
confiden Дата: Вторник, 27.09.2016, 09:19 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 0
Статус: Offline
Тут довольно много ньюансов и нужно более менее представлять вашу схему. Например датчик освещенности для отключения освещения. Это аналоговое устройство или двухпозиционное. Чувствительность для отключение програмная или это какой то резистор на плате датчика. Индикация текущего времени . Способ задания таймера. Количество уставок. 
Тут просто необходимо все понимать
 
Bogomil Дата: Вторник, 27.09.2016, 09:49 | Сообщение # 6
Сержант
Группа: Проверенные
Сообщений: 37
Награды: 1
Репутация: 1
Статус: Offline

Почему бы не использовать будильник, установите время включения и выключения
Прикрепления: 6147470.jpg(177Kb)


Сообщение отредактировал Bogomil - Вторник, 27.09.2016, 09:49
 
AlexRyzh Дата: Вторник, 27.09.2016, 10:20 | Сообщение # 7
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата rw6cm ()
покажите то что вы уже сделали. И посмотрим что надо изменить тогда уже
ВОт как я делал, но видимо придется делать дополнительное условие для перехода на новые сутки
Прикрепления: Timer.flp(176Kb)
 
slavas Дата: Вторник, 27.09.2016, 10:45 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 267
Награды: 6
Репутация: 5
Статус: Offline
Попробуйте мой блок, настоятельно рекомендую использовать DS3231. Она полностью совместима с 1307, а точность хода в разы лучше.
 
rw6cm Дата: Вторник, 27.09.2016, 10:47 | Сообщение # 9
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата AlexRyzh ()
видимо придется делать дополнительное условие для перехода на новые сутки
При планировании на каждые сутки, команды должны рассматриваться с 00:00 до 23:59,
и путаницы не будет.


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
eugeneb Дата: Вторник, 27.09.2016, 10:57 | Сообщение # 10
Лейтенант
Группа: Проверенные
Сообщений: 90
Награды: 3
Репутация: 1
Статус: Offline
в блоке I1*I2 я бы умножал на 60. Тогда ВремяСуток получится
в минутах от полуночи. Уже удобнее.
 
rw6cm Дата: Вторник, 27.09.2016, 11:04 | Сообщение # 11
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата eugeneb ()
в блоке I1*I2 я бы умножал на 60. Тогда ВремяСуток получитсяв минутах от полуночи. Уже удобнее.
Если нужно часто менять установки, удобней *100,
время вводится реальное, а *60 придется в уме постоянно пересчитывать для ввода.


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
eugeneb Дата: Вторник, 27.09.2016, 11:19 | Сообщение # 12
Лейтенант
Группа: Проверенные
Сообщений: 90
Награды: 3
Репутация: 1
Статус: Offline
программе удобнее непрерывная переменная, а для человека можно пересчитывать самой программой.
А впрочем, здесь это - по барабану. Просто некрасиво, когда у переменной провалы.


Сообщение отредактировал eugeneb - Вторник, 27.09.2016, 11:27
 
Vitez Дата: Вторник, 27.09.2016, 11:31 | Сообщение # 13
Лейтенант
Группа: Проверенные
Сообщений: 104
Награды: 4
Репутация: 0
Статус: Offline
Я бы сделал так.
Прикрепления: 1921785.png(2Kb)
 
slavas Дата: Вторник, 27.09.2016, 11:46 | Сообщение # 14
Подполковник
Группа: Проверенные
Сообщений: 267
Награды: 6
Репутация: 5
Статус: Offline
Vitez, а Вы пробовали так делать? Этот блок срабатывает по совпадению, а если позже времени включения контроллер перезагрузится или был выключен событие будет пропущено. Это просто будильник.
 
AlexRyzh Дата: Вторник, 27.09.2016, 12:28 | Сообщение # 15
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата slavas ()
При планировании на каждые сутки, команды должны рассматриваться с 00:00 до 23:59,и путаницы не будет.
Оно то так. Но если нужно включить в 17:00, а выключить в 1:00 или 2:00, или 3:00, то вот здесь и начинается проблема.
Вообще я решил обойти эту проблему, выключением света не в 1:00 не в 2:00, а в 23:59. Но утром включать раньше, чтоб набрать нужные часы освещения.

Добавлено (27.09.2016, 12:28)
---------------------------------------------

Цитата AlexRyzh ()
Попробуйте мой блок, настоятельно рекомендую использовать DS3231. Она полностью совместима с 1307, а точность хода в разы лучше.
Спасибо. Пока не понимаю как он работает, по свободке разберусь, может реально то что нужно
 
Форум » Основной » Спросить у знатоков » Суточный таймер. Как сделать? (Как реализовать суточный таймер для искуственного освещения?)
Страница 1 из 3123»
Поиск:

FLProg © 2016
Яндекс.Метрика