Как работает pir датчик hc-sr501, и его взаимодействие с arduino

Использование

  • После сборки и прошивки устройство требует загрузки конфигурации (с помощью утилиты).
  • При подключении к USB нормальная работа устройства приостанавливается, очередь неотправленных сообщений очищается.
  • При неудачной отправке SMS, устройство произведет повторную попытку через 2 минуты, затем через 5, 10, 20, дважды через 40 и затем каждые 12 часов.
  • После принятого звонка, он будет завершен через 3 минуты.
  • Звуковая сигнализация включается на 30 секунд.
  • События «открытие двери», «движение» и «изменения освещения» срабатывают не чаще, чем раз в 20 мин.
  • Если питание устройства отсутствует более 3 часов, то записанная история измерения температуры сбрасывается.

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

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

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

Устройство и характеристики

Устройство отправляет SMS при возникновении следующих событий:

  • открытие двери (герконовый датчик);
  • резкое изменение освещения (фоторезистор);
  • движение (PIR датчик);
  • выход температуры из заданного диапазона;
  • низкое напряжение батареи.

Пример SMS с событием

Также, раз в сутки можно настроить время ежедневного отчета

Питается устройство от 3-х батареек AA. Расчетное время работы ≥6мес.

Настройка устройства, считывание логов событий и построение месячного графика температуры происходит с помощью утилиты (Python 2.7 + Tk + pyserial + matplotli).

Основное окно утилиты настройки

Окно лога событий

Окно лога температуры

Пример работы

Рассмотрим ситуацию использования датчика на примере микроконтроллера Ардуино Уно и сенсора HC-SR501. Его характеристики:

  • рабочее напряжение постоянного тока — 4.5–20 В;
  • ток покоя —  ≈ 50 мкА;
  • выходное напряжение — 3.3 В;
  • диапазон температур — от −15 до +70 градусов Цельсия;
  • габариты — 32×24 мм;
  • угол детектирования — 110 градусов;
  • дистанция срабатывания — до 7 метров.

В указанном сенсоре установлены два пироэлектрических датчика IRA-E700.

Сверху они прикрыты сегментированной полусферой. Каждый сегмент — фокусирующая тепло на определенный участок ПИР-датчика линза.

Внешний вид устройства:

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

Настройка

ИК-модуль HC-SR501 весьма прост в настройке и дешев. У него есть перемычка для конфигурирования режима и пара подстроечных резисторов. Общая чувствительность настраивается первым потенциометром: чем она выше, тем шире зона «видимости» гаджета».

Другой потенциометр управляет временем срабатывания устройства: если обнаружено перемещение, на выходе создается положительный электрический импульс определенной длины (от 5 до 300 секунд).

Следующий управляющий элемент — перемычка. От нее зависит режим работы.

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

Соединение датчика с контроллером

Подключение датчика движения к Ардуино следует выполнять по указанной схеме:

Пин OUT соединяется с пином 2 Уно, а VCC подсоединено к контакту +5 В. Принципиальная схема конструкции:

Программная часть

Помимо контроллера, для функционирования оборудования необходима управляющая аппаратным комплексом программа. Ниже приведен простой скетч:

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

Модифицируем устройство добавлением реле, которое станет включать свет. Принципиальная схема подключения:

Макет:

Программа для реализации данного функционала:

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

Общие сведения

Любой человек или животное с температурой выше нуля испускает тепловую энергию в виде излучения. Это излучение не видно человеческому глазу, потому что оно излучается на инфракрасных волн, ниже спектра, который люди могут видеть. Измерение этой энергии, не то же самое, что измерять температуру. Так как температура зависит от теплопроводности, поэтому, когда человек входит в комнату, он не может мгновенно изменить температуру в помещении. Однако есть уникальная инфракрасное излучение из-за температуры тела и которую ищет PIR датчик.
Принцип работы инфракрасного датчика движения HC-SR501 прост, при включении, датчик настраивается на «Нормальную» инфракрасное излучение в пределах своей зоны обнаружения. Затем он ищет изменения, например человек прошел или переместился в пределах контролируемой зоны. Для определения инфракрасного излечение детектор использует пироэлектрический датчик. Это устройство, которое генерирует электрический ток в ответ на прием инфракрасного излучения. Поскольку датчик не излучает сигнал (например, ранее упомянутый ультразвуковой датчик), его наказывают «пассивным». Когда обнаружено изменение, датчик HC-SR501 изменяет выходной сигнал.

Для повышения чувствительности и эффективности датчика HC-SR501 используется метод фокусировки инфракрасного излечения на устройство, достигается, это с помощью «Линзы Френеля». Линза выполнен из пластика и выполнена в виде купола и фактически состоит из нескольких небольших линз Френеля. Хоть пластик и полупрозрачен для человека, но на самом деле полностью прозрачен для инфракрасного света, поэтому он также служит в качестве фильтра.

HC-SR501 — недорогой датчик PIR, который полностью автономный, способный работать сам по себе или в сопряжении с микроконтроллером. Датчик имеет регулировку чувствительности, которая позволяет определять движение от 3 до 7 метров, а его выход можно настроить так, чтобы он оставался высоким в течение времени от 3 секунд до 5 минут. Так же, датчике имеет встроенный стабилизатор напряжения, поэтому он может питаться от постоянного напряжения от 4,5 до 20 вольт и потребляет небольшое количество тока. HC-SR501 имеет 3-контактный разъем, назначение следующие:

Назначение выводов► VCC — положительное напряжение постоянного тока от 4,5 до 20 В постоянного тока.
► OUTPUT — логический выход на 3,3 вольта. LOW не указывает на обнаружение, HIGH означает, что кто-то был обнаружен.
GND — заземление.

На плате также установлены два потенциометра для настройки нескольких параметров:►  SENSITIVITY — устанавливает максимальное и минимальное расстояние (от 3 метров до 7 метров).►  TIME (ВРЕМЯ) — время, в течение которого выход будет оставаться HIGH после обнаружения. Как минимум, 3 секунды, максимум 300 секунд или 5 минут.

Назначение перемычек:►  H — это настройка Hold или Repeat. В этом положении HC-SR501 будет продолжать выдавать сигнал HIGH, пока он продолжает обнаруживать движение.►  — Это параметр прерывания или без повтора. В этом положении выход будет оставаться HIGH в течение периода, установленного настройкой потенциометра TIME.

На плате HC-SR501 имеются дополнительные отверстия для двух компонентов, рядом расположена маркировка, посмотреть на нее можно сняв линзу Френеля.

Назначение дополнительных отверстий:►  RT — это предназначено для термистора или чувствительного к температуре резистора. Добавление этого позволяет использовать HC-SR501 в экстремальных температурах, а также в некоторой степени повышает точность работы детектора.►  RL — это соединение для светозависимого резистора или фоторезистора. Добавляя компонент, HC-SR501 будет работать только в темноте, что является общим приложением для чувствительных к движению систем освещения.

KY-002, датчик вибрации SW-18015P

KY-002 внешний вид

KY-002 схема датчика

 Датчик вибрации стоит около 7 р, сама плата датчика от 60 р за шт.
 Применяется в схемах где необходимо слежение за вибрацией, т.е., например, в схемах автосигнализации на вибрацию корпуса или в производственных схемах за слежением вибрации. У меня такого датчика нет но вероятно устройство следующее: представляет собой трубку в трубке, причем внутренняя трубка имеет некоторые свободный ход. Вероятно подвешена на пружине (в принципе изготовление «на коленке» займет от силы 10 минут). При вибрации внутренняя трубка начинает колебаться и, таким образом, касается стенок наружной трубки. Эти касания подают на выход датчика логический ноль, в то время как в состоянии отсутствия вибрации на выходе логическая единица. Пример обработки сигналов дачтчика вибрации можете посмотреть ЗДЕСЬ.

Управляем освещением при помощи датчика освещенности

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

  • Arduino UNO — одна из разновидностей плат ардуино;
  • Блок реле SRD-12VDC-SL-C;
  • Резистор на 10 кОм;
  • Фоторезистор (выступает в роли датчика освещенности);
  • Arduino IDE — программное обеспечение для загрузки микрокода в микроконтроллер Arduino;
  • Лампочка, подключаемая к сети 220 вольт.

Первым делом соберем схему с помощью этих компонентов изображенную ниже.

Теперь откроем Arduino IDE и внесем в нее такой код:
Этот код не предназначен для включения нашей лампочки. С помощью этого кода мы проверим наш датчик освещенности. Поэтому загрузим этот код в Arduino UNO и откроем «Монитор порта».

В «Мониторе порта» видно, что мы получаем значения с фоторезистора, а это значит, что он нормально функционирует. Теперь пришло время загрузить основной код для автоматического управления светом. Для этого вставьте этот код в Arduino IDE:
Принцип работы этого скетча основан на условном операторе, при котором выполняется условие «s2 < 700». Это условие означает, что при значении датчика меньше 700 лампочка будет включаться, а если значение больше 700, то лампочка отключится. Из примера видно, как легко можно создать адаптивную систему автоматического освещения.

Так что же это такое Датчик движения Ардуино?

Это PIR датчик. PIR(Passive Infrared) ,что значит «пассивный инфракрасный» датчик. Пассивный — это потому что датчик  не излучает, а только принимают излучение. Поэтому такие датчики очень экономичны. Потребления всего 50µА. Работают датчики на основании изменения температур. Любой предмет излучает инфракрасные волны которые не видны человеческому глазу. Человек или животное(даже маленькая кошка) ни кто не пройдёт мимо датчика. Охотникам за приведениями этот датчик не подойдёт -(.

Характеристики датчика движения HC-SR501

Рабочее напряжение: 5V до 20V(может работать и от 4,5V)
Потребляемая мощность в работающем состоянии:50mA 
В режиме ожидания

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

Бесконтактный датчик движения hc sr501 может работать отдельно, сам по себе, но лучше всего его использовать в связке с любой из плат Ардуино , с  радиомодулем nRF24L01+ или WiFi модуль ESP8266 ESP07. Тогда можно достичь значительно больших результатов. Подробнее смотрите в  Подключении и на странице видео.
При первом включении(подаче напряжения) датчик движения начнёт калиброваться. Приблизительное время 60сек(1мин). После этого датчик готов к работе. Между срабатыванием существует задержка приблизительно 5 секунд, в это время датчик не среагирует на движение, но запомнит его и как только пройдёт время задержки, то он включится даже если и не будет никакого движения. Если для вас это неприемлемо, то можно установить 2 датчика движения и настроить их на разное время срабатывания, например один на 20 сек, а второй на 30 сек.

                                    Вид сверху                                                                                             Вид снизу                                        

                                

Со снятой линзой Френеля

 С установленным фоторезистором                                     Регулировка чувствительности и времени

                          

Инфракрасный датчик движения hc sr501 схема подключения

У датчика есть 3 вывода:
VCC  + положительный контакт источника питания от 4,5V до 20V
OUT  S выходной сигнал с датчика движения есть движение +3,3V(HIGH), нет движения 0V(LOW)
GND  — отрицательный контакт источника питания

Расширить сферу применения датчика движения hc sr501 можно добавив всего 1 деталь, Фоторезистор GL5506. Если припаять его на датчик движения, для этого там есть отверстия, то теперь датчик будет срабатывать только если будет темно***.

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

В режиме ожидания  на выходе датчика движения будет 0V(логический ноль). Как только датчик среагирует на какое-нибудь движение то на выходе станет 3,3V(логическая единица). В зависимость от установленного режима H или L режим работы будет разный. Устанавливается перемычкой.
если:
Н — повторяющийся. Датчик не отключится пока есть движение. Когда движение прекратится, то он выключится когда закончится установленное время работы.
L — не повторяющийся. Когда закончится установленное время работы датчик отключится, перейдёт в 0V, даже если будет движение. Затем если датчик «увидит» движение то он снова включится. 

Схему подключения датчика движения на 5 вольт можно посмотреть здесь, а на 12 вольт здесь.
Чтобы включать нагрузку на 220 вольт  с  hc sr501 нужно взять реле. Теперь мы сможем управлять светом, включать вентилятор, включить прожектор на даче или свет на фонарном столбе.

Очень удобно использовать датчик hc sr501 для ночника.

Вот некоторые отзывы о датчике.

  • Датчик надёжный, простой в использовании. Работает уже примерно год. Ложных срабатываний не было. Илья.
  • Чувствительный. Срабатывает даже на кошку. Пётр.
  • Дешёвый, надёжный, незаметный. Установил в подъезде. Работал всю зиму. Евгений.
  • было ещё много отзывов. 

PS
Датчики движения hc sr501 имеют высокую чувствительность, устойчивость к различным помехам,  очень надежны, практически отсутствуют ложные срабатывания. И самое главное они НЕДОРОГИЕ. Позволяют сэкономить ваши деньги. 

* Время работы  от батарейки в ждущем режиме примерно год. Это в тепличных условиях, на самом деле зависит от многих факторов.**Линза Френеля — представляет собой оптическую деталь со сложной ступенчатой поверхностью. *** Нет возможности настроить срабатывание датчика от степени освещённость. Если есть такая необходимость, то надо применять совместно с Ардуино.

[video:https://www.youtube.com/watch?v=ESuqam50-CI]
[video:https://www.youtube.com/watch?v=q8EshE8bCTU]

Функциональное дополнение

Датчики Arduino или Steinel ir quattro com1 (плата) могут быть дополнены разнообразными сенсорами и улавливающими устройствами (функциональное дополнение). Благодаря этому возможно некоторое расширение сферы применения таких приборов. Например, они могут применяться в автоматизации физических процессов и приборостроении, подсчете числа пассажиров и т.д.
Помимо этого Arduino или Steinel ir quattro com1 наиболее часто применяются в проектах «умный дом» с целью автоматизации домашних и бытовых процессов. Также в последнее время Arduino стали широко использоваться в робототехнике.

Установленный Arduino (схема)

Еще одной сферой применения Arduino являются охранные системы. С его помощью происходит включение камер видеонаблюдения, звуковой системы оповещения или освещения. Стоит отметить, что в охранной области датчики Arduino востребованы более всего.
Также данное устройство используется в качестве дальномера. С его помощью можно измерять дальность в области 5 метров. При этом точность составит до 1 см. На такое способны ультразвуковые датчики, работающие как акустический локатор небольшой мощности.Использование в домашних условиях датчика присутствия различных моделей (Steinel или Arduino) позволит вам повысить эффективность освещения и сделать его более экономичным. Здесь главное провести правильную установку и настройку прибора на работу в заданной области. Подбирайте для помещений те модели датчиков и по тем параметрам, которые позволят ему наиболее эффективно выполнять свою работу – освещать помещение при повелении в нем человека.

https://youtube.com/watch?v=LuqfaNJFFFg%2520

Инфракрасный датчик препятствий 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.

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

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

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

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

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

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

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

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

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

Обзор

Инфракрасные (ИК, IR) датчики обычно используются для измерения расстояний, но их также можно использовать и для обнаружения объектов. ИК-датчики состоят из инфракрасного передатчика и инфракрасного приемника. Передатчик выдает импульсы инфракрасного излучения в то время, как приемник детектирует любые отражения. Если приемник обнаруживает отражение, это означает, что перед датчиком на некотором расстоянии есть какой-то объект. Если отражения нет, нет и объекта.

IR-датчик, который мы будем использовать в данном проекте, обнаруживает отражение в определенном диапазоне. Эти датчики имеют небольшое линейное устройство с зарядовой связью (CCD), которое детектирует угол, с которым ИК-излучение возвращается к датчику. Как показано на рисунке ниже, датчик передает инфракрасный импульс в пространство, а когда перед датчиком появляется объект, импульс отражается обратно к датчику под углом, пропорциональным расстоянию между объектом и датчиком. Приемник датчика детектирует и выводит угол, и, используя это значение, вы можете рассчитать расстояние.

Принцип действия инфракрасного датчика расстояния

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

3Скетч Arduino для инфракрасного датчика препятствий

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

const int ir = A7;

void setup() {
  Serial.begin(115200);  
}

void loop() {
  int r = analogRead(ir); // r в диапазоне от 0 до 1023
  Serial.println(r);
  if (r < 100) { // т.к. используется аналоговый пин Arduino
    Serial.println("Detected!");
  }
  delay(100);
}

Напомню, в Arduino используется 10-разрядный АЦП, поэтому значение аналогового сигнала кодируется числом в диапазоне от 0 до 1023. При использовании аналогового входа Arduino предельные значения «0» или «1023» мы вряд ли получим с датчика, поэтому лучше использовать некоторый порог, например, равный 100 (поэтому в скетче r < 100). При использовании же цифрового вывода Arduino для чтения показаний инфракрасного датчика, можно можно написать (r == LOW) или (r == 0) или (r < 1).

Хорошая статья про аналоговые измерения на Arduino.

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

Исходный код программы

В представленном участке кода мы производим измерение времени с помощью функции pulseIn(pin). Затем после выполнения необходимых вычислений мы показываем результат на ЖК дисплее 16×2.

Далее приведен полный текст программы.

Arduino

#include <LiquidCrystal.h> //подключаем библиотеку для работы с ЖК дисплеем
#define trigger 18
#define echo 19

LiquidCrystal lcd(2,3,4,5,6,7); // контакты, к которым подключен ЖК дисплей

float time=0,distance=0;

void setup()
{
lcd.begin(16,2);
pinMode(trigger,OUTPUT); //на вывод данных
pinMode(echo,INPUT); // на ввод данных
lcd.print(» Ultra sonic»);
lcd.setCursor(0,1);
lcd.print(«Distance Meter»);
delay(2000);
lcd.clear();
lcd.print(» Circuit Digest»);
delay(2000);
}

void loop()
{
lcd.clear();
digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10); // импульс длительностью 10 мкс чтобы запустить ультразвуковой датчик в работу
digitalWrite(trigger,LOW);
delayMicroseconds(2);
time=pulseIn(echo,HIGH); // считываем время (третий график на временных диаграммах в тексте статьи
distance=time*340/20000; // пересчитываем время в расстояние
lcd.clear();
lcd.print(«Distance:»);
lcd.print(distance);
lcd.print(«cm»);
lcd.setCursor(0,1);
lcd.print(«Distance:»);
lcd.print(distance/100); // выводим значение расстояния на экран ЖК дисплея
lcd.print(«m»);
delay(1000);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

#include <LiquidCrystal.h> //подключаем библиотеку для работы с ЖК дисплеем
#define trigger 18
#define echo 19

LiquidCrystallcd(2,3,4,5,6,7);// контакты, к которым подключен ЖК дисплей

floattime=,distance=;

voidsetup()

{

lcd.begin(16,2);

pinMode(trigger,OUTPUT);//на вывод данных

pinMode(echo,INPUT);// на ввод данных

lcd.print(» Ultra sonic»);

lcd.setCursor(,1);

lcd.print(«Distance Meter»);

delay(2000);

lcd.clear();

lcd.print(» Circuit Digest»);

delay(2000);

}

voidloop()

{

lcd.clear();

digitalWrite(trigger,LOW);

delayMicroseconds(2);

digitalWrite(trigger,HIGH);

delayMicroseconds(10);// импульс длительностью 10 мкс чтобы запустить ультразвуковой датчик в работу

digitalWrite(trigger,LOW);

delayMicroseconds(2);

time=pulseIn(echo,HIGH);// считываем время (третий график на временных диаграммах в тексте статьи

distance=time*34020000;// пересчитываем время в расстояние

lcd.clear();

lcd.print(«Distance:»);

lcd.print(distance);

lcd.print(«cm»);

lcd.setCursor(,1);

lcd.print(«Distance:»);

lcd.print(distance100);// выводим значение расстояния на экран ЖК дисплея

lcd.print(«m»);

delay(1000);

}

Заключение

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

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