- Необходимые материалы
- Рабочая концепция
- Принципиальная электрическая схема
- Программирование платы Arduino
Около 71% земли покрыто водой, но, к сожалению, только 2,5% из них - это питьевая вода. Ожидается, что с ростом населения, загрязнением и изменением климата уже к 2025 году мы будем испытывать постоянную нехватку воды. С одной стороны, между народами и государствами уже ведутся незначительные споры из-за совместного использования речной воды, с другой стороны, мы, люди, тратим много питьевой воды из-за нашей халатности.
В первый раз он может показаться небольшим, но если из вашего крана капает капля воды раз в секунду, вам потребуется всего около пяти часов, чтобы потратить один галлон воды, этого достаточно для среднего человека, чтобы выжить в течение двух дней. Итак, что можно сделать, чтобы это остановить? Как всегда, ответ заключается в усовершенствовании технологий. Если мы заменим все ручные краны на умные, которые открываются и закрываются автоматически, мы не только сможем сэкономить воду, но и вести более здоровый образ жизни, поскольку нам не придется управлять краном грязными руками. Итак, в этом проекте мы построим автоматический диспенсер для воды с использованием Arduino и электромагнитного клапана, который может автоматически подавать воду, когда рядом ставится стакан. Звучит круто, правда! Итак, давайте построим один…
Необходимые материалы
- Соленоидный клапан
- Arduino Uno (любая версия)
- HCSR04 - Ультразвуковой датчик
- IRF540 МОП-транзистор
- Резисторы 1 кОм и 10 кОм
- Макетная плата
- Подключение проводов
Рабочая концепция
Концепция автоматического диспенсера воды очень проста. Мы будем использовать ультразвуковой датчик HCSR04, чтобы проверить, не стоит ли перед диспенсером какой-либо предмет, например, стекло. Электромагнитный клапан будет использоваться для управления потоком воды, когда при подаче энергии вода будет вытекать, а при обесточивании вода будет остановлена. Итак, мы напишем программу Arduino, которая всегда проверяет, находится ли какой-либо объект рядом с краном, если да, то соленоид будет включен и ждать, пока объект будет удален, как только объект будет удален, соленоид автоматически выключится, закрывая подача воды. Узнайте больше об использовании ультразвукового датчика с Arduino здесь.
Принципиальная электрическая схема
Полная принципиальная схема диспенсера для воды на базе Arduino показана ниже.
Электромагнитный клапан, используемый в этом проекте, представляет собой клапан на 12 В с максимальным номинальным током 1,2 А и номинальным постоянным током 700 мА. То есть, когда клапан включен, он будет потреблять около 700 мА, чтобы клапан оставался включенным. Как мы знаем, Arduino - это плата разработки, которая работает с напряжением 5 В, и, следовательно, нам нужна схема переключающего драйвера для соленоида, чтобы включать и выключать его.
Коммутационным устройством, используемым в этом проекте, является N-канальный MOSFET IRF540N. Он имеет 3 контакта Gate, Source и Drain от контакта 1 соответственно. Как показано на принципиальной схеме, положительный вывод соленоида получает питание от вывода Vin Arduino. Потому что мы будем использовать адаптер 12 В для питания Arduino, и, таким образом, вывод Vin будет выводить 12 В, которые можно использовать для управления соленоидом. Отрицательный вывод соленоида подключается к земле через выводы истока и стока полевого МОП-транзистора. Таким образом, соленоид будет запитан, только если MOSFET включен.
Вывод затвора полевого МОП-транзистора используется для его включения или выключения. Он останется выключенным, если вывод затвора заземлен, и включится при подаче напряжения затвора. Чтобы полевой МОП-транзистор оставался выключенным, когда на вывод затвора не подается напряжение, вывод затвора соединяется с землей через резистор 10 кОм. Вывод 12 Arduino используется для включения или выключения полевого МОП-транзистора, поэтому вывод D12 подключается к выводу затвора через резистор 1 кОм. Этот резистор 1 кОм используется для ограничения тока.
Ультразвуковой датчик питается от + 5В и заземления штифтов Arduino. Эхо и триггер вывод соединен с контактом 8 и контактом 9 соответственно. Затем мы можем запрограммировать Arduino на использование ультразвукового датчика для измерения расстояния и включения полевого МОП-транзистора при обнаружении объекта. Вся схема проста и, следовательно, может быть легко построена на макете. Мой после подключения выглядел примерно так, как показано ниже.
Программирование платы Arduino
Для этого проекта мы должны написать программу, которая использует ультразвуковой датчик HCSR-04 для измерения расстояния до объекта перед ним. Когда расстояние меньше 10 см, мы должны включить полевой МОП-транзистор, иначе мы должны выключить полевой МОП-транзистор. Мы также будем использовать встроенный светодиод, подключенный к контакту 13, и переключать его вместе с MOSFET, чтобы мы могли убедиться, находится ли MOSFET во включенном или выключенном состоянии. Полная программа, чтобы сделать то же самое приводится в конце этой страницы. Чуть ниже я объяснил программу, разбив ее на небольшие значимые фрагменты.
Программа начинается с определения макроса. У нас есть триггерный и эхо- вывод для ультразвукового датчика, а также вывод затвора и светодиода MOSFET в качестве ввода-вывода для нашей Arduino. Итак, мы определили, к какому выводу они будут подключены. В нашей аппаратной мы подключили Echo и Trigger штырь 8 и 9 - го цифрового штифта соответственно. Затем вывод MOSFET подключается к выводу 12, а встроенный светодиод по умолчанию подключается к выводу 13. Мы определяем то же самое, используя следующие строки
# определить триггер 9 # определить эхо 8 # определить светодиод 13 # определить MOSFET 12
Внутри функции настройки мы объявляем, какие выводы являются входными, а какие - выходными. В нашем оборудовании только контакт Echo ультразвукового датчика (US) является входным контактом, а все остальные - выходными контактами. Поэтому мы используем функцию pinMode Arduino, чтобы указать то же, что показано ниже.
pinMode (триггер, ВЫХОД); pinMode (эхо, ВХОД); pinMode (светодиод, ВЫХОД); pinMode (МОП-транзистор, ВЫХОД);
Внутри функции основного цикла мы вызываем функцию с именем measure_distance (). Эта функция использует датчик США для измерения расстояния до объекта перед ним и обновляет значение переменной « расстояние» . Для измерения расстояния с помощью датчика US необходимо сначала удерживать спусковой штифт в низком положении в течение двух микросекунд, затем удерживать его в высоком положении в течение десяти микросекунд и снова удерживать в низком положении в течение двух микросекунд. Это пошлет звуковой поток ультразвуковых сигналов в воздух, который будет отражен объектом перед ним, а эхо- штырь уловит отраженные им сигналы. Затем мы используем значение затраченного времени для расчета расстояния до объекта перед датчиком. Если вы хотите знать