Обзор инфракрасного датчика движения HC-SR501
В этой статье расскажу как работать с датчиком HC-SR501 (PIR сенсор). Датчик является недорогим и универсальным, его можно использовать как отдельно или со вместо с микрокомпьютером для создание различных проектах (системах охранной сигнализации или автоматизированных системах освещения)
Технические характеристики
Общие сведения
Любой человек или животное с температурой выше нуля испускает тепловую энергию в виде излучения. Это излучение не видно человеческому глазу, потому что оно излучается на инфракрасных волн, ниже спектра, который люди могут видеть. Измерение этой энергии, не то же самое, что измерять температуру. Так как температура зависит от теплопроводности, поэтому, когда человек входит в комнату, он не может мгновенно изменить температуру в помещении. Однако есть уникальная инфракрасное излучение из-за температуры тела и которую ищет 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, пока он продолжает обнаруживать движение.
► L — Это параметр прерывания или без повтора. В этом положении выход будет оставаться HIGH в течение периода, установленного настройкой потенциометра TIME.
На плате HC-SR501 имеются дополнительные отверстия для двух компонентов, рядом расположена маркировка, посмотреть на нее можно сняв линзу Френеля.
Назначение дополнительных отверстий:
► RT — это предназначено для термистора или чувствительного к температуре резистора. Добавление этого позволяет использовать HC-SR501 в экстремальных температурах, а также в некоторой степени повышает точность работы детектора.
► RL — это соединение для светозависимого резистора или фоторезистора. Добавляя компонент, HC-SR501 будет работать только в темноте, что является общим приложением для чувствительных к движению систем освещения.
Пример №1: HC-SR501 как самостоятельное устройство.
Необходимые детали:
► Датчика движения HC-SR501 x 1 шт.
► Модуль реле (1-но канальный) x 1 шт.
► Транзистор 2SC1213 x 1 шт.
► Лампа на 220V (75W) с патроном x 1 шт.
► Источник питания на 5V x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
Подключение:
При включение HC-SR501 требуется калибровка, занимает от 30 до 60 секунд, так-же датчик имеет период «перезагрузки» около 6 секунд (после срабатывания), за это время он не реагирует на движения. В этом примере используем HC-SR501 и модуль реле (1-но канальный), а так же NPN транзистор (в примере используется 2SC1213). Питание датчика HC-SR501 осуществляется от 5 В, поскольку, это же питание требуется и реле, а в качестве нагрузки используется лампа на 220В. Так-как выходной сигнал HC-SR501 слабый (на практике хватает только чтобы зажечь светодиод), один из вариантов, можно применить любой биполярный NPN транзистор.
Внимание! Соблюдайте технику безопасность и будьте аккуратно!
Работа этой схемы очень проста, после включения и калибровка, датчик начинает считывать показания. При обнаружении движения, датчик меняет значение на выводе «OUT».
Пример №2: HC-SR501 добавление фоторезистора
Необходимые детали:
► Датчика движения HC-SR501 x 1 шт.
► Модуль реле (1-но канальный) x 1 шт.
► Транзистор 2SC1213 x 1 шт.
► Лампа на 220V (75W) с патроном x 1 шт.
► Источник питания на 5V x 1 шт.
► Фоторезистор x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
Подключение:
В следующим примере используем туже схему, что и примере №1, только добавили фоторезистор. Место для установки фоторезистора расположено рядом с выходным разъемом, обозначение на плате как «RL». Можно припаять напрямую на плату или воспользоватся штыревым разъемом, для удобного подключения Dupont провода. Главное, чтобы фоторезистор не был закрыт от естественного освещения комнаты, а так же был защищен от света лампы, которую используем как нагрузку. На рисунке ниже показано, куда устанавливать фоторезистор.
Как только установили фоторезистор, включите схему и немного подождите, пока датчик HC-SR501 от калибруется. Если все правильно подключено (и в помещении включен свет), ничего не произойдет, фоторезистор предотвращает запуск HC-SR501 при освещенной комнаты. Теперь выключим свет и HC-SR501 будет запускаться всякий раз, когда он замечает активность.
Пример №3: HC-SR501 и Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Датчика движения HC-SR501 x 1 шт.
► Светодиоды 5 мм x 3 шт.
► Резистор 0,125W, 320Om x 3 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
Подключение:
Хотя датчик HC-SR501 и самостоятельное устройство, его можно подключить к выводу микроконтроллера. В примере используем контроллер Arduino UNO R3, в котором можем учесть время включения и период сброса. Таким образом, устройство может быть более точным, так как вы не будете пытаться воспринимать движение вперед, когда датчик не готов. Так же, можно подключить несколько датчиков HC-SR501 к Arduino, что позволит позволит отслеживать движение в разных местах.
В следующем примере, мы подключим один HC-SR501 к Arduino в качестве индикации воспользуемся тремя светодиодами, каждый из который отображения состояния датчика :
- Красный светодиод — этот светодиод указывает, что датчик не готов.
- Желтый светодиод — этот светодиод указывает, что датчик готов к обнаружению движения.
- Зеленый светодиод — этот светодиод горит в течение 3 секунд при срабатывании датчика. Вместо светодиода, можно управлять внешним выходом (например, модулем реле, который мы использовали ранее).
Схема подключения:
Перемычка на HC-SR501 необходимо установить в положение «L», а так-же необходимо установить время на минимум (5 секунд), для этого поверните потенциометр в лева до упора. Теперь, когда вы все подключились, необходимо загрузить скетч.
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 44 45 46 47 48 49 50 51 52 53 54 55 |
/* Тестировалось на Arduino IDE 1.8.0 Дата тестирования 12.08.2016г. */ int detectedLED = 13; // Указываем пин int readyLED = 12; // Указываем пин int waitLED = 11; // Указываем пин int pirPin = 7; // Указываем пин датчика int motionDetected = 0; // Переменная для обнаружения движения int pirValue; // Переменная для сохранения значения из PIR void setup() { pinMode(detectedLED, OUTPUT); // Установка пин как выход pinMode(readyLED, OUTPUT); // Установка пин как выход pinMode(waitLED, OUTPUT); // Установка пин как выход pinMode(pirPin, INPUT); // Установка пин как вход // Начальная задержка 1 минута, для стабилизации датчика// digitalWrite(detectedLED, LOW); digitalWrite(readyLED, LOW); digitalWrite(waitLED, HIGH); delay(60000); digitalWrite(readyLED, HIGH); digitalWrite(waitLED, LOW); } void loop() { pirValue = digitalRead(pirPin); // Считываем значение от датчика движения if (pirValue == 1) // Если движение есть, делаем задержку в 3 с. { digitalWrite(detectedLED, HIGH); motionDetected = 1; delay(3000); } else { digitalWrite(detectedLED, LOW); } // Задержка после срабатывания // if (motionDetected == 1) { digitalWrite(detectedLED, LOW); digitalWrite(readyLED, LOW); digitalWrite(waitLED, HIGH); delay(6000); digitalWrite(readyLED, HIGH); digitalWrite(waitLED, LOW); motionDetected = 0; } } |
Загружаем данный скетч в контроллер Arduino. При включении загорится красный светодиод, который сигнализирует о подготовке датчика (горит 1 минуту). По истечении минуты загорится желтый светодиод , а красный погаснет, это означает что, датчик готов к обнаружению движения. Как только датчик обнаружит движение движение, загорится зеленый светодиод, который будет светится в течение трех секунд.
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Инфракрасный датчик движения HC-SR501
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Инфракрасный датчик движения HC-SR501
Все гениальное просто) Спасибо за познавательную статью!
Пример №1: HC-SR501 как самостоятельное устройство.
Резисторов добавить не помешает, сгореть транзистор может. И базу на землю притянуть.
Оно не помешает, но вывод OUT сделан по схеме через резистор 102
По даташиту ток потребления до 50 микроАмпер.
http://www.radio.ru/arhiv/2021/8.shtml
Плавное включение/выключение светодиодных лент от датчика движения
Как раз используется этот датчик.
Недавно уточнил номиналы резисторов R1=47k; R2=33k; R3=12k
(на выводах 2+12 = U/2, на выводе 5 Ё~ 1.6В +/- 0.2 В — иначе время включения/выключения сильно различаются. А вот есть некое «мертвое» время между сигналом «1» / «0» и появлением ШИМ импульсов. Как простенько победить, пока не придумал. Происходит из-за того, что «треугольник» на ноге 10 от U до U/2, а на 9 от 0 до U — это вынуждено, ведь выход с датчика движения 0_/- «0» = 3,3В.
можно покумекать насчёт координации потенциалов, но пока так тоже удовлетворительно работает!
Короче, покупайте датчики, добавляйте платку плавности и не будете взрагивать от резкого включения света 😉