Измерение уровня воды с помощью Arduino и водонепроницаемого датчика JSN SR-40T

Ультразвуковые датчики, также известные как сонары (SONAR), представляют собой электронные устройства, используемые для измерения расстояния до объекта при помощи излучения ультразвуковых волн. Кроме измерения расстояния они также используются в задачах обнаружения объектов и роботах, объезжающих препятствия. Ранее для измерения расстояния мы использовали ультразвуковой датчик HC-SR04 и на нашем сайте уже достаточно много проектов с использованием этого датчика. HC-SR04 – достаточно простой и дешевый датчик для измерения расстояний, но его недостаток заключается в том, что его нельзя применять в "жестких" условиях эксплуатации, в частности, его нельзя подвергать воздействию воды.

Внешний вид проекта измерения уровня воды с помощью Arduino и датчика JSN SR-40T

Поэтому в данной статье мы рассмотрим подключение к плате Arduino Nano ультразвукового водонепроницаемого датчика (Waterproof ultrasonic sensor) JSN SR-04T и измерение с его помощью уровня воды. Также кратко будут рассмотрены основные особенности и технические характеристики датчика JSN SR-04T. Дополнительно на нашем сайте вы можете посмотреть проект индикатора уровня воды на Arduino Uno и датчике HC-SR04.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. JSN SR-04T Waterproof Ultrasonic Sensor (ультразвуковой водонепроницаемый датчик) (купить на AliExpress).
  3. ЖК дисплей 16х2 (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Водонепроницаемый ультразвуковой датчик JSN SR-04T

JSN SR-04T представляет собой модуль водонепроницаемого ультразвукового датчика, который способен измерять расстояние на дистанциях 25-450 см с точностью 2 мм. Модуль датчика состоит из двух раздельных частей. Одна часть – это датчик, который непосредственно производит передачу и прием ультразвуковых волн, а вторая часть – это плата управления. По принципу действия JSN SR-04T очень похож на датчики парковки, которые устанавливаются в бамперах автомобилей.

Внешний вид водонепроницаемого ультразвукового датчика JSN SR-04T

Модуль датчика JSN SR-04T имеет водозащищенное исполнение датчика, отличается устойчивым функционированием в сложных условиях эксплуатации и высокой точностью измерения расстояния. Он может использоваться в системах дальнометрии, предотвращения столкновения с препятствиями, автоматизированного контроля, мониторинга движения объектов, контроля трафика, системах безопасности и искусственного интеллекта и многих других применениях.

Назначение контактов (распиновка) датчика JSN SR-04T представлены на следующих рисунке и таблице.

Назначение контактов (распиновка) датчика JSN SR-04T

№ контакта Название контакта Назначение контакта
1 5V Напряжение питания
2 Trig Входной контакт датчика. На него необходимо подать импульс длительностью 10 мкс чтобы запустить датчик в работу (чтобы он начал излучение ультразвуковой волны).
3 Echo Выходной контакт датчика. После приема отраженной от препятствия ультразвуковой волны на этом контакте формируется импульс высокого уровня (high), длительность которого равна времени распространения ультразвуковой волны до препятствия и обратно.
4 Gnd Общий провод (земля)

Модуль датчика JSN SR-04T во многом похож на модуль ультразвукового датчика, но по сравнению с ним у него есть ряд преимуществ:

  • в отличие от HC-SR04 у модуля JSN SR-04T непосредственно датчик не распаян на печатной плате модуля, вместо этого он закреплен на конце достаточно длинного кабеля (2,5 метра), поэтому чувствительный элемент датчика может быть удален на значительное расстояние от платы управления;
  • чувствительный элемент датчика заключен в защищённый водонепроницаемый корпус, поэтому его можно размещать в жестких условиях эксплуатации и агрессивных средах.

Но несмотря на эти преимущества имеются и некоторые недостатки. К примеру, минимальное расстояние измерения у датчика JSN SR-04T составляет 20 см, в то время как у датчика HC-SR04 оно равно 2 см. Причина этого заключается в том, что JSN SR-04T имеет только один чувствительный элемент в то время как у датчика HC-SR04 их два – один используется для передачи ультразвуковых волн, а другой для приема. В результате этого чувствительному элементу датчика JSN SR-04T приходится переключаться двумя режимами (прием/передача), а на это требуется дополнительное время. Поэтому и минимальное расстояние измерения для датчика JSN SR-04T равно 20 см, а датчик HC-SR04 может измерять значительно меньшие расстояния благодаря наличию у него отдельных передатчика и приемника.

Основные технические характеристики и особенности датчика JSN SR-04T:

  • рабочее напряжение: DC 5V (постоянного тока);
  • ток в состоянии покоя (ожидания): 5mA;
  • ток в рабочем состоянии: 30mA;
  • частота ультразвуковой волны: 40 кГц;
  • диапазон измерения расстояний: от 25 см до 4,5 м;
  • длина кабеля: 2,5 метра.

Схема проекта

Схема подключения водонепроницаемого ультразвукового датчика JSN SR-40T к плате Arduino представлена на следующем рисунке.

Схема подключения водонепроницаемого ультразвукового датчика JSN SR-40T к плате ArduinoПитание всех элементов схемы осуществляется от контакта 5V платы Arduino. Контакты Trigger и Echo ультразвукового датчика подключены к контактам D2 и D3 платы Arduino. Схема соединений платы с ЖК дисплеем представлена в следующей таблице.

ЖК дисплей Плата Arduino
VSS GND
VDD 5V
VO к потенциометру для регулировки уровня контрастности
RS D12
RW GND
E D11
D4 D4
D5 D5
D6 D6
D7 D7
A 5V
K GND

Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Внешний вид собранной на макетной плате конструкции проекта

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Принцип работы платы Arduino с датчиком JSN SR-40T во многом похож на принцип ее работы с датчиком HC-SR04, подключение которого к плате Arduino мы рассматривали в этой статье.

Первым делом в программе необходимо подключить все используемые библиотеки, в нашем случае это библиотека LiquidCrystal.h для работы с ЖК дисплеем. Данную библиотеку можно использовать как в случае 4-битного подключения ЖК дисплея, так и в случае 8-битного его подключения.

Далее в следующей команде укажем плате Arduino к каким ее контактам подключен ЖК дисплей.

Затем дадим осмысленные имена контактам платы, к которым подключены контакты trigger и echo ультразвукового датчика.

Внутри функции setup() зададим режимы работы используемых контактов платы Arduino: контакт trigger на вывод данных, а контакт echo – на ввод данных. Также инициализируем последовательную связь со скоростью 9600 бод для целей отладки и инициализируем ЖК дисплей.

В функции loop сначала установим на контакте TRIGPIN напряжение низкого уровня (LOW) на 2 мкс чтобы "очистить" его. Затем мы установим на нем на 15 мкс напряжение высокого уровня (high) чтобы датчик излучил в пространство ультразвуковую волну. После этого с помощью функции pulseIn() мы будем считывать длительность импульса на контакте ECHOPIN, которое равно времени распространения ультразвуковой волны до препятствия и обратно. Далее на основе этого времени мы рассчитываем расстояние до препятствия и выводим его в окно монитора последовательной связи и на экран ЖК дисплея.

Тестирование работы проекта

После того как аппаратная часть проекта будет готова подключите плату Arduino к компьютеру (ноутбуку) и загрузите код программы в плату Arduino. Откройте окно монитора последовательной связи на скорости 9600 бод. Расположите какой-нибудь предмет напротив ультразвукового датчика, рассчитанное расстояние до него будет отображаться в окне монитора последовательной связи и на экране ЖК дисплея.

Тестирование работы проекта

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
70 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *