Описание проекта
Контроллер управления поливом является основной частью системы автоматического полива. Функция контроллера автоматического полива заключается в определении периодичности, начала времени полива и продолжительности полива индивидуально для каждого электромагнитного клапана. Контроллер управления поливом требует индивидуальных настроек длительности и периодичности для разных типов растений.
Контроллер автоматического полива, описанный в данной статье, был собран на основе микроконтроллера ATMEGA16. Программная оболочка написана в CodeVisionAVR на языке Си. Все элементы собраны на плате 15x10 см. Печатная плата спроектирована в программе Sprint Layout. Предполагается установить данный контроллер в коробку IP65 с дверцей, для быстрого доступа. Данный контроллер работает с электромагнитными клапанами 24 В постоянного тока, но в случае необходимости, может быть модернизирован для использования электромагнитных клапанов 24 В переменного тока. Контроллер тестировался на протяжении трех месяцев, и в течение указанного срока, в том числе и на момент написания настоящей статьи работал и продолжает работать стабильно.
Технические характеристики и возможности устройства
- Входное напряжение: 24 В постоянного тока
- 8 выходных каналов: ~23 В постоянного тока
- Сохранение пользовательских настроек в EEPROM микроконтроллера
- Поддержка хода часов при потере питания
- Три режима работы: «Автоматический режим», «Ручной запуск» и «Отключен»
- Три настраиваемые программы, которые можно назначить к каждому каналу индивидуально
- Типы программ: «Ежедневный полив», «Полив каждый второй день», «Полив каждый третий день», «Полив по заданным дням недели»
- Три таймера в активный день
- Минимальная длительность активности канала: 1 мин
- Максимальная длительность активности канала: 23 часа 59 мин
- Глобальное изменение длительности полива в %
- Язык интерфейса меню: Английский
Принципиальная схема контроллера
Ниже указана дополнительная информация о компонентах, указанных в схеме:
- В устройстве используется микроконтроллер ATMEGA16 (IC1)
- Для индикации информации и настройки контроллера используется символьный ЖК-дисплей 16х2 (LCD1)
- В устройстве присутствуют четыре тактовые кнопки (B1-B4): "Ввод / Меню", "Отмена / Назад", "Влево / -", "Вправо/ +"
- В устройстве используются часы реального времени DS1307 (IC6). Микроконтроллер опрашивает DS1307, для сравнения текущего времени и даты с ранее сохраненными настройками программ и таймеров, для своевременного включения/ отключения каналов
- Индикацию активных каналов отражают светодиоды (LED1-LED8)
- Включение каналов по сигналу микроконтроллера обеспечивают четыре составных транзистора Дарлингтона ULN2803 (IC2, IC3, IC4, IC5). Каждый канал (электромагнитный клапан) подключается через четыре запараллеленных контакта, тем самым увеличивая предел возможной пропускной силы тока
- В устройстве используется готовый модуль для понижения напряжения от 24 В до 5 В (VR1)
Ниже приведена схема контроллера:
Печатная плата
- Плата спроектирована в программе Sprint Layout
- Размер платы: 10х15 см
- Тип: односторонняя печатная плата
- В архиве вложена печатная плата в формате *.pdf и *.lay
Рисунок планы указан ниже:
Инструкция к пользованию
По ссылке указанной ниже можно ознакомиться с картой меню контроллера:
Ниже указаны описания всех категорий меню и их перевод на русский язык:
Дежурный экран контроллера отображает текущие дату и время в первой строке, а также режим работы во второй строке.
Главное меню
При нажатии на кнопку "Ввод / Меню" с позиции дежурного экрана, открывается главное меню контроллера, при использовании кнопок навигации "Влево / -", "Вправо/ +", происходит перелистывание пунктов данного меню:
- Mode Select - Выбор режима
- Auto Settings - Настройки автоматического режима
- Date/Time Settings - Настройка даты и времени
Подменю Mode Select - Выбор режима
При выборе пункта меню "Mode Select", происходит вход в подменю, при использовании кнопок навигации можно обнаружить следующие режимы:
- Off - Выключен
- Auto - Автоматический режим
- Manual - Ручной запуск
При выборе режима "Off" или "Auto", и последующем подтверждении сохранения настроек, выбранный режим будет активирован, и произойдет возобновление дежурного экрана.
Важно: при завершении сохранения, каких-либо настроек, всегда активируется дежурный экран контроллера.
При выборе пункта меню "Manual", требуется ввести дополнительные параметры перед запуском данного режима.
Подменю "Manual" - "Ручной запуск"
При выборе данного пункта меню, пользователь должен выбрать желаемые каналы для включения, для этого, нужно изменить статус "Off" (Выключен) на статус "On" (Включен). После указания статусов для каждого канала, требуется указать длительность полива в минутах. Минимальная продолжительность полива при ручном запуске - 1 минута, а максимальная продолжительность полива - 240 минут. Следующим пунктом настройки является подтверждение запуска программы.
Важно: После завершения процесса полива, режим контроллера будет изменен на режим, который был указан до ручного запуска полива.
Подменю "Auto Settings" - "Настройки Автоматического режима"
Подменю "Auto Settings" разделен на три пункта:
- Program Setup - Настройки программ
- Zone Setup - Настройки каналов
- Duration Adjustment - Корректировка длительности
Подменю "Program Setup" - "Настройки программ"
Войдя в данный раздел, пользователь должен выбрать одну из трех доступных программ для последующего редактирования:
- Программа A
- Программа B
- Программа C
После выбора одной из трех программ, пользователь должен выбрать в какие дни запускать данную программу. Доступны четыре типа настройки периодичности:
- Everyday - полив каждый день
- Second Day - полив каждый второй день
- Third Day - полив каждый третий день
- DOW Select - полив по указанию дней недели
Режим "Everyday" - Полив каждый день
Данный режим не содержит каких-либо дополнительных настроек, после выбора пункта "Done" (Готово) и подтверждения, настройки будут сохранены.
Режим "Second Day" и "Third Day" - Полив каждый второй день и каждый третий день
После выбора данного режима, пользователь должен дополнительно указать текущий день для запуска счетчика данной программы:
- First Day - Первый день
- Second Day - Второй день
- Third Day - Третий день (данный пункт доступен для режима "Полив каждый третий день")
Важно: Алгоритм изменения текущего дня, для данных двух режимов срабатывает ежедневно, ровно в 00.00.
Режим "DOW Select" - Полив по указанию дней недели
После выбора данного режима, пользователь должен указать в какие дни недели, он желает запускать данную программу, изменив статус с "Off" (Выключено) на статус "On" (Включено).
Подменю "Zone Setup" - "Настройка Зон"
После входа на данный уровень иерархии меню, пользователь должен выбрать канал для последующего редактирования.
После выбора одного из восьми каналов, пользователь должен произвести следующие настройки:
- Program Assign - Назначить программу. Требуется указать одну из трех программ (A,B,C). В данном списке также присутствует опция "Off" (Отключить), которая в свою очередь отключает выбранный канал
- Timers Count - Количество таймеров в активный день. Возможно указать до трех включений
- Timer #1,2,3 On - время включения канала для таймеров 1,2,3
- Timer #1,2,3 Off - время выключения канала для таймеров 1,2,3
Важно: Максимальная длительность, которую можно указать для таймера, не может превышать 23 часа 59 минут. Таймер невозможно активировать с 23.59 до 00.00 (последнюю минуту дня).
Важно: Время включения таймера не может быть позже времени выключения таймера. В этом случае контроллер укажет на ошибку и перейдет на пункт указания времени включения канала для первого таймера, для корректировки.
Подменю "Duration Adjustment" - "Корректировка длительности"
В данном подменю пользователь может отрегулировать длительность всех существующих таймеров. Данная опция актуальна при сезонных изменениях. Корректировка указывается в процентах.
Важно: Если при настройке корректировки длительности, завершение полива переходит на следующий календарный день, то полив будет приостановлен в 23.59 текущего дня.
Подменю "Date/Time Settings" - "Настройка даты и времени"
При выборе данного подменю пользователь, может настроить текущие дату и время.
Важно: Опция авто-перехода на летнее/зимнее время отсутствует.
Настройка Fuse битов
Для корректной работы порта А, требуется отключить JTAG, так как указано на рисунке ниже:
Фотографии устройства
Применение датчиков на срабатывание клапанов (дополнение от 14-03-2015)
В данной секции я опишу возможность подключения датчиков влажности почвы, температуры и прочих. Метод описанный мною ниже позволяет использовать данные датчики, как дополнительное условие на срабатывание клапанов, не изменяя прошивки микроконтроллера. В своем примере я буду использовать датчик влажности почвы и модуль с компаратором LM393. Данные два элемента свободно продаются во многих онлайн магазинах и обычно идут в комплекте.
Данный модуль имеет два вывода с одной стороны, для подключения непосредственно к датчику, и четыре вывода с другой стороны, это VCC (+5 В), GND (земля), DO (цифровой вывод, при срабатывании датчика, вывод начинает проводить землю), AO (аналоговый вывод, в нашем примере данный вывод не рассматривается, обычно используется при подключении напрямую к АЦП микроконтроллера). Порог срабатывания датчика настраивается при использовании переменного резистора, на плате модуля опытным путем.
Так же в своем примере, я буду использовать модуль с восемью реле, для того, чтобы учесть интересы другой части пользователей, которые будут использовать электромагнитные клапаны 24 В переменного тока. Данный модуль также свободно продается и часто используется любителями платформы Arduino. На плате модуля находятся десять выводов, это GND (земля), восемь выводов IN1-IN8 (при подключении земли к данным выводам, срабатывает соответствующее реле на плате) и вывод VCC (+5 В)
Схема подключения следующая:
Вывод базы транзистора 2N7000 подключен через резистор к +5 В, в таком положении транзистор всегда открыт. Минуя резистор, к базе транзистора подключается вывод датчика влажности почвы. Напомним, что при срабатывании датчика, на данный вывод подается земля. Соответственно, если датчик сработал, транзистор закроется.
В открытом состоянии, транзистор 2N7000 проводит через себя "общую землю" к выводу "9" составного транзистора Дарлингтона, и все каналы клапанов работают в штатном режиме, если же 2N7000 закрывается (датчик сработал), ULN2803 перестает функционировать и передавать негативные сигналы на модуль реле.
Изменение схемы контроллера под свои нужды, позволяют отказаться от использования некоторых компонентов, и использовать альтернативные компоненты. Схема указанная ниже, не отображает полную картину подключения контроллера и не является завершенным проектом, а лишь является вспомогательным инструментом для модернизации контроллера.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот | |
---|---|---|---|---|---|---|---|
Микроконтроллер | |||||||
IC1 | МК AVR 8-бит | ATmega16 | 1 | DIP40 | Поиск в магазине Отрон | ||
Транзисторы | |||||||
IC2-IC5 | Составной транзистор | ULN2803 | 4 | DIP18 | Поиск в магазине Отрон | ||
Часы реального времени и кварц | |||||||
IC6 | Часы реального времени (RTC) | DS1307 | 1 | DIP8 | Поиск в магазине Отрон | ||
ZQ1 | Кварцевый резонатор | 32.768 кГц | 1 | 2х6 (мм) | Поиск в магазине Отрон | ||
Резисторы | |||||||
R1-R4 | Резистор | 10 кОм | 4 | SMD1206 | Поиск в магазине Отрон | ||
R5, R6 | Резистор | 4.7 кОм | 2 | SMD1206 | Поиск в магазине Отрон | ||
R7-R15 | Резистор | 1 кОм | 9 | SMD1206 | Поиск в магазине Отрон | ||
Индикация | |||||||
LCD1 | LCD-дисплей | LCD1602 | 1 | Поиск в магазине Отрон | |||
LED1 -LED8 | Светодиод | Green ~3 В, 25 мА | 8 | 2х5х7 (мм) | Поиск в магазине Отрон | ||
Управление | |||||||
B1B4 | Кнопка тактовая | TSQG-2L | 4 | 12х12х7 (мм) | Поиск в магазине Отрон | ||
Прочее | |||||||
Z1- Z9 | Клеммник винтовой разъемный | 2EDGK-5.08-02P | 9 | Поиск в магазине Отрон | |||
BH1 | Фиксатор аккумулятора | Jtron CR2025 / CR2032 | 1 | Поиск в магазине Отрон | |||
Вилка штыревая | PLS-40 | 1 | для пайки LCD1602 к плате и модуля регулятора напряжения | Поиск в магазине Отрон | |||
DIP-разъем | DIP-40 | 1 | для IC1 | Поиск в магазине Отрон | |||
DIP-разъем | DIP-8 | 1 | для IC6 | Поиск в магазине Отрон | |||
Питание и модуль регулировки напряжения | |||||||
BAT1 | Литиевый источник питания | CR2025 | 1 | Поиск в магазине Отрон | |||
VR1 | DC/DC импульсный конвертер | LM2596 | 1 | 5 В; 3 А. Не забудьте отрегулировать на 5 В перед пайкой! Размеры: 43х21х14 (мм) | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- IrrigationController_v2_1.rar (100 Кб)
Комментарии (108) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
P.S. Жаль исходником не хочет делиться никто в настоящее время
[Автор]
Да в памяти дисплея - только латиница, был вариант рисовать кирилицу, но решил все же писать меню на примитивном английском.
Думаю, многие знают такие слова как : on, off, auto, manual, zone, time, first, second и тд., и не требуют обращения к инструкции, а для всех остальных я и расписал инструкцию с переводом и описанием.
[Автор]
[Автор]
Подача воды в моем случае идет из крана (водопровода).
[Автор]
[Автор]
[Автор]
В свое время присматривал что то аналогичное для дачного участка, но после того как увидел цены на импортные клапаны/задвижки быстро остыл...
[Автор]
[Автор]
Еще хотел сказать что всте таки клапана которые использовал топикстарет на практике нужно будет поменять на 1 дюйм. 3/4 все таки маловато,будут потери на линии и дождевателям может будет маловато. А так схема супер. Еще раз поддержу топикстартера и буду следить за развитием темы. Безусловно можно купить готовый контролер Хантера, Райн Берд..но цена. чуть дешевле Иритол (Италия), но все же на 8 канальные цена кусучая.
А эту схемку хотелось бы усовершенствования по датчикам влажности, датчику уровня воды в скважине, накопителе и связать это в единую систему. Вот это вещь.
ice3dfx как в данном случае представляешь себе схему? Реально так доработать?
[Автор]
Задача 1. Автоматически заполнять резервуар водой из скважины используя насос №1.
Решение: Описал в предыдущем комментарии.
Задача 2. Включение насоса №2 при включении клапанов (параллельно)
Решение:
Можно использовать диоды, к примеру 1N4148, при срабатывании одного из выводов микроконтроллера (клапанов), на ровне с включением соответствующего реле, будет включатся одно и то же дополнительное реле для насоса, сейчас соберу...
Вроде ответил на все вопросы
[Автор]
Ты все правильно понял,но есть нюанс.
Задача 1. Заполнять резервуар 2 куба со скважины насосом №1. В резервуар установить датчик, и при заполнении он отключит насос. Все хорошо, но.... Надо поставить еще датчик в скважину или использовать таймер. Объясняю почему. Скважина не бездонная и при работе насоса выкачивается скажем за 1 час, а если скважина опустеет будет беда для автоматизма, насос схватит воздух и остановиться, потом придется в ручную перезапускать и убирать воздушную пробку. Вот для чего нужен датчик в скважине или таймер на насос №1 - для того чтобы вовремя отключить насос, выждать пока скважина наберется (скажем 2-3 часа), потом включиться и продолжать наполнять емкость до срабатывания датчика в баке (датчик присутствия жидкости что ты предложил).
Задача для насоса 2. Я ее разрешил, я думаю чуть проще. Нужно использовать стандартное реле давления для насосной станции, его работа заключается, когда управляемый электроклапан откроется он включит насос, электроклапан закроется - насос отключится.
А датчик влажности просто не будет давать котролеру открывать электроклапана, если идет дождь.
Поэтому пока голова болит по первой задаче.
[Автор]
Касательно задачи 1:
можно использовать один из восьми каналов для активации таймера, для мониторинга уровня воды в скважине, смысла ставить второй датчик в скважине, думаю нет.
Касательно задачи 2 (включение насоса при открытии клапанов): реле давления для насосной станции - хороший и популярный вариант, но можно использовать и вариант, который я прикрепил к старому комментарию, его себестоимость очень низкая, 8 диодов и 1-канальный модуль реле :)
Ага ..по задаче 2 понял...до меня чуть дольше доходит:)
Просчитал модуль реле питание насоса выдержит, релюхи там 10А 220в, а насос у меня макс 1,3 КВт, так что вроде нормуль
[Автор]
JTAGEN = 0
[Автор]
P.S. А управление с моей точки приколбасить целесообразнее управление по смс (устройство хоть и неплохое, но всё таки мелковатое для интернета).
[Автор]
Исходники выкладывать не буду, изначально планировал поделиться, только конечной прошивкой.
[Автор]
Плата со всеми включенными LED, приблизительно не больше 250 мА.
250+720(8*90)=970мА. Лучше конечно будет собрать конструкцию на макетной плате, проверить, а потом уже подбирать транс.
[Автор]
Там четыре провода + - и 1 открытие 1-закрытие. При подаче на минуса либо на один или другой кран будет закрыт или открыт.
Вопрос к ice3dfx - есть ли возможность подправить прошивку на четыре канала, но в каждом два выхода - один на открытие второй на закрытие? На выходе - импульс. Если можно, в настройках задать длительность импульса.
[Автор]
[Автор]
белый - постоянный +
черный - постоянный -
коричневый - вход (-) на закрытие
зеленый - вход (-) на открытие.
На выходных, если будет время доработаю прошивку, но вам нужно будет потестить, у меня такого крана физически нету.
И ещё, вас не смущает эта запись:
· пусковой потребляемый ток электродвигателя - не более 6,5 А;
[Автор]
Наконец-то дошли руки, чтобы изменить прошивку для бистабильных клапанов. Проводил тестирование на макетной плате с светодиодами, все нормально работало. Длительность импульса меньше 1 сек.
Информация по пинам: Подключение к бистабильным клапанам (сигнал +5в) - чтобы получить "-", подключайте через транзистор, лучше через опторазвязку:
Zone1Off PORTC.0 //zone 1 выкл
Zone2On PORTC.1 //zone 2 вкл
Zone2Off PORTC.2 //zone 2 выкл
Zone3On PORTA.3 //zone 3 вкл
Zone3Off PORTA.2 //zone 3 выкл
Zone4On PORTA.1 //zone 4 вкл
Zone4Off PORTA.0 //zone 4 выкл
Индикация состояния зоны (сигнал +5в) - подключать к светодиодам:
Zone2 PORTC.4
Zone3 PORTC.5
Zone4 PORTC.6
Когда протестируйте с клапанами, отпишитесь, если будет стабильно работать, добавлю файл к статье.
[Автор]
[Автор]
[Автор]
[Автор]
А так же не работает 4 канал, т.е. 24-27 ноги не работают. Чего посоветуете?
[Автор]
Если не помогло, пошлите фотку макетки.
Еще вы не сказали, вы используете стандартную прошивку или для бистабильных клапанов?
[Автор]
А может ли быть проблема в том, что я использую экран 1602, но размером в 2 раза больше, отдельное питание к нему не подкидывал?
[Автор]
[Автор]
Погуглите, может, в codevision, как-то подругому нужно отключать jtag? Я сам использую не spi програматор
JTAG can be permanently disabled by configuring two fuse bits, OCDEN and JTAGEN (must be disabled). This is done by using Avrdude software. The following instruction should be followed carefully to disable the JTAG
Второй ocden у вас не тронут. Проверьте.
Я уже написал ваше возможно верное решение. Это два fuse bit-а OCDEN и JTAGEN. Поставьте/ уберите галочки для обоих и попробуйте. Должно работать 99%
Большое спасибо за разработку и подсказку
[Автор]
1. Почва сухая - датчик не подает "-" на затвор транзистора (кстати 2N7000 полевой транзистор N-перехода) и он остается открытым подавая "-" на 9 ногу ULN2803 "-". Каналы включаются.
2. Почва влажная - датчик подает "-" на затвор 2N7000 и он закрывается, на 9 ногу ULN2803 не подается "-" и каналы не должны включаться. Но каналы продолжают включаться. Даже если 9 нога ULN2803 будет висеть в воздухе все равно каналы включаются.
Похоже когда на выходах Atmega16 РА4-РА7, РС0-РС2 и PD7 нет сигнала то там "-" который через диоды защиты ULN2803 попадает на 9 ногу ULN2803, и когда на одном из выходов появляется сигнал то через другие все равно проходит "-" и транзисторная сборка включает реле.
Поэтому пришлось отказаться от сборки транзисторов дарлингтона и собрать управление реле на КТ315 (http://easyelectronics.ru/upravlenie-moshhnoj-nagruzkoj-postoyannogo-toka-chast-1.html).
Хотя при этом есть тоже свой минус. Датчик должен стоять на последней зоне полива, так как если он будет стоять на первой зоне полива то при насыщении земли влагой от полива он сработает и отключит другие каналы контроллера полива.
[Автор]
В моей сборки всё питание от ~24В, т.к. электроклапана для переменки. Для основной схемы питание через диодный мост-конденсатор-дросселя (т.к. при включении элекроклапанов идут помехи, остановка времени) на преобразователь 5В. Со стороны дорожек навесной монтаж R-2,0Ком (регулировка контрастности дисплея), С2-С7 электролиты для защиты от помех.
Для просмотра отправляю свою плату и два фото.
[Автор]
[Автор]
Схему прикрепляю, можо также использовать два резистора.
Возможно - ли перекомпилировать проект под Мегу 32?
[Автор]
Есть такая потребность?
Судя по приведенным фьюзам - SPIEN у Вас отключен, т.е. внутрисхемное программирование отключено?
Остается только параллельны программатор? Это насущная необходимость отключать этот SPIEN?
[Автор]
С уважением, Владимир
[Автор]
Для прошивки через spi (я таким методом не пользовался), но если помню правильно, нужен внешний кристал, который, тоже не задействован в схеме.
[Автор]
1. Проблема с питанием, требуется фильтр
2. Обратный ток от соленоидов, при отключении зоны (обмотки)
Fuse Lowe Byte: 0xE1
Fuse High Byte: 0xD9
Если jtag не правильно выставлен, то (Fuse High Byte: 0x99)
[Автор]
Что нужно чтоб использовать ATmega16A-AU ?
[Автор]
Если я где-то ошибся можете поправить?
https://xn---24-qddbav3bejldko8gxbye.xn--p1ai/products/membrannaya-klaviatura-4x1-knopki
Что-то изменится на монтажной плате кроме разъёма для клавиатуры?