Про теплицы и таймеры
Добавлено: 24 янв 2018, 22:06
Доброго всем времени суток!
Пытаюсь создать управление теплицой, которое заключается в управлении 5-ю каналами: три канала освещения, один для вентиляции, один для включения насоса полива. Теперь по порядку:
из железа: Arduino Nano, часики DS3231, LCD 1602 I2C, DHT22, аналоговый датчик влажности, 5 кнопок, ну и по мелочи LED'ы всякие.
Суть программы - двухуровневое меню:
М1 индикация времени\даты
М2 показания датчиков
М3 показания состояния каналов освещения
М3.1 выбор режима работы красного света: вкл\выкл\по таймеру
М3.2 выбор режима работы синего света...
М3.3 выбор режима работы белого света...
М4 показания каналов вентилятора и насоса
М4.1 выбор режима работы вентилятора вкл\выкл\по температуре
М4.2 выбор режима работы насоса вкл\выкл\по влажности почвы
С реализацией меню вопросов не возникло: перемещаемся клавишами UP/DOWN (по пунктам меню) LEFT/RIGHT (вход/выход в меню). у каждого подпункта есть три значения: выкл/вкл/по заданию(по таймеру). что бы изменить значение подпункта необходимо нажать кнопку SET: с помощью ТТ-триггера блокируется возможность листать пункты меню кнопками UP и DOWN, но зато мы можем выбирать значение значение пункта. при повторном нажатии кнопки SET триггер меняет выход на 0, и мы опять можем перелистывать меню. с этим вопросов не возникло.
А вот дальше сложнее: 3-е значение каждого подпункта выводит на экран значение уставок включения выходов (либо таймеры вкл/выкл). эти значения хранятся в переменых. например для включения таймера красного канала есть 2 переменных: значения часов включения и значение минут включения, и для таймера отключения еще 2 переменные: значение часов отключения и минут отключения. Итого 4 переменные на один канал. для насоса и вентилятора, по одной переменной, на включение.
Логика работы следующая: листаем основное меню до пункта 3, далее выбираем пункт 3.1. после нажатия на кнопку SET значение. выбираем 3-е значение с таймерами, и... вот дальше ступор! надо бы изменить значение переменых, но при повторном нажатии SET подпункт фиксируется и мы опять листаем меню. Вопрос: как можно зафиксировать значение подпункта и получить доступ к изменению переменных?
помогите люди добрые, уже неделю бьюсь, все бестолку
Написал сложно, но если посмотреть проект, то все становиться понятнее
Пытаюсь создать управление теплицой, которое заключается в управлении 5-ю каналами: три канала освещения, один для вентиляции, один для включения насоса полива. Теперь по порядку:
из железа: Arduino Nano, часики DS3231, LCD 1602 I2C, DHT22, аналоговый датчик влажности, 5 кнопок, ну и по мелочи LED'ы всякие.
Суть программы - двухуровневое меню:
М1 индикация времени\даты
М2 показания датчиков
М3 показания состояния каналов освещения
М3.1 выбор режима работы красного света: вкл\выкл\по таймеру
М3.2 выбор режима работы синего света...
М3.3 выбор режима работы белого света...
М4 показания каналов вентилятора и насоса
М4.1 выбор режима работы вентилятора вкл\выкл\по температуре
М4.2 выбор режима работы насоса вкл\выкл\по влажности почвы
С реализацией меню вопросов не возникло: перемещаемся клавишами UP/DOWN (по пунктам меню) LEFT/RIGHT (вход/выход в меню). у каждого подпункта есть три значения: выкл/вкл/по заданию(по таймеру). что бы изменить значение подпункта необходимо нажать кнопку SET: с помощью ТТ-триггера блокируется возможность листать пункты меню кнопками UP и DOWN, но зато мы можем выбирать значение значение пункта. при повторном нажатии кнопки SET триггер меняет выход на 0, и мы опять можем перелистывать меню. с этим вопросов не возникло.
А вот дальше сложнее: 3-е значение каждого подпункта выводит на экран значение уставок включения выходов (либо таймеры вкл/выкл). эти значения хранятся в переменых. например для включения таймера красного канала есть 2 переменных: значения часов включения и значение минут включения, и для таймера отключения еще 2 переменные: значение часов отключения и минут отключения. Итого 4 переменные на один канал. для насоса и вентилятора, по одной переменной, на включение.
Логика работы следующая: листаем основное меню до пункта 3, далее выбираем пункт 3.1. после нажатия на кнопку SET значение. выбираем 3-е значение с таймерами, и... вот дальше ступор! надо бы изменить значение переменых, но при повторном нажатии SET подпункт фиксируется и мы опять листаем меню. Вопрос: как можно зафиксировать значение подпункта и получить доступ к изменению переменных?
помогите люди добрые, уже неделю бьюсь, все бестолку
Написал сложно, но если посмотреть проект, то все становиться понятнее