Как подключить ультразвуковой датчик к ардуино

Инфракрасный датчик препятствий E18-D80NK

E18-D80NK – это инфракрасный датчик (обнаружения) препятствий (Infrared Obstacle Avoidance Sensor), отличающийся низкой стоимостью и способный обнаруживать препятствия в диапазоне от 3 до 80 см. Состоит из инфракрасных передатчика (IR Transmitter) и приемника (IR receiver), размещенных в одном модуле. Инфракрасный передатчик излучает модулированный инфракрасный сигнал, который затем отражается от объекта и обнаруживается инфракрасным приемником. Благодаря использованию модулированного инфракрасного сигнала датчик E18-D80NK значительно меньше подвержен влиянию солнечного света.

Инфракрасные датчики E18-D80 используются в роботах для предотвращения столкновения с препятствиями, сборочных линиях на производстве, системах парковки автомобилей, системах умного дома, системах безопасности и многих других приложениях. Диапазон обнаружения может быть отрегулирован индивидуально для каждого применения с помощью специального винта, размещенного на обратной стороне датчика. Сигнал на выходе датчика изменяется в зависимости от обнаружения препятствий. Когда никаких препятствий не обнаружено, он высокого уровня (high), при обнаружении препятствий он изменяет свое состояние на low (низкий уровень). На обратной стороне датчика кроме винта регулировка диапазона обнаружения также расположен светодиод красного цвета, который включается всегда при обнаружении препятствий. Датчик E18 работает от напряжения 5V и в режиме покоя потребляет ток от 5mA до 30mA. Его распиновка показана на следующем рисунке.

Технические характеристики датчика E18-D80NK:

  • входное напряжение: 5V DC (постоянного тока);
  • потребление тока: > 25mA (min) ~ 100mA (max);
  • размеры: 1.7 см (диаметр) x 4.5 см (длина);
  • длина кабеля: 45 см;
  • обнаружение объектов: как прозрачных, так и непрозрачных;
  • диапазон обнаружения: от 3 до 80 см (в зависимости от положения винта на тыльной стороне датчика);
  • тип выхода: NPN (normally high);
  • диапазон рабочих температур: -25 °C ~ 55 °C.

Принцип работы ультразвукового датчика HC-SR04

Ультразвуковой датчик HC-SR04 используется для измерения расстояний в диапазоне 2-400 см с точностью 3 мм. Датчик состоит из ультразвукового передатчика, ультразвукового приемника и схемы управления.

Ультразвуковой датчик HC-SR04 обеспечивает на своем выходе сигнал, пропорциональный дистанции до препятствия. Датчик генерирует звуковые колебания в ультразвуковом диапазоне (после получения управляющего импульса) и после этого ждет когда они вернутся к нему (эхо), отразившись от какого-нибудь препятствия. Затем, основываясь на скорости звука (340 м/с) и времени, необходимом для того чтобы эхо достигло источника (нашего датчика), датчик обеспечивает на своем выходе сигнал, пропорциональный расстоянию до препятствия.

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

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

После этого расстояние до препятствия можно рассчитать по следующей формуле:

Distance= (Time x Speed of Sound in Air (343 m/s))/2

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

Для изготовления робота в этом проекте были использованы компоненты, которые достаточно легко приобрести. Для изготовления шасси робота можно использовать детскую игрушку или можно купить уже готовые шасси робота на AliExpress.

Основные принципы работы

Пироэлектрик представляет собою материал, при изменении своей температуры генерирующий электрическое поле. В простом PIR-сенсоре два таких элемента, подключенных с разными полярностями.

Предположим, что гаджет смонтирован в помещении.

  1. Если комната пуста, все элементы получают одинаковую порцию теплового излучения, напряжение на них также постоянно (на левой части рисунка ниже).
  2. Когда в комнате появляется человек, он оказывается в зоне действия элемента 1. Тот генерирует положительный электроимпульс (на центральной части картинки).
  3. Перемещение человека приводит и к движению его «теплового пятна», улавливаемого элементом 2. Второй элемент создает отрицательный импульс (правая часть).
  4. Схема датчика регистрирует оба импульса, делая вывод о наличии человека в «поле зрения». А логика контроллера по этому сигналу выполняет заложенное пользователем действие — включает свет, активирует сигнализацию и так далее.

Как правило, для защиты соединений и компонентов от электронных и тепловых шумов, воздействия влаги и высокой температуры их помещают в герметичный корпус. Верхняя часть его содержит прямоугольное «окно» из ИК-прозрачного материала для свободного доступа теплового излучения.

KY-009, модуль RGB SMD светодиода

Модуль RGB SMD светодиода

 Заменяется на модуль 2020 или 5050 RGB SMD. Стоимость начинается от 1 р за штуку, высылается правда большими партиями, но если поискать то можно найти и поштучно, сам же модуль от 50 р.
 Довольно привлекательный модуль для начинающих. Позволяет работать с RGB матрицей и получать буквально все цвета светового спектра используя ШИМ выходы контроллера. Поставляется БЕЗ токоограничивающих резисторов, поэтому при установке не забудьте их установить. Возможно заменить на обычный RGB светодиод, все зависит от предназначения и места установки. Недостаток- занимает сразу 3 ШИМ выхода микроконтроллера для полноценной работы. Достоинства- можно визуализировать процесс переключением цветов светодиода. Например: зеленый- работа, красный- остановка или аварийный стоп, синий- настройка и т.д. Кроме того в устройствах с температурными датчиками можно визуализировать степень нагрева термоэлемента. Т.е. чем большую температуру имеет датчик тем «краснее» светодиод и наоборот, чем холоднее- тем «синее».

Суть проекта

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

Что понадобится?

  • Любая плата Arduino (у меня Uno);

  • Ультразвуковой дальномер HC-SR04;

  • OLED-дисплей на 0,96 дюймов;

  • Соединительные провода;

  • Макетная плата.

Калибровка

Чтобы получать от датчика уровня воды точные показания, рекомендуется сначала откалибровать его для конкретного типа воды, которую вы планируете контролировать.

Как вы знаете, чистая вода не проводит электрический ток. На самом деле, проводящей ее делают минералы и примеси. Таким образом, ваш датчик может быть более или менее чувствителен в зависимости от типа используемой воды.

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

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

Например, используя ту же схему, что и выше, вы увидите в мониторе последовательного порта значения, близкие к следующим:

  • когда датчик сухой: 0;
  • когда он частично погружен в воду: ~420;
  • когда он полностью погружен: ~520.

Рисунок 6 – Калибровка датчика уровня воды

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

1Описание и принцип действия ИК датчика препятствий

Инфракрасное (ИК) или infrared (IR) излучение – это невидимое человеческим глазом электромагнитное излучение в диапазоне длин волн от 0,7 до 2000 мкм. Вокруг нас существуют огромное количество объектов, которые излучают в данном диапазоне. Его иногда называют «тепловое излучение», т.к. все тёплые предметы генерируют ИК излучение.

Длины волн разных типов электромагнитного излучения

Модули на основе ИК излучения используются, в основном, как детекторы препятствий для различного рода электронных устройств, начиная от роботов и заканчивая «умным домом». Они позволяют обнаруживать препятствия на расстоянии от нескольких сантиметров до десятков сантиметров. Расстояние до препятствия при этом определить с помощью ИК-сенсора невозможно.

Если оснастить, для примера, своего робота несколькими такими ИК модулями, можно определять направление приближения препятствия и менять траекторию движения робота в нужном направлении.

Модуль сенсора обычно имеет излучатель (светодиод) и детектор (фотодиод) в инфракрасном диапазоне. Инфракрасный светодиод излучает в пространство ИК излучение. Приёмник улавливает отражённое от препятствий излучение и при определённой интенсивности отражённого излучения происходит срабатывание. Чтобы защититься от видимого излучения, фотодиод имеет светофильтр (он выглядит почти чёрным), который пропускает только волны в инфракрасном диапазоне. Разные поверхности по-разному отражают ИК излучение, из-за чего дистанция срабатывания для разных препятствий будет отличаться. Выглядеть ИК модуль может, например, вот так:

Модуль с ИК излучателем и ИК приёмником

Когда перед сенсором нет препятствия, на выходе OUT модуля напряжение логической единицы. Когда сенсор детектирует отражённое от препятствия ИК излучение, на выходе модуля напряжение становится равным нулю, и загорается зелёный светодиод модуля.

Помимо инфракрасного свето- и фотодиода важная часть модуля – это компаратор LM393 (скачать техническое описание на LM393 можно в конце статьи). С помощью компаратора сенсор сравнивает интенсивность отражённого излучения с некоторым заданным порогом и устанавливает «1» или «0» на выходе. Потенциометр позволяет задать порог срабатывания ИК датчика (и, соответственно, дистанцию до препятствия).

Подключение датчика препятствия к Arduino

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • датчик препятствия KY-032;
  • беспаечная макетная плата;
  • светодиод и резистор;
  • провода «папа-мама», «папа-папа».

Схема подключения датчика препятствия к Ардуино

Для подключения датчика обнаружения препятствий к Arduino имеется три или четыре контакта. Два контакта на модуле KY-032 служат для питания от 5V (схему подключения датчика смотри на картинке выше). Еще два контакта формируют импульсы для платы Arduino Mega или Arduino Uno. Для примера работы рассмотрим скетч, который будет включать светодиод при появлении препятствия.

Счетч для датчика препятствий (KY-032)

#define  avoidPin  A1 // задаем имя для порта с датчиком#define  ledPin  13     // задаем имя для порта со светодиодомint  avoid;    voidsetup() {     Serial.begin(9600);  // инициализация монитора портаpinMode(avoidPin, INPUT);     pinMode(ledPin, OUTPUT);  }    voidloop() {       avoid = digitalRead(avoidPin);  // получаем данные с датчика препятствийSerial.print("Avoid Sensor - ");  // выводим данные с датчика на мониторSerial.println(avoid);       if (avoid == HIGH)        digitalWrite(ledPin, HIGH);     elsedigitalWrite(ledPin, LOW);  }

Пояснения к коду:

  1. для приема сигнала с датчика KY-032 используется порт A1, который можно поменять в программе на любой порт общего назначения;
  2. датчик отправляет сигнал «логическая единица» при появлении препятствия.

Для создания шагающего робота или автономной машинки на Ардуино сенсор KY-032 отлично подойдет начинающему программисту. Датчик препятствия более прост в настройке и подключении к микроконтроллеру, в отличии от УЗ дальномера HC-SR04. При этом сенсор хорошо справляется с распознаванием объектов перед ним и может использоваться в машинках для объезда препятствий или езде по лабиринту.

  • https://robotclass.ru/tutorials/arduino-proximity-sensor/
  • https://soltau.ru/index.php/arduino/item/553-kak-podklyuchit-infrakrasnyj-sensor-k-arduino
  • https://xn--18-6kcdusowgbt1a4b.xn--p1ai/%d0%b4%d0%b0%d1%82%d1%87%d0%b8%d0%ba-%d0%bf%d1%80%d0%b5%d0%bf%d1%8f%d1%82%d1%81%d1%82%d0%b2%d0%b8%d1%8f-%d0%b0%d1%80%d0%b4%d1%83%d0%b8%d0%bd%d0%be/

Принцип работы

Скорость распространения звука конечна для разных сред. К тому же, он отражается от предметов. В жизни мы слышим последнее в качестве эха. Вычисляя разницу между отправкой звуковой волны и временем ее возврата, легко получают расстояние до отразившего его препятствия в конкретной среде. Настоящий принцип и используется на Ардуино датчиках. Конечно, небольшие различия будут в зависимости от текущей температуры или изменившегося давления в окружающем пространстве. Их учитывает микроконтроллер при обработке времени ответа, для получения более точных сведений о расстоянии.

Разница ультразвукового сонара от прочих излучателей слышимых колебаний в направленности действия. Волна двигается от него в определенную сторону, охватывая угол до 15–20° перед прибором. Оттуда же ожидается эхо-возврат, отраженный от препятствия. С целью уменьшения влияния сторонних помех на сигнал используется звук с частотой в 40 КГц, не слышимый человеческим ухом.

Недостатки

В силу отработанности аппаратной платформы, хорошо документированных схем, простоты разработки ПО и дешевизны PIR-датчики на Ардуино не обладают особыми недостатками в рамках возлагаемых на них задач. Возможности их применения ограничиваются естественными пределами ИК-технологии, периферийным оборудованием и заложенными в прошивку контроллера функциями.

Из недостатков отметим долгую инициализацию: многим образцам на переход в рабочий режим после первого включения требуется около минуты, на протяжении которой велик шанс ложных срабатываний. Кроме того, они не способны отличить человека от другого теплого объекта; для этого требуется иной класс устройств.

Подключение фоторезистора к ардуино

В проектах arduino фоторезистор используется как датчик освещения. Получая от него информацию, плата может включать или выключать реле, запускать двигатели, отсылать сообщения. Естественно, при этом мы должны правильно подключить датчик.

Схема подключения датчика освещенности к ардуино довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения. Одно плечо меняется от уровня освещённости, второе –  подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к. сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.

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

Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере – АО). К этой же ноге подключаем резистор 10 кОм. Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.

Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем. Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения – для предсказуемых значений на аналоговом порту. На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.

Меняя значение резистора мы можем “сдвигать” уровень чувствительности в “темную” и “светлую” сторону.  Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.

Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.

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

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

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

Модуль ИК дальномера KY-032

Модуль предназначен для обнаружения препятствий без непосредственного контакта с ними. На печатной плате модуля располагается ИК-светодиод и ИК-фотоприемник, когда интенсивность отраженного от препятствия излучения превышает заданный порог, формируется сигнал срабатывания датчика.

Модуль имеет размер 45 х 16 х 12 мм, массу 4 г, в печатной плате модуля предусмотрено крепежное отверстие диаметром 3 мм. На плате имеется четырехконтактный разъем, через который осуществляется питание модуля и передача информации. Назначение выводов разъема следующее: «GND» — общий провод, «+»– питание +5В, «OUT» — информационный выход, «EN» — управление режимом работы. Для индикации подачи питания на датчик служит светодиод «Pled», при срабатывании загорается светодиод «Sled».

На информационном цифровом выходе «OUT» появляется низкий логический уровень, если в поле зрения датчика имеется препятствие, иначе на выходе высокий логический уровень. В этом можно убедиться, загрузив в память Arduino UNO программу AnalogInput2, тогда при срабатывании датчика в мониторе последовательного порта программы Arduino IDE будет наблюдаться следующая картина.

По данным продавцов , датчик может обнаруживать препятствия на расстоянии от 2 до 40 см. Автору настоящего обзора удалось добиться срабатывания датчика на расстоянии 5,5-3,5 см от белого препятствия (лист бумаги). Черную шероховатую поверхность (бокс CD-дисков) датчик не видит совсем, черную глянцевую поверхность датчик регистрирует расстояния около 2 см.

Согласно документации, для настройки частоты модуляции ИК-импульсов на частоту 38 кГц служит подстроечный резистор промаркированный 103, а для регулирования чувствительности датчика следует использовать подстроечный резистор промаркированный 507. как хорошо видно на предыдущих фотографиях на плате доставшейся автору оба переменных резистора имеют маркировку 103. Возможно это брак в данном конкретном устройстве. Может быть этим и объясняется малая дальность действия датчика.

Датчик потребляет ток 4-5 мА в рабочем режиме и 5-6 мА при срабатывании. Если настроить датчик на минимально расстояние срабатывания, то можно немного уменьшить ток потребления (примерно на 1 мА). На данной фотографии, также видно, сто при срабатывании датчика загорелся светодиод «Sled».

По описанию этого датчика вывод «EN» служит для управления режимом работы при снятой перемычке. При низком логическом уровне на входе «EN» датчик включен, при высоком логическом уровне модуль дальномера находится в спящем режиме с пониженным энергопотреблением.

Таким образом, с одно стороны датчик можно использовать по назначению, однако по факту этот датчик не превосходит более простые ИК-датчики расстояния

Заключение

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

Находят они применение и в системах сигнализации и видеонаблюдения: по сигналу включается оповещение или запись события. Гибкость Arduino позволяет реализовать даже очень сложные проекты, например, включения сенсора в экосистему «умного дома». Хотя существуют и более продвинутые лазерные, ультразвуковые и тепловизионные варианты, ИК-детекторы в данной сфере остаются самым доступным и простым решением.