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

2014-07-20

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

Реле уровня воды состоит из нескольких частей:

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

Повторяться не стану и если Вас заинтересует данная разработка, то об устройстве датчиков можно почитать вот эту статью – индикатор уровня воды в баке.

Что умеет делать реле уровня воды на PIC16F628A:

  1. В схему заложена возможность независимого управления двумя реле, к которым можно подключить насос/насосную станцию и электроклапан;
  2. Если нужды в одном реле нет, то можно воспользоваться прошивкой, где работа данного реле отключена. При этом из схемы можно исключить ненужные детали;
  3. Можно зрительно (по светодиодам) судить об уровне воды в баке;
  4. Когда замыкается самый верхний (по схеме) датчик, светодиод этого уровня воды начинает мерцать с частотою 2 Гц. Для привлечения внимания;
  5. Есть возможность использовать данную разработку для бережного управления насосной станцией (в которой есть реле давления и гидроаккумулятор). Функция позволяет станции включаться на 15 секунд и если есть вода в водопроводе, то срабатывает стандартное реле давления (установленное на станции), что позволяет закачивать воду в бак. Если же за 15 секунд станция «не подхватила» воду, то она отключается. Через 15 минут попытка повторяется.

Логика работы реле уровня воды довольно проста. Реле клапана (узел выделен пунктирной линией на схеме) отключается только когда емкость полностью заполнена водой (замкнут самый верхний по схеме датчик) и мерцает светодиод HL1. Все остальное время - данное реле включено. Это сделано для того чтобы вода могла самотёком заполнять емкость. Данная функция отлично подходит для подключения системы к центральному водоснабжению. Если же воду необходимо закачивать с колодца, то необходимости в клапане нет. В этом случаи используем соответствующую прошивку и исключаем из схемы все детали выделенные пунктирной линией. Если воды в баке нет совсем или же замкнут только первый (нижний по схеме) датчик, то включается реле насоса, насос начинает закачивать воду в емкость. При замыкании датчиков включаются светодиоды соответствующего уровня воды. Когда замкнется самый верхний датчик, насос перестанет закачивать воду в емкость. Следующее включение насоса произойдет только когда уровень воды в баке опуститься до самого нижнего датчика. Про функцию бережного использования насосной станции уже писал.

На рисунке 1 можно увидеть эл.клапан. В моем случае использовался клапан нормально-замкнутый с катушкой, рассчитанной на 220В. Сразу замечу, что катушка очень сильно греется.

Электроклапан

Рисунок 1

Лучше использовать клапан с катушкой, рассчитанной на более низкое напряжение. Насосная станция показана на рисунке 2.

Насосная станция

Рисунок 2

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

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

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

Рассмотрим узлы схемы. В качестве логики используется микроконтроллер PIC16F628A фирмы Microchip, по необходимости прошивку можно адаптировать и для микроконтроллеров PIC16F648A, PIC16F84.

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

На диодном мосте VD1, интегральном стабилизаторе DA1 и конденсаторах C9, C10 собран выпрямитель напряжения.

Конденсатор С3 необходимо ставить в непосредственной близости от выводов питания микроконтроллера DD1.

Цепочка R2 и C4 необходима для надежного сброса микроконтроллера.

Узел на ZQ1, C1, C2 необходим для запуска внутреннего тактового генератора микроконтроллера.

Резисторы R4-R7 необходимы для «подтяжки» выводов микроконтроллера к +5В питания.

Резисторы R8-R11 и конденсаторы С5-С8 необходимы для подавления помех, которые могут возникать на проводах подключения датчиков.

Светодиоды подключаются к разъемам XP1 – XP4. XP4 – нижний уровень воды, XP1 – верхний уровень воды. Со всем перечнем деталей можно ознакомиться, посмотрев в таблицу 1.

Таблица 1 – Перечень компонентов для самостоятельного изготовления реле уровня воды на микроконтроллере PIC16F628А.
Позиционное обозначение Наименование Аналог/замена
С1, С2 Конденсатор керамический – 15пФх50В SMD типоразмер 0805
С3-С8 Конденсатор керамический – 0,1мкФх50В SMD типоразмер 0805
С9 Конденсатор электролитический - 470мкФх25В
С10 Конденсатор электролитический - 1000мкФх10В
С11,С12 Конденсатор пленочный высоковольтный – 0,01мкФх630В
DA1 Интегральный стабилизатор L7805
DD1 Микроконтроллер PIC16F628A PIC16F648A, PIC16F84
HL1-HL4 Светодиод 3мм
К1, К2 Реле JZC-4123 JQC-3F
R1, R3, R8-R11, R14, R15 Резистор SMD 0805 5,1 Ом
R2 Резистор SMD 0805 1 кОм
R4-R7 Резистор SMD 0805 510 кОм
R12, R13 Резистор SMD 0805 5,1 кОм
R16-R19 Резистор SMD 0805 180 Ом
R20-R21 Резистор 0,5 Вт 39 Ом
VD1 Диодный мост 1А х 1000В DB107
VD2, VD3 Диод выпрямительный 1N4007
VT1,VT2 Транзистор BC846 SOT23
XP1-XP6 Штекер платный
XT1-XT2 Клеммник на 2 контакта.
XT3-XT5 Клеммник на 3 контакта.
ZQ1 Кварц 4МГц типаразмер HC49

Попробовать работу реле уровня воды можно на упрощенной модели, построенной в протеусе. Рисунок 4.

Модель реле уровня воды в протеусе

Рисунок 4

Печатная плата показана на рисунках 5-7

Важно! Рисунки плат приводятся для ознакомления. Платы не в масштабе. Для изготовления плат необходимо использовать заготовки из архива.

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

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

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

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

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

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

Рабочая программа для PIC-микроконтроллера была написана на языке ассемблер и отлажена в программе MPLab 8.8

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

Видео не по теме

Подведем небольшой итог. В статье представлена довольно подробная инструкция по самостоятельному изготовлению реле уровня воды на микроконтроллере PIC16F628A. Само реле не содержит дефицитных деталей, при правильной сборке в наладке не нуждается. Прошивка предоставляется без каких-либо ограничений. Реализована функция бережного использования насосной станции. Реле способно управлять эл.клапаном и насосом.

Повторили изобретение? Присылайте фото на media собака pichobby.lg.ua.

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

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

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

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

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

Комментарии  

 
0 # Виталий 13.10.2014 18:31
Отличная схемка, применил в смывном бачке, Клапан от стиралки, работает классно. Спасибо автору. :lol:
 
 
0 # Ерёмин Антон 07.02.2015 22:56
Кто повторял конструкцию, присылайте фото печатной платы, готового устройства можно и видео. Размещу на сайте. Почта - support собочка pichobby.lg.ua.
 
 
0 # сергей 20.02.2015 22:41
Схема хорошая. Её ещё можно улучшить. Сможете сделать управление бистабильным клапаном?
 
 
0 # Ерёмин Антон 20.02.2015 23:35
Цитирую сергей:
Схема хорошая. Её ещё можно улучшить. Сможете сделать управление бистабильным клапаном?

Опишите алгоритм управления клапанами. Подумаю что можно сделать.
 
 
0 # Ерёмин Антон 21.02.2015 22:05
Как Вас понял, то управлять необходимо клапаном, который питается током постоянного напряжения? На какое напряжение клапан? Если применить мостовую схему на транзисторах для управления клапаном?
 
 
0 # сергей 22.02.2015 14:12
Да катушка клапана питается постоянным напряжением, напряжение питания 9 вольт. можно использовать мостовую схему управления,но я пробовал обычные кт315 и кт361 не получилось, наверно большое падение напряжения в переходах.
 
 
0 # Ерёмин Антон 22.02.2015 19:01
Сообщите сколько Ом сопротивление катушки или по меряйте ток при котором клапан надежно срабатывает.
 
 
0 # сергей 22.02.2015 19:48
Катушка сопротивлением 4 Ом 2 ватта
 
 
0 # Ерёмин Антон 22.02.2015 19:57
Может 40 Ом? https://yadi.sk/d/RTGqneM8eqBHi Вот ссылка на проект в протеусе. Пока тестовый. Есть возможность посмотреть?
 
 
0 # сергей 22.02.2015 20:44
Нет 4 ом. Насчет протеуса,не пользуюсь. У меня есть контроллер полива G75 он управляет такими клапанами, разбирал его посмотреть как он устроен.Микросхема сделана на плате и залита, на выходе стоят транзисторы в smd исполнении 3 штуки на каждый канал,всего каналов 4 и есть 1 конденсатор электролит, я так понял что конденсатор подключается к питанию и заряжается, а потом подключается к катушке клапана и он срабатывает. Питание 9 вольт от кроны хватает на год работы. У меня с родной хватило на 2 сезона
Транзисторы искал не нашёл видно тоже какие то заказные
 
 
0 # Ерёмин Антон 22.02.2015 21:14
https://yadi.sk/i/moKR6vxXeqEq5 Вот схема моста. Если сопротивление катушки все же 4 Ом, то питается она скорее от импульсного напряжения. Если использовать не импульсное напряжение, то мощность 2Ватта никак не получить. (Ток = 9В/4Ом = 2,25А, Мощность = 2,25А*9В = 20,25Вт.
 
 
0 # Ерёмин Антон 22.02.2015 21:16
Вместо BC546 можно использовать кт3102.
 
 
0 # сергей 22.02.2015 23:58
мост проверил работает, полярность переключает, но когда подключаю клапан он не срабатывает. Просаживается напряжение до нуля.От батареи которой запитывал мост клапан работает. Мне кажется лучше использовать схему с двумя реле и электролитами которую присылал.
Да катушка работает от импульса. Поэтому расчеты и не подходят.
 
 
0 # Вадик 16.12.2015 12:33
Сергей а на две бочки одним насосом можно сделать на мк? Если не трудно то подскажите как? Заранее спасибо
 
 
0 # Ерёмин Антон 23.02.2015 21:30
Понятно, что мост с такими параметрами работать с клапаном не будет, так как был рассчитан только для светодиодов. Последние несколько вопросов. Планируете запитывать клапан от кроны? Или у схемы будет свой стационарный блок питания. Просто на переходах транзисторов падает около 0,6 В(на каждом) и на резисторах тоже, а на клапане желательно 9 вольт в чистом виде иметь. Можно мост на полевиках сделать, у ник падение сток исток маленькое.
 
 
0 # сергей 24.02.2015 20:30
Питать клапан и схему думаю от 6 батарей АА. Чтобы уровнемер был автономным.
 
 
0 # Ерёмин Антон 24.02.2015 21:19
Хорошо. Не буду больше допытывать вопросами... Постараюсь к концу недели подправить прошивку. Отправлю на почту.
 
 
0 # сергей 24.02.2015 21:23
Ничего страшного, это же для полезного дела
 
 
0 # Ерёмин Антон 09.03.2015 22:37
Добавил поддержку бистабильного клапана. Сам архив с проектом не обновлял. Пока не вижу необходимости. Кому нужно вышлю на почту.
 
 
0 # Orange53 10.08.2015 20:50
Вопрос автору , в программе учтен "дребезг контактов" датчика воды ? при сильном напоре возникают волны набегая на датчик в схемах без демпфирования возникают многократные пограничные сработки , при использовании глубинного насоса с пускателем вся эта "морзянка" смотрится как минимум не приятно .
 
 
0 # Ерёмин Антон 10.08.2015 23:37
Доброго времени, Orange53. "Дребезг контактов" учтён. В программу изначально был добавлен таймер на 500мс, который запускается по условию срабатывания датчика. По истечению 500мс происходит повторная проверка этого же датчика.
 
 
0 # Orange53 11.08.2015 12:41
это хорошо , тогда еще вопрос ... если не подключать промежуточные уровни (выводы мк d2,d3 ) , а только общий /нижний/верхний будет ли логика нормально работать?
пытался запустить проект в протеусе ,подключил файл прошивки , симуляция запустилась но ругается на собаку слишком частый сброс ...видимо надо как то сконфигурировать рic ...
 
 
0 # spotok 13.03.2017 20:02
задержка на включение сразу после выключения нужна поболее, например секунд 5 и более, иначе из-за гидроудара начинается морзянка.
 
 
0 # Ерёмин Антон 13.03.2017 20:52
Цитирую spotok:
задержка на включение сразу после выключения нужна поболее, например секунд 5 и более, иначе из-за гидроудара начинается морзянка.

Доброго времени. Это Вы сейчас о чём?
 
 
0 # Orange53 11.08.2015 13:30
UPD ...с протеусом разобрался все работает , очевидно что средние уровни придется паралелить ...
Антон возможно ли изменить прошивку ?. нужен след алгоритм ... уровень ниже нижнего отключение rel1 , rel2 включено , когда поднимется до нижнего rel 1 включается . при поднятии до зеленого уровня rel 2 отключается rel1 работает . при поднятии до красного срабатывает моргуля/бузер тип предупреждение затопления ..по релюхам без изменений .
если человеческим языком то ... емкость находится в подвале куда качает глубинный насос в скважине , но вода есть не всегда , и если глубинный защищен своей автоматикой то напорный насос который выкачивает из емкости нет , поэтому если уровень ниже нижней точки хотелось бы сделать запрет на включение потребителя ..и изменить задержку с 500мс на 1-2 мин если счетчика хватит .
ps править прошивку под каждого за просто так скучно по этому хочу предложить энную сумму , что скажите ?
 
 
0 # Ерёмин Антон 11.08.2015 19:51
Доброго времени, Orange53. Средние уровни можно посадить на минус питания. Если правильно Вас понял, то реле1 - напорный насос, а реле2 - глубинный? Если наоборот? Разница в подключении принципиальна? Насчет вознаграждения - совсем не против.
 
 
0 # Orange53 14.08.2015 22:29
Приветствую ! разницы никакой какое реле чем будет управлять , главное чтоб алгоритм выполнялся .
внимательно рассмотрел ваши прошивки ..., практически идеально подходит r1-r2_on , хотелось бы изменить 3 вещи ... кнопка 4 всегда замнкнута , при замыкании кнопок 3,2 загорается зеленый индикатор и глубинный насос отключается (красный сд) , расходчик работает (зеленый сд ) при размыкании в рбратной последовательности после того как разомкнется контакт 3 глубинный должен включится (красный сд) а расходчик выключится ...когда контакт 3 снова замкнется расходчик включаается . кнопка №1 при срабатывании не зависимо от уровня в баке должна вызвать отключение всех насосов и включить моргалку ( датчик затопления насосной ) . задержка на срабатывание на все каналы 25сек .
Вот как то так .... надеюсь вас не отпугнут столь масштабные переделки .
 
 
0 # Ерёмин Антон 17.08.2015 23:15
Доброго времени! Посмотрю что можно сделать.
 
 
0 # Ерёмин Антон 27.08.2015 17:09
Доброго времени, Orange53. Необходимо внести некоторую ясность в алгоритм. С глубинным насосом все ясно. А вот с расходником не все понятно. Расходник должен быть включен в диапазоне между нижним красным светодиодом и зеленым или же только включаться/ отключаться в крайних положениях? Жду ответа.
 
 
0 # orange533 28.08.2015 11:01
Приветствую , рад что вы не забыли эту тему , расходчик должен отключаться только при пониженном уровне (защита от сухого хода ) и при затоплении .
 
 
0 # Андр 24.04.2018 14:29
Добрый день Антон!
Возможно ли добавить функцию Ручное управление.
Т.е. Иногда нужно набрать пол бака воды при этом отслеживать уровнь на светодиодах. Не дожидаясь отключения клапана верхнего уровня.
А иногда нужен полный бак. Это работает.
Благодарен за ответ.
 
 
0 # Ерёмин Антон 25.04.2018 13:51
Здравствуйте, Андр. Всё можно сделать, но на всё нужно время. Опишите подробнее, что нужно получить, как Вам это видится. Можно сюда, а можно на почту - support собака pichobby.lg.ua.
 
 
0 # Андр 03.05.2018 14:02
Здравствуйте, Антон.
Можно ли доработать данный девайс.
Установить тумблер Режим Авто и ручное. В авто все как и есть .При срабатывании верхнего датчика клапан перекрывается. В ручном режиме при наличии дополнительной кнопки. При нажатии кнопки вкл клапан. еще раз нажать клапан выкл. При этом уровень воды отображается на светодиодах. С увв. к Вам Андрей.
 
 
0 # Ерёмин Антон 06.05.2018 00:26
Здравствуйте, Андр. Программу писал на ассемблере и править сейчас нет возможности, так как работаю над другим проектом. Если сами будете делать, то могу исходник на почту скинуть. Или придётся подождать.
 
 
0 # Алексей 11.12.2018 18:09
Цитирую Ерёмин Антон:
Здравствуйте, Андр. Программу писал на ассемблере и править сейчас нет возможности, так как работаю над другим проектом. Если сами будете делать, то могу исходник на почту скинуть. Или придётся подождать.


Привет. Не мог бы скинуть на почту код в ассемблере?
 
 
0 # Ерёмин Антон 06.05.2018 00:28
Сама доработка мне нравиться.
 
 
+1 # Андр 11.05.2018 08:49
Добрый день Антон!
Отписался Вам на support
Буду пробовать
 
 
0 # Ерёмин Антон 11.05.2018 09:15
Добрый день, Андр.

Письмо получил. Найду исходник и отправлю Вам.
 
 
0 # fvis 30.01.2019 13:43
Добрый день Антон!
Меня очень заинтересовала данная система, у меня неглубокая скважина с накопительным баком и хотелось бы сделать автоматическую подкачку воды из скважины, но так как у Вас нет возможности править, хотел бы попросить у Вас исходный код в ассемблере данного проекта, заранее благодарен.
 
 
0 # Ерёмин Антон 31.01.2019 22:27
Добрый день, fvis. напишите мне на почту support собачка pichobby.lg.ua. Программу скину.
 

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

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