Инфракрасный датчик движения Ардуино: принцип работы

Вопросы и ответы
Содержание
  1. Список деталей для сборки модели
  2. Основные принципы работы
  3. Пассивный инфракрасный датчик: как он работает?
  4. Пример №1: HC-SR501 как самостоятельное устройство.
  5. Настройка HC-SR501
  6. Использование PIR датчика в качестве автономного устройства
  7. Схема подключения PIR-датчика к Arduino
  8. PIR детектор движения HC-SR501
  9. Скетч Arduino для инфракрасного датчика препятствий
  10. Arduino скетч
  11. Повышение универсальности PIR датчика HC-SR501
  12. Управление светом при помощи датчика движения
  13. Пример программы
  14. Пример №2: HC-SR501 добавление фоторезистора
  15. Установка Python и PySerial
  16. Установка Python на Windows
  17. Инфракрасный датчик расстояния Ардуино
  18. Схема подключения датчика движения к Ардуино
  19. Принцип работы пироэлектрических (PIR) датчиков движения
  20. Конструкция PIR датчика
  21. Линзы
  22. Где можно применить
  23. Подключение HC-SR501 к Ардуино Уно
  24. Программа
  25. Базовые технические характеристики
  26. Общие сведения
  27. Код на Python
  28. Распиновка PIR датчика HC-SR501
  29. Подключение ИК датчика препятствийк Arduino
  30. Подключение PIR датчика к Arduino UNO
  31. Схема соединения

Список деталей для сборки модели

Для сборки проекта, описанного в этом руководстве, необходимы следующие части:

  • Arduino UNO или аналог (подробнее о том, как выбрать Arduino, см. Здесь);
  • Датчик PIR (он подходит за 2 доллара);
  • bradboard (можно приобрести за 2,4 доллара);
  • нитки папа-папа (можно купить такую ​​упаковку с большим запасом).

Arduino UNO

Arduino UNO

Датчик PIR

Датчик PIR

Bradboard

Bradboard

Папа-папа темы

Папа-папа темы

Вам также понадобится компьютер с подключением к Интернету, через который мы будем отправлять электронные письма! Роль компьютера в этом уроке может играть Raspberry Pi.

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

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

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

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

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

датчик

Пассивный инфракрасный датчик: как он работает?

Пассивный инфракрасный датчик (PIR-датчик) — это электронный датчик, который измеряет инфракрасный (IR) свет, излучаемый объектами в его поле зрения. Чаще всего они используются в датчиках движения на основе PIR. Все объекты с температурой выше абсолютного нуля излучают тепловую энергию. Обычно это излучение не видно человеческому глазу, потому что оно излучается в инфракрасном диапазоне длин волн, но оно может быть обнаружено электронными устройствами, предназначенными для этой цели.

Термин «пассивный» в данном случае относится к тому факту, что устройства PIR не генерируют и не излучают энергию для целей обнаружения. Они работают, обнаруживая инфракрасное излучение, испускаемое или отраженное объектами. Они не обнаруживают и не измеряют тепло.

TPA81 — это матрица термопар, которая обнаруживает инфракрасное излучение в диапазоне от 2 мкм до 22 мкм. Это длина волны источника тепла. Пироэлектрические датчики, обычно используемые в охранной сигнализации и для активации внешних источников света, обнаруживают инфракрасное излучение в том же диапазоне длин волн. Эти пироэлектрические датчики могут только обнаруживать изменения уровня тепла и, следовательно, являются датчиками движения.

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

Другой тип датчика — это серия термопар. Они используются в бесконтактных инфракрасных термометрах. Они имеют очень широкий угол обзора или поле зрения (FOV) около 100 ° и нуждаются в ограничителе или линзе или и том и другом, чтобы получить более полезный FOV около 12°.

У некоторых есть встроенная цель. Недавно стали доступны датчики с различными термопарами, встроенной электроникой и силиконовыми линзами. Этот тип используется в TPA81. Он имеет серию из восьми тепловых полей, расположенных в ряд. TPA81 может измерять температуру в 8 соседних точках одновременно. TPA81 также может управлять сервоприводом для панорамирования модуля и создания теплового изображения. TPA81 способен обнаруживать пламя свечи на расстоянии до 2 метров (6 футов) и не подвергается воздействию окружающего света.

Датчики PIR похожи на камеры, которые могут видеть только горячие объекты. Итак, TPA81 — это 8-пиксельная тепловизионная камера, и, конечно же, человеческое тело всегда излучает тепло. Теперь, если мы будем управлять датчиком PIR с помощью контроллера и определить некоторые жесты для датчика PIR, мы можем создать простой датчик жестов.

В этом уроке мы создадим детектор жестов с использованием PIR и Arduino. Мы использовали TPA81 в качестве PIR, но это немного дорого, поэтому, если вы хотите сэкономить, вы можете использовать 8 простых белых PIR-датчиков без головы (фокусирующая часть). TPA81 поддерживает протокол I2C и совместим с Arduino Nano. Этот проект поможет вам изучить основы обработки изображений и распознавания жестов.

Пример №1: HC-SR501 как самостоятельное устройство.

Обязательные реквизиты:

  • Датчик движения HC-SR501 x 1 шт.
  • Релейный модуль (1 канал) x 1 шт.
  • Транзистор 2SC1213 х 1 шт.
  • Лампа 220В (75Вт) с цоколем x 1 шт.
  • Блок питания 5В х 1 шт.
  • Кабель DuPont, 2,54 мм, 20 см, FM (мама-папа) x 1

Связь:
Когда HC-SR501 включен, требуется калибровка, занимает от 30 до 60 секунд, у датчика также есть период «сброса» примерно 6 секунд (после срабатывания), в течение которого он не реагирует на движение. В этом примере мы используем HC-SR501 и модуль реле (1-канальный), а также транзистор NPN (в примере используется 2SC1213). Датчик HC-SR501 питается от 5 В, так как реле также требует такого же питания, а в качестве нагрузки используется лампа 220 В. (светодиод), одним из вариантов является использование любого биполярного NPN-транзистора.

Внимание! Соблюдайте технику безопасности и будьте осторожны!

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

Настройка HC-SR501

В этом уроке мы будем использовать модуль HC-SR501. Этот модуль очень распространен и используется во многих проектах DIY из-за его невысокой стоимости.

Датчик имеет два переменных резистора и перемычку для установки режима. Один из потенциометров регулирует чувствительность прибора. Чем он больше, тем больше датчик «видит». Также чувствительность влияет на размер обнаруженного объекта. Например, вы можете исключить из активации собаку или кошку.

SENS-IR-HC-SR501_sh

Второй потенциометр регулирует время отклика T. Если датчик обнаруживает движение, он генерирует на выходе положительный импульс длиной T.

Наконец, третий элемент управления — это перемычка, которая переключает режим датчика. В положении L датчик отсчитывает T от первого включения. Допустим, мы хотим управлять светом в ванной. Войдя в комнату, человек активирует датчик, и свет включится ровно на время T. По окончании периода выходной сигнал вернется в исходное состояние, и датчик даст следующий ответ.

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

Использование PIR датчика в качестве автономного устройства

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

Схема подключения для этого эксперимента очень проста. Батареи подключены к контактам VCC и GND датчика, а небольшой красный светодиод подключен к выходному контакту через ограничивающий ток резистор 220 Ом. И это все!

Теперь, когда PIR обнаруживает движение, выходной контакт становится высоким и загорается светодиод!

Рисунок 9 Схема тестирования для подключения датчика PIR без использования Arduino. Он показывает, как датчик PIR может использоваться в автономных приложениях.
Рисунок 9 — Схема тестирования для подключения датчика PIR без использования Arduino. Он показывает, как датчик PIR может использоваться в автономных приложениях.

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

Схема подключения PIR-датчика к Arduino

В этом проекте вам нужно только подключить датчик PIR к Arduino, поэтому провода датчика можно подключить непосредственно к Arduino. Но так как в этом случае удобнее держать провода немного свободными, используя схему bradboard:

Схема подключения датчика PIR к монтажной плате

Схема подключения датчика PIR к монтажной плате

PIR детектор движения HC-SR501

Для большинства наших проектов Arduino, которые должны определять, когда человек вышел, вошел в зону или приблизился, PIR-датчики HC-SR501 являются отличным выбором. Они маломощные, недорогие, достаточно прочные, имеют широкий выбор линз, с ними легко взаимодействовать, и они безумно популярны среди любителей.

ИК-датчик HC-SR501 имеет три контакта: питание VCC, выход и заземление (показано на рисунке ниже). В него встроен регулятор напряжения, поэтому его можно запитать любым постоянным напряжением от 4,5 до 12 вольт, обычно используется 5В. Кроме того, в нем есть несколько настроек. Давайте взглянем.

Рисунок 4 Распиновка ИК-датчика. Расположение компонентов на плате.
Рисунок 4 — Распиновка ИК-датчика. Расположение компонентов на плате.

На плате есть два потенциометра для установки пары параметров:

  • Чувствительность: устанавливает максимальное расстояние, на котором может быть обнаружено движение. Он колеблется от 3 до 7 метров. Фактическое расстояние, которое вы получите, может зависеть от планировки вашей комнаты.
  • Время — устанавливает время, в течение которого выходной сигнал будет оставаться на высоком логическом уровне после обнаружения. Минимум 3 секунды, максимум 300 секунд или 5 минут.

Наконец, на плате есть перемычка (на некоторых моделях перемычка не припаяна). Имеет два варианта конфигурации:

  • H означает «Удержание / повтор / повторный запуск». В этом положении HC-SR501 будет продолжать обеспечивать высокий логический выход, пока он продолжает обнаруживать движение. Рисунок 5 Работа ИК-датчика HC-SR501 в режиме перезагрузки
    Рисунок 5 — Работа ИК-датчика HC-SR501 в режиме перезагрузки
  • L прерывистый или неповторяющийся / без перезапуска. В этом положении выходной сигнал будет оставаться на высоком логическом уровне в течение времени, установленного регулировкой потенциометра TIME. Рисунок 6 Работа ИК-датчика HC-SR501 в режиме без перезапуска
    Рисунок 6 — Работа ИК-датчика HC-SR501 в режиме без перезапуска

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

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

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

Думаю, вполне понятно, как найти применение такому модулю в ваших проектах. Необходимо периодически опрашивать состояние на выходе модуля, и как только напряжение изменится с ВЫСОКОГО на НИЗКОЕ, предпринять необходимые действия: изменить направление движения робота, включить свет в комнате и т.д.

Arduino скетч

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

Переменная minSecsBetweenEmails может быть изменена на другое разумное значение. В этом примере он установлен на 60 секунд, и электронные письма не будут отправляться более минуты. Переменная lastSend используется для отслеживания времени выполнения последней команды отправки почты. Мы инициализируем его отрицательным числом, равным количеству миллисекунд, указанных в переменной minSecsBetweenEmails. Это гарантирует нам обработку триггера датчика PIR, как только будет запущен скетч Arduino. Цикл использует функцию Millis (), чтобы получить количество миллисекунд от Arduino и сравнить его со временем, прошедшим с момента последнего срабатывания датчика и отправки соответствующего сообщения MOTION. Если сравнение показывает, что с момента последней активации датчика прошло слишком мало времени, несмотря на обнаружение движения, мы отправляем сообщение «Слишком скоро». Перед написанием программы Python для обработки сигнала от Arduino на компьютере или Raspberry Pi через USB вы можете протестировать программу на Arduino, просто открыв Serial Monitor в Arduino IDE.

Монитор последовательного порта Arduino IDE

Монитор последовательного порта Arduino IDE

Повышение универсальности PIR датчика HC-SR501

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

  • RT — предназначен для термистора или термочувствительного резистора. Его добавление позволяет использовать HC-SR501 при экстремальных температурах, а также в некоторой степени повышает точность детектора.
  • RL — это место для подключения светочувствительного резистора (LDR) или фоторезистора. Когда этот компонент добавлен, HC-SR501 будет работать только в темноте, что является обычным приложением для систем освещения, чувствительных к движению.

Дополнительные компоненты можно припаять прямо к плате или доставить в удаленные места с помощью кабелей и разъемов.

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

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

Мы будем использовать релейный модуль с защитой на основе оптической развязки, о которой мы уже говорили в одном из уроков (урок по реле).

Внимание! Эта схема включает лампу от сети 220 вольт. Перед подключением схемы к домашней электросети рекомендуется семь раз проверить все соединения.

Пример программы

Скетч — это программный код, который помогает проверить работоспособность датчика движения после его включения. В простейшем примере много недостатков:

  • Вероятность ложных срабатываний из-за того, что датчику требуется одна минута для самовоспроизведения;
  • Отсутствие выходных устройств исполнительного типа — реле, сирен, светодиодов;
  • Короткий временной интервал сигнала на выходе датчика, который должен быть программно задержан в случае движения.

Эти недостатки устраняются расширением функциональных возможностей датчика.

Эскиз простейшего типа, который можно использовать в качестве примера работы с датчиком движения на Arduino, выглядит так:

Пример №2: HC-SR501 добавление фоторезистора

Обязательные реквизиты:

  • Датчик движения HC-SR501 x 1 шт.
  • Релейный модуль (1 канал) x 1 шт.
  • Транзистор 2SC1213 х 1 шт.
  • Лампа 220В (75Вт) с цоколем x 1 шт.
  • Блок питания 5В х 1 шт.
  • Фоторезистор x 1 шт
  • Кабель DuPont, 2,54 мм, 20 см, FM (мама-папа) x 1

Связь:
В следующем примере мы используем ту же схему, что и в примере n. 1, только мы добавили фоторезистор. Место для фоторезистора находится рядом с выходным разъемом, который отмечен на плате «RL». Его можно припаять прямо к плате или использовать штыревой разъем для простого подключения кабелей Dupont. Главное, чтобы фоторезистор не был закрыт от естественного света помещения, а также защищен от света лампы, которую мы используем в качестве нагрузки. На рисунке ниже показано, где установить фоторезистор.

После установки фоторезистора включите цепь и подождите, пока датчик HC-SR501 откалибруется. Если все подключено правильно (и в комнате горит свет), ничего не произойдет, фоторезистор предотвращает запуск HC-SR501 при освещении комнаты. Теперь выключите свет, и HC-SR501 будет запускаться всякий раз, когда обнаруживает активность.

Установка Python и PySerial

Если в вашем проекте используется компьютер с Linux, например Raspberry Pi, Python уже установлен. Если вы используете компьютер с Windows, вам необходимо установить Python. В любом случае для связи с Arduino необходимо установить библиотеку PySerial.

Установка Python на Windows

Чтобы установить Python в Windows, загрузите установщик с https://www.python.org/downloads/. Сообщалось о проблемах с PySerial в Windows при использовании Python 3, поэтому мы используем Python 2. После установки Python соответствующая группа появляется в меню «Пуск». Но вам нужно будет использовать Python из командной строки для установки PySerial, поэтому добавьте соответствующий каталог в свой Windows PATH. learn_arduino_Python_inst_win_setting_path
Для этого перейдите в Панель управления Windows, найдите Свойства системы. Затем нажмите кнопку с надписью «Переменные среды» и в появившемся окне выберите «Путь» в нижней части «Системные переменные». Нажмите кнопку «Изменить», а затем в конце «Значение переменной», не удаляя существующий текст, добавьте «; C: Pitone27». Не забудь «;» после каждой указанной папки. Чтобы убедиться, что переменная PATH была изменена правильно, введите команду «python» в командной строке. Должно появиться похожее изображение:

Инфракрасный датчик расстояния Ардуино

Датчик расстояния (или препятствия) используется в электронных игрушках или бытовой технике. Он немного отличается от детекторов движения тем, что использует луч света, излучаемый инфракрасным светодиодом, для определения расстояний. Отражаясь от препятствий, луч попадает на датчики, поэтому на выходном электроде отображается сигнал. Его значение зависит от расстояния до препятствия. Рабочая зона относительно небольшая, от 10 до 80 см (самые мощные модели способны записывать отражения препятствий на расстоянии 1,5 м). Однако этого вполне достаточно для оснащения пылесосами, игрушками и прочими бытовыми приборами.

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

Инфракрасный датчик расстояния Arduino

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

Датчик Arduino uno PIRПодключить датчик Pir к Arduino несложно. Чаще всего модули с датчиками движения имеют на тыльной стороне три разъема. Распиновка каждого устройства зависит от производителя, но чаще всего рядом с выводами есть соответствующие надписи. Поэтому перед подключением датчика к Arduino необходимо ознакомиться с обозначениями. Один выход идет на землю (GND), второй обеспечивает вывод сигнала, необходимого датчикам (+ 5В), а третий — цифровой выход, с которого берутся данные.

Подключение пир-датчика:

  • «Земля» — к любому из разъемов GND Arduino;
  • Цифровой выход — на любой цифровой вход или выход Arduino;
  • Питание — + 5В на Ардуино.

Схема подключения инфракрасного датчика к Arduino представлена ​​на рисунке.

Принцип работы пироэлектрических (PIR) датчиков движения

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

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

Когда теплокровный объект (человек или животное) проходит, он проходит через зону чувствительности первого датчика, в результате чего на модуле датчика PIR генерируются два разных значения излучения. Когда человек покидает зону чувствительности первого датчика, значения выравниваются. Это изменения в показаниях двух датчиков, которые регистрируются и генерируют на выходе ВЫСОКИЕ или НИЗКИЕ импульсы.

Принцип работы ИК-датчиков

Конструкция PIR датчика

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

Линзы

Инфракрасные датчики движения практически идентичны по конструкции. Основные отличия — это чувствительность, которая зависит от качества чувствительных элементов. В этом случае немалую роль играет оптика.

На изображении выше показан пример пластиковой линзы. Это означает, что диапазон чувствительности датчика составляет два прямоугольника. Но, как правило, приходится обеспечивать отличные углы обзора. Для этого можно использовать объективы, аналогичные тем, что используются в фотоаппаратах. В этом случае линза датчика движения должна быть маленькой, тонкой и пластиковой, даже если она добавляет шума в измерения. Поэтому в большинстве датчиков PIR используются линзы Френеля (изображение из журнала Sensors):

Линзы Френеля концентрируют излучение, значительно расширяя диапазон чувствительности пиродатчиков (изображение с сайта BHlens.com)

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

На рисунке ниже вы можете увидеть отдельные секции — линзы Френеля:

Пластиковые линзы Френеля на датчике движения PIR

Обратите внимание на то, что на этом макро снимке текстура отдельных линз отличается:

Различная текстура линз Френеля

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

Фотографии из техпаспорта NL11NH:

Ниже еще одна цифра. Ярче, но менее информативно. Также имейте в виду, что большинство датчиков имеют поле обзора 110 градусов вместо 90.

Где можно применить

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

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

Датчики

Подключение HC-SR501 к Ардуино Уно

Для соединения с микроконтроллером или напрямую с реле HC-SR501 имеет три контакта. Подключаем их к Arduino следующим образом:

HC-SR501 GND VCC ИЗ
Ардуино Уно GND + 5В 2

Схематическая диаграмма

IR_motion_scheme

Программа

Как уже упоминалось, цифровой выход датчика HC-SR501 при активации генерирует сигнал высокого уровня. Напишем простую программу, которая будет отправлять «1» на последовательный порт, если датчик обнаруживает движение, и «0» в противном случае.

Загружаем программу на Arduino и проверяем работу датчика. Вы можете изменить настройки датчика и посмотреть, как это отразится на его работе.

Базовые технические характеристики

Большинство датчиков PIR соответствуют следующим параметрам:

  • безопасная зона обнаружения движения — до 7 м;
  • угол сопровождения — до 110 градусов;
  • рабочее напряжение — от 4,5 до 6 В;
  • температурный диапазон — от -20 до +50 градусов;
  • время задержки 0,3-18 сек.

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

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

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

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

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

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

Назначение пина

  • VCC — Положительное напряжение постоянного тока от 4,5 до 20 В постоянного тока.
  • ВЫХОД — логический выход на 3,3 вольта. НИЗКИЙ не означает обнаружение, ВЫСОКИЙ означает, что кто-то был обнаружен.
  • GND — земля.

На плате также есть два потенциометра для настройки различных параметров:

  • ЧУВСТВИТЕЛЬНОСТЬ — установите максимальное и минимальное расстояние (от 3 метров до 7 метров).
  • ВРЕМЯ — время, в течение которого выход будет оставаться ВЫСОКИМ после обнаружения. Минимум 3 секунды, максимум 300 секунд или 5 минут.

Назначение перемычки:

  • H — настройка «Сохранить» или «Повторить». В этом положении HC-SR501 будет продолжать выдавать ВЫСОКИЙ сигнал до тех пор, пока он продолжает обнаруживать движение.
  • L — это параметр прерывания или отсутствия попытки. В этом положении выход будет оставаться ВЫСОКИМ в течение периода, установленного настройкой потенциометра ВРЕМЯ.

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

Выделение дополнительных отверстий:

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

Код на Python

Теперь давайте создадим программу на Python. Для этого скопируйте этот код в файл с именем «motion.py». В Linux вы можете использовать редактор «nano», в Windows, вероятно, проще всего создать файл с помощью редактора Python «IDLE» (доступного в группе программ Python в меню «Пуск).

Перед запуском программы Python внесем некоторые изменения (все они находятся в верхней части программы). Программа предполагает, что электронные письма создаются из учетной записи Gmail. Если он не зарегистрирован (даже если это только для этого проекта). Измените значение переменной «TO» на адрес электронной почты, на который будут отправляться уведомления. Измените значение «GMAIL_USER» в адресе электронной почты Gmail и, следовательно, пароль в следующей строке (GMAIL_PASS).

Вы также можете изменить тему и текст отправляемого сообщения («ТЕМА» и «ТЕКСТ»). Вам необходимо указать последовательный порт, к которому подключен Arduino, в строке ser = serial.Serial (‘COM4’, 9600) Для Windows это будет что-то вроде «COM4» для Linux — что-то вроде «/ dev / tty usbmodem621» .. к какому порту компьютера подключена плата, смотрим в Arduino IDE в правом нижнем углу. learn_arduino_arduino_ide_port
После этих изменений запустите программу из командной строки / строки терминала: python motion.py Готово! Когда срабатывает датчик PIR, на указанный адрес электронной почты вскоре приходит сообщение.

Распиновка PIR датчика HC-SR501

HC-SR501 имеет 3-контактный разъем, который соединяет его с внешним миром. На нем отображаются следующие контакты:

Рисунок 8 PIR Датчик PIR HC-SR501
Рисунок 8 — Распиновка ИК-датчика HC-SR501

VCC — это вывод питания для датчика PIR HC-SR501, к которому мы подключаем вывод 5V на Arduino.

Выходной контакт представляет собой логический выход с уровнем TTL 3,3 В. Низкий логический уровень означает, что движение не обнаружено, высокий логический уровень означает, что движение было обнаружено.

GND должен быть подключен к земле Arduino.

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

Подключить ИК-модуль к Arduino предельно просто: мы подключаем VCC и GND модуля к + 5V и GND Arduino, а выход OUT датчика — к любому цифровому или аналоговому выводу Arduino. Подключу к аналоговому входу А7.

Подключение PIR датчика к Arduino UNO

Теперь, когда у нас есть полное представление о том, как работает датчик PIR, мы можем подключить его к нашей плате Arduino!

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

перемычка на HC-SR501 должна быть установлена ​​в положение H (перезапуск) для правильной работы. Также необходимо установить время на минимум (3 секунды), повернув потенциометр времени до упора против часовой стрелки. Установите чувствительность в желаемое положение или, если сомневаетесь, установите ее в центральное положение.

Теперь вы готовы загрузить код и начать работу с датчиком PIR.

Рисунок 10 Подключение ИК-датчика к Arduino UNO
Подключение ИК-датчика к Arduino UNO

Схема соединения

Если вы хотите использовать 8 датчиков PIR вместо TPA81, вам необходимо подключить 8 одиночных датчиков PIR к плате Arduino и считывать их один за другим. Таким образом можно сэкономить.

Не подключайте выводы питания PIR к Arduino 5V. На этой диаграмме выше вам нужно отделить белую часть PIR и разместить их рядом друг с другом.

Используйте отдельные источники питания для датчиков PIR.

Читайте также: Ардуино гироскоп: варианты подключения, библиотеки, код

Оцените статью
Блог про Arduino