Индикатор уровня воды в баке на микроконтроллере PIC16F628A

2014-01-18

Индикатор(датчик) уровня воды на микроконтроллере PIC16F628А – устройство, которое позволит визуально контролировать уровень воды в непрозрачной ёмкости. Предлагаемое устройство может пригодиться всем, у кого есть загородный дом с летним душем или дача, огород, да что угодно лишь была бы емкость с водой. После некоторых модернизаций из индикатора получилось реле уровня воды.

Сам индикатор состоит из двух основных частей:

  1. Датчики уровня воды;
  2. Электроника, которая обрабатывает информацию, полученную от датчиков.

Теперь подробнее рассмотрим каждую из составных частей индикатора.

О схеме.

Схема индикатора собиралась из того, что было под рукой, и разрабатывалась вообще для микроконтроллера PIC16F84, но позже было принято решение добавить поддержку более дешевого и доступного микроконтроллера - PIC16F628A.

Принципиальная схема индикатора уровня воды (рисунок 1) проста, как пять копеек. FM приемник на RDA5807 - проще не бывает!

Принципиальная схема индикатора уровня воды в баке на микроконтроллере PIC16F628A

Рисунок 1 - Принципиальная схема индикатора уровня воды на микроконтроллере PIC16F628A

Рассмотрим основные узлы. Сердцем устройства является микроконтроллер PIC16F628A фирмы Microchip. Для стабильного питания которого, применяется выпрямитель на диодном мосте, конденсаторах и интегральном стабилизаторе L7805.

Для понижения напряжения настоятельно рекомендуется применить понижающий трансформатор, который обеспечит необходимую гальваническую развязку. Гасящие конденсаторы лучше не ставить, так как появляется риск оказаться под опасным потенциалом напряжения.

Датчики подключаются к схеме через барьерные резисторы.

Четыре светодиода отображают текущее количество воды в емкости. В зависимости от того какой датчик замыкает с общим проводом, светодиод того датчика и будет светиться. Весь перечень деталей сведён в таблицу 1.

Таблица 1 – Перечень компонентов для индикатора уровня воды на микроконтроллере PIC16F628А
Позиционное обозначение Наименование Аналог/замена
С1, С3 Конденсатор керамический – 15пФх50В
С2 Конденсатор электролитический - 470мкФх25В
С4 Конденсатор керамический – 0,1мкФмкФх50В
С5 Конденсатор электролитический - 1000мкФх10В
DA1 Интегральный стабилизатор L7805 L78L05
DD1 Микроконтроллер PIC16F628A PIC16F648A, PIC16F84
HL1-HL4 Светодиод 3мм
R1-R5, R11 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R6-R9 Резистор 0,125Вт 510 кОм SMD типоразмер 0805
R10 Резистор 0,125Вт 1 кОм SMD типоразмер 0805
R12-R15 Резистор 0,125Вт 180 Ом SMD типоразмер 0805
VD1 Диодный мост 1А х 1000В 2W10
XP1-XP4 Штекер платный
XT1-XT2 Клеммник на 2 контакта.
XT3 Клеммник на 3 контакта.
ZQ1 Кварц 4МГц типаразмер HC49

О датчиках.

В качестве датчиков используются тонкие хомуты из оцинкованной жести, которые, в свою очередь, располагаются на пластиковой трубе, на определенном расстоянии друг от друга. Труба крепится к тяжелому основанию(рисунок 2).

Тяжелое основание для пластиковой трубы с датчиками

Рисунок 2 – Тяжелое основание для пластиковой трубы с датчиками.

К хомутам подводятся провода, соединяющие датчики и схему (можно использовать витую пару). Вся эта конструкция устанавливается в емкость с водой. Замыкать датчики между собой будет вода. Расстояния между датчиками выбираются произвольные. В моем случае, емкость была условно разделена на три части, и по уровню каждой части на трубе был установлен хомут. Если для емкости был предусмотрен перелив, то последний хомут должен быть установлен на уровне перелива.

Конструкция датчиков может быть и иной. Главное соблюдать требуемую последовательность.

Как работает.

Работает такая конструкция очень просто. На самом низу трубы (или на основании) крепится общий провод для работы с датчиками. Относительно этого провода будут происходить все измерения. Вода, наполняя емкость, постепенно начнет замыкать общий провод с датчиками. Первый на очереди - датчик 1. Когда общий провод с ним замкнется тогда включиться первый светодиод. Далее к первому датчику добавится второй датчик, при этом включится второй светодиод, а первый выключиться и т.д. Когда произойдет замыкание с четвертым датчиком - включиться четвертый светодиод. Который, в свою очередь, будет мерцать с частотой 2 Гц.

Подобный алгоритм работы можно легко организовать на обычной логике. Так поначалу и делалось, однако, из-за частых ошибочных состояний, было принято решение заменить схему на современное микроконтроллерное устройство. Рабочая программа для PIC-микроконтроллера была написана на языке ассемблер и отлажена в программе MPLab 8.8

Моделирование.

Работа устройства моделировалась в программе протеус см. рисунок 3. Модель сделана для микроконтроллера PIC16F84A! Внимательно выбираем прошивку.

Модель уровня воды на микроконтроллере

Рисунок 3 – Модель уровня воды на микроконтроллере.

О печатной плате.

Печатная плата получилась размерами 55х50мм (рисунки 4-5 !!! не в масштабе).

Печатная плата индикатора уровня воды в баке на микроконтроллере PIC16F628A (низ).

Рисунок 4 – Печатная плата индикатора уровня воды в баке на микроконтроллере PIC16F628A (низ) не в масштабе.

Печатная плата индикатора уровня воды в баке на микроконтроллере PIC16F628A (верх).

Рисунок 5 – Печатная плата индикатора уровня воды в баке на микроконтроллере PIC16F628A (верх) не в масштабе.

Внешний вид индикатора показан на рисунке 6.

Готовая плата индикатора уровня воды

Рисунок 6 – Готовая плата индикатора уровня воды.

Корпус.

Схему готового индикатора разместил в корпусе небольшого приемника рисунки 7-8.

Готовая плата индикатора уровня воды на микроконтроллере PIC16F628A в корпусе приемника.

Рисунок 6 – Готовая плата индикатора уровня воды на микроконтроллере PIC16F628A в корпусе приемника.

Кнопка включения питания.

Рисунок 7 – Кнопка включения питания.

Отверстия для динамика заклеил клеем, а на лицевую сторону приклеил глянцевую фотография рисунки 8-9

Индикатор, собранный из заведомо рабочих деталей, начинает работать сразу и в наладке не нуждается.

Заклееные отверстия.

Рисунок 8 – Заклееные отверстия.

Лицевая панель индикатора уровня воды на микроконтроллере PIC16F628A.

Рисунок 9 – Лицевая панель индикатора уровня воды на микроконтроллере PIC16F628A.

Видео работы устройства.

В итоге получился совсем не плохой индикатор уровня воды в баке на микроконтроллере PIC16F628A, который не содержит дефицитных деталей, прост в изготовлении и не требует наладки. Добавлена поддержка микроконтроллеров PIC16F84, PIC16F648A. Печатная плата получилась 55х50 мм. Емкость, в которой будут размещены датчики, не нужно портить лишними отверстиями. Исправных компонентов и добра всем!!! Спасибо за внимание.

Файлы к статье:

Индикатор уровня воды в баке на микроконтроллере PIC16F628A(статья в pdf)

Архив с проектом

Фотографии

Прочитано 28490 раз

Понравилась статья? Помоги и остальным о ней узнать! Это просто.

Комментарии  

 
0 # Денис 10.10.2015 06:14
Подскажите, для чего тактовая кнопка стоит? В схеме её нет. На reset наверное?
 
 
0 # Денис 10.10.2015 14:01
И ещё один вопрос, подтягивающие к высокому уровню резисторы 510кОм меньше сделать нельзя? КилоОм по 10 хотя бы?
 
 
0 # Ерёмин Антон 10.10.2015 17:06
Доброго времени, Денис. Изначально схема была на герконах. Так вот кнопка необходима была для проверки залипших герконов. Позже схему переделал и кнопку исключил. Резисторы подбирал опытным путем, исходя из сопротивления воды.
 
 
0 # Денис 13.10.2015 16:05
Спасибо, понятней стало.
Ещё попристаю немного. Pic подключён к gnd через резистор 5.1Ом. Первый раз такое встречаю, обычно напрямую. Это для защиты?
Предполагаю использовать в качестве измерительной штанги полипропиленову трубу разделеную на части и соединеную между собой латунными фитингами. К фитингам соответственно подпаять провода. Латунь вроде не окисляется.
И попробую добавить выносной блок индикации, соответственно внеся корректировки в схему. Если необходимо для истории пришлю фото с готовым изделием.
 
 
0 # Ерёмин Антон 13.10.2015 22:19
Доброго времени, Денис. Резистор на 5,1 Ом - барьерный резистор. Необходим для защита от помех. На одной из емкостей устройство датчиков выполнил, как Вы описываете. Только не паял латунь, а применил хомуты вокруг фитингов, провода обжал наконечниками под винты. Всё скрутил. Работает отлично. Моя емкость установлена в сухом, нормально-проветриваемом месте. Фитинги не окисляются. Жду фото!
 
 
0 # Денис 14.10.2015 02:10
Устройство собираю для тестя, как доберусь до него установлю и пофотаю :-)
Ёмкость тоже в сухом помещении находится. Используется как "перевалочная", то есть приезжает машина, заливает тонну воды через заборную трубу. Следить не всегда получается вот выносной блок индикации и планирую сделать, чтобы развозчик воды видел когда бак наполнился. Был случай что развозчик воды задумался и сухое помещение чуть не стало мокрым.
 
 
0 # Денис 21.06.2016 06:14
Антон, приветствую, Собрал данное устройство, оно благополучно проработало примерно пол года, недавно сломалось. Прошивал, микроконтроллер менял, стабилизатор импульсный подключил, питание в норме. И... всё равно не заводится... не стартует. Возможно кварц накрылся, больше то нечему ломаться, а кварца на подмену нет :sad: . Не могли бы Вы подправить фьюзы в прошивке на внутренний генератор, он как раз на 4 МГц работает е.м.н.и.п.. Тут как я понимаю точность частоты особо не важна. (Если поставлю на 8МГц просто в два раза моргать быстрей будет, так?)
Уже и плату новую сделал.

Кстати, устройство водовозчику очень понравилось, сначала смотрел косо, потом ничего, втянулся, а как сломалось так расстроился.
Фото как обещал будут.
 
 
0 # Ерёмин Антон 22.06.2016 00:16
Доброго времени, Денис. Конфигурацию изменю на внутреннее тактирование. Будем оживлять устройство!
 

Добавлять комментарии могут только зарегистрированные пользователи.

Все права защищены. При указании активной, индексируемой ссылки на сайт MICROPAS.RU, полное или частичное использование материалов разрешается. Уважайте чужие труды! Не забывайте проставлять ссылки! Правообладателям
© Ерёмин Антон Юрьевич 2013-2021гг.