Привет, друзья! Последний раз я имел дело с микроконтроллерами лет 20 назад, во время ПК типа «Микроша», «Spectrum» и т.п. С тех пор многое изменилось, давно хотелось попробовать современные контроллеры, но всё как-то причины не находилось. В основном попадались на глаза проекты термометров, вольтметров и прочих не очень мне нужных устройств.
Но однажды я прочитал статью на нашем портале: «Устройство для контроля уровня воды – уровнемер, бакомер: ультразвуковой датчик + микроконтроллер». А потом появился и датагорский кит Project-010 «Water Tank Controller».
Это устройство мне показалось полезным, и я приобрёл его.
Содержание статьи / Table Of Contents
Мне хотелось не только испытать готовый блок, но и поковырять его изнутри, максимально приспособить для моих садоводческих целей.
Среди требований к устройству контроля были и такие:
— автоматическое наполнение с отслеживанием верхнего и нижнего уровня, так чтобы была возможность регулировать эти уровни.
— контроль наличия воды в колодце, чтобы не осушить его полностью и не спалить насос.
↑ Новая прошивка для Datagor Project-010
После получения кита, его испытания и изучения, я с радостью понял, что авторами предусмотрен простор для доработок. Например, МК в устройстве имеет незадействованные входы, которые можно использовать для своих целей. Правда для этого придётся сделать другую прошивку.К счастью, в Интернете масса информации по AVR, средам разработки и куча примеров. Так что разобраться и научится программировать, при желании вполне возможно.
В результате получилась альтернативная прошивка для Project-010. Она написана с нуля и умеет следующее:
1. Можно настраивать уровни (диапазон) включения и отключения насоса (канал управления № 1).
2. Можно настраивать уровень включения и отключения канала № 2. При этом задаётся только одно значение (один светодиод, при включении которого включается канал № 2, при выключении светодиода, канал отключается). Можно использовать, например, для разрешения включения подогрева бочки при определённом уровне воды в ней.
3. Включение насоса вручную, при этом по достижении водой верхнего заданного уровня насос отключается
4. Переключение режима работы канала номер 2:
• Всегда включён
• Всегда выключен
• Авто – по состоянию запрограммированного светодиода
5. Перенастройка верхнего и нижнего уровня для канала № 1 и уровня канала № 2 непосредственно в процессе работы, без общей калибровки (без повторной установки расстояний до датчика и объема бака)
6. Блокировка работы насоса, если нет связи с ультразвуковым датчиком.
При небольшой доработке (задействованы неиспользуемые порты AVR) можно:
• подключить датчик температуры DS18B20 на порт PB1;
• организовать аварийный режим насоса на портах PB2 и PB3. Т.е. два аварийных датчика в колодце (верхний и нижний уровни) работающих как триггер.
Примеры использования аварийных даичиков:
А) Датчики верхнего (PB2) и нижнего уровня (PB3) воды в колодце. При достижении нижнего уровня (замыкание нижнего датчика), работа насоса временно блокируется. При достижении верхнего уровня (второй датчик) – работа насоса разрешена. Т.е. первый датчик блокирует насос, второй разблокирует. Б) Тоже самое, но отслеживается только один датчик (PB3). Т.е. один датчик и блокирует и разблокирует насос.
В) Использование в качестве «датчика протечки». При протечке воды или переливе, датчик блокирует работу насоса.
7. Вся информация о текущем состоянии циклически выводится на дисплей:
• Расстояние до воды (если прибор не откалиброван)
• Объем в литрах (после калибровки)
• Температуру, если подключён темп. датчик
• Состояние насоса (если включён, то выводится «CH1»)
• Состояние канала номер 2 (если включён, то выводится «CH2»)
• Потеря связи с ультразвуковым датчиком («Er_U»)
• Блокировка насоса по датчику 1 («Er 1»)
Более подробно прошивка описана в приложенном руководстве (см. файлы).
↑ Доработка блока, переходная плата
Для того чтобы воспользоваться доп. возможностями (датчик температуры и аварийные датчики) необходима небольшая доработка кита. Просто припаяться к ножкам МК не интересно, решил сделать все по уму.Аварийные датчики в виде замыкающихся контактов (любая удобная конструкция) подключены к МК через опторазвязку типа PC817 (для однообразия применил те же, что и в ките).
Термодатчик DS18B20 подключён по стандартной схеме.
Доработка самого блока сводится к изготовлению переходной платы с дополнительными разъёмами. Для этого штатные разъёмы подключения УЗ-датчика были удалены, а на их месте появилась новая плата.
В качестве разъёмов для УЗ-датчика, термодатчика и датчиков в колодце я применил тройной телефонный разъем RJ-45
Существующих 10 контактов в переходных разъёмах между платами БП и платой индикации для этих целей не хватает. Поэтому вместо него был применён разъем на 14 контактов (на плате БП). Новый разъем также соединяет мою плату с платой БП. Контакты проходят сквозь мою плату и вставляются в плату БП. При этом средние контакты используются по старому назначению, а по паре новых контактов с каждой стороны используются для новых датчиков.
Для того чтобы новый разъём прошёл сквозь обе платы (хватило длины ножек) был взят разъем с Г-образными ножками. Длины этих ножек после выпрямления хватает с избытком.
Спереди новая плата соединена с платой БП перемычками. Немного не совпали отверстия, поэтому перемычки с небольшим наклоном.
На плате индикации разъём менять не стал. Просто сделал новый шлейф с 14 на 10 ножек, а дополнительные провода подпаял к ножкам МК.
Далее немного подпилил крышечку в нужных местах, чтобы новый разъем хорошо встал, и получается вот так:
↑ Итого
В таком виде устройство отлично проработало 6 месяцев (на зиму снимал). Замечание к точности измерения. Не знаю почему, но у меня и с родной и моей прошивкой показания периодически скачут, в пределах нескольких процентов. Не критично конечно, на общую работоспособность не влияет.Подозрение падает на УЗ-датчик, попробую поменять. Или может это от того, что устройство не кварцованное, а может ещё какие неведомые силы влияют.
Накопительная ёмкость (1000 л) находится на улице. УЗ-датчик прикручен сверху и смотрит в бочку через два отверстия, т.е. находится под воздействием окружающей среды. Опасения, что датчику от близости с водой станет плохо, пока не подтвердились. Посмотрим, что будет дальше.
↑ Файлы
1) Переходная плата в формате DipTrace — 🎁 Arhiv.zip 93.98 Kb ⇣ 572) Проект в Протеусе — 🎁 Proteus_P_10_ot_BDNA.7z 27.82 Kb ⇣ 57
3) Прошивка + фьюзы — 🎁 wat_CA_BDNA.zip 63.8 Kb ⇣ 66
4) Полное описание работы прошивки — 🎁Opisanie_raboty_P_10_ot_BDNA.7z 247.98 Kb ⇣ 80
↑ Ссылки по теме
• Форум техподдержки датагорского кита Project-010• Заказать кит Project-010 «Water Tank Controller» или готовое устройство в датагорском магазине «Радиодетали — почтой»
Спасибо журналу и авторам за полезный кит, а вам за внимание!
Дмитрий, г. Москва
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.