Подключение пир датчика sr 501. Лампа с автоматическим включением

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

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

На фото ниже обозначены точки подключения общего провода (GND), выход сигнала о срабатывании (Output) и шины питания (+Power). На плате установлены два переменных сопротивления: один регулирует зону срабатывания (Sensitivity Adjust), другой задержку выключения (Time Delay Adjust).

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

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

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

Функционально устройство состоит из трех узлов:

  1. самого датчика HC-SR501;
  2. исполнительного устройства, состоящего из резистора R3, транзистора VT1, диода D1 и реле Р1, где R3 и VT1 служат связующим звеном между датчиком и реле. Без них нагрузочная способность датчика столь низка, что напрямую можно подключить лишь светодиод;
  3. бестрансформаторного блока питания, где R1 необходим для снижения пускового тока (зачастую им можно пренебречь), конденсатор С1 с номиналом от 0,47 - 0,68 мкФ с рабочим напряжением минимум 250 вольт обеспечивает на выходе ток до 0,05 А, R2 необходим для разрядки конденсатора С1 после отключения устройства от сети.

Для чего диодный мост всем известно. Фильтрующий конденсатор следует выбирать с рабочим напряжением не менее 25 вольт. Ну, и наконец стабилитрон устанавливает напряжение на выходе блока питания на уровне 12 вольт. Выбор стабилитрона именно на 12 вольт обусловлен с одной стороны диапазоном питания датчика от 3 до 20 вольт, с другой рабочим напряжением реле - 12 вольт.

Отдельно стоит сказать о транзисторе. Это практически, любой тразистор NPN структуры - 2N3094, ВС547, КТ3102, КТ815, КТ817 и т.д. и т.п.

Реле с практически любым сопротивлением катушки, напряжением коммутации 250 вольт и током 3 ампера, что даст возможность безболезненно коммутировать нагрузку мощностью в несколько сот ватт.

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

Технические характеристики

Напряжение питания: 4.8В … 20В
Статический ток: 50 мА
Уровня выходного сигнала: 3.3 В / низкий 0 В
Время задержки: 0.5 — 200с (регулируемая)
Время блокировки: 2.5 с
Угол работы: < 100
Рабочая температура: -15С … + 70C
Определение объектов: 23 мм
Габариты: 33мм x 25мм x 24мм

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

Любой человек или животное с температурой выше нуля испускает тепловую энергию в виде излучения. Это излучение не видно человеческому глазу, потому что оно излучается на инфракрасных волн, ниже спектра, который люди могут видеть. Измерение этой энергии, не то же самое, что измерять температуру. Так как температура зависит от теплопроводности, поэтому, когда человек входит в комнату, он не может мгновенно изменить температуру в помещении. Однако есть уникальная инфракрасное излучение из-за температуры тела и которую ищет 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 как самостоятельное устройство.

Необходимые детали:


Транзистор 2SC1213 x 1 шт.


Подключение:
При включение HC-SR501 требуется калибровка, занимает от 30 до 60 секунд, так-же датчик имеет период «перезагрузки» около 6 секунд (после срабатывания), за это время он не реагирует на движения. В этом примере используем HC-SR501 и , а так же 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 секунд), для этого поверните потенциометр в лева до упора. Теперь, когда вы все подключились, необходимо загрузить скетч.

/* Тестировалось на 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 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 (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 ) ;

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

Технические характеристики

Напряжение питания: 4.8В … 20В
Статический ток: 50 мА
Уровня выходного сигнала: 3.3 В / низкий 0 В
Время задержки: 0.5 — 200с (регулируемая)
Время блокировки: 2.5 с
Угол работы: < 100
Рабочая температура: -15С … + 70C
Определение объектов: 23 мм
Габариты: 33мм x 25мм x 24мм

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

Любой человек или животное с температурой выше нуля испускает тепловую энергию в виде излучения. Это излучение не видно человеческому глазу, потому что оно излучается на инфракрасных волн, ниже спектра, который люди могут видеть. Измерение этой энергии, не то же самое, что измерять температуру. Так как температура зависит от теплопроводности, поэтому, когда человек входит в комнату, он не может мгновенно изменить температуру в помещении. Однако есть уникальная инфракрасное излучение из-за температуры тела и которую ищет 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 как самостоятельное устройство.

Необходимые детали:


Транзистор 2SC1213 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 секунд), для этого поверните потенциометр в лева до упора. Теперь, когда вы все подключились, необходимо загрузить скетч.

/* Тестировалось на 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 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 (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 ) ;

Обзор датчика пространства HC-SR501

Модуль датчика движения (или присутствия) HCSR501 на основе пироэлектрического эффекта состоит из PIR-датчика 500BP (рис. 1) с дополнительной электрической развязкой на микросхеме BISS0001 и линзы Френеля, которая используется для увеличения радиуса обзора и усиления инфракрасного сигнала (рис. 2). Модуль используется для обнаружения движения объектов, излучающих инфракрасное излучение. Чувствительный элемент модуля – PIR-датчик 500BP. Принцип его работы основан на пироэлектричестве. Это явление возникновения электрического поля в кристаллах при изменении их температуры.

Управление работой датчика осуществляет микросхема BISS0001. На плате расположены два потенциометра, с помощью первого настраивается дистанция обнаружения объектов (от 3 до 7 м), с помощью второго - задержка после первого срабатывания датчика (5 - 300 сек). Модуль имеет два режима – L и H. Режим работы устанавливается с помощью перемычки. Режим L – режим единичного срабатывания, при обнаружении движущегося объекта на выходе OUT устанавливается высокий уровень сигнала на время задержки, установленное вторым потенциометром. На это время датчик не реагирует на движущиеся объекты. Этот режим можно использовать в системах охраны для подачи сигнала тревоги на сирену. В режиме H датчик срабатывает каждый раз при обнаружении движения. Этот режим можно использовать для включения освещения. При включении модуля происходит его калибровка, длительность калибровки приблизительно одна минута, после чего модуль готов к работе. Устанавливать датчик желательно вдали от открытых источников света.

Рисунок 1. PIR-датчик 500BP

Рисунок 2. Линза Френеля

Технические характеристики HC-SR501

  • Напряжение питания: 4.5-20 В
  • Ток потребления: 50 мА
  • Напряжение на выходе OUT: HIGH – 3,3 В, LOW – 0 В
  • Интервал обнаружения: 3-7 м
  • Длительность задержки после срабатывания: 5 - 300 сек
  • Угол наблюдения до 120
  • Время блокировки до следующего замера: 2.5сек.
  • Режимы работы: L - одиночное срабатывание, H - срабатывание при каждом событии
  • Рабочая температура от -20 до +80C
  • Габариты 32x24x18 мм

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

Модуль имеет 3 вывода (рис. 3):
  • VCC - питание 5-20 В;
  • GND - земля;
  • OUT - цифровой выход (0-3.3В).

Рисунок 3. Назначение контактов и настройка HC-SR501

Подключим модуль HC-SR501 к плате Arduino (Схема соединений на рис. 4) и напишем простой скетч, сигнализирующий звуковым сигналом и сообщением в последовательный порт, при обнаружении движущегося объекта. Для фиксации срабатываний микроконтроллером будем использовать внешние прерывания на вход 2. Это прерывание int0.

Рисунок 4. Схема соединений подключения модуля HC-SR501 к плате Arduino

Загрузим скетч из листинга 1 на плату Arduino и посмотрим как датчик реагирует на препятствия (см. рис. 5). Модуль установим в режим работы L. Листинг 1 // Скетч к обзору датчика движения/присутствия HC-SR501 // сайт // контакт подключения выхода датчика #define PIN_HCSR501 2 // флаг сработки boolean flagHCSR501=false; // контакт подключения динамика int soundPin=9; // частота звукового сигнала int freq=587; void setup() { // инициализация последовательного порта Serial.begin(9600); // запуск обработки прерывания int0 attachInterrupt(0, intHCSR501,RISING); } void loop() { if (flagHCSR501 == true) { // Сообщение в последовательный порт Serial.println("Attention!!!"); // звуковая сигнализация на 5 сек tone(soundPin,freq,5000); // обнулить флаг сработки flagHCSR501 = false; } } // обработка прерывания void intHCSR501() { // установка флага сработки датчика flagHCSR501 = true; }

Рисунок 5. Вывод данных в монитор последовательного порта

С помощью потенциометров экспериментируем с длительностью сигнала на выходе OUT и чувствительностью датчика (расстоянием фиксации объекта).

Пример использования

Создадим пример отправки sms при срабатывании датчика движения/присутствия на охраняемом объекте. Для этого будем использовать GPS/GPRS шилд. Нам понадобятся следующие детали:
  • плата Arduino Uno
  • GSM/GPRS шилд
  • npn-транзистор, например С945
  • резистор 470 Ом
  • динамик 8 Ом 1Вт
  • провода
Соберем схему соединений согласно рис. 6.

Рисунок 6. Схема соединений

При срабатывании датчика вызываем процедуру отправки sms с текстовым сообщением Atten tion!!! на номер PHONE. Содержимое скетча представлено в листинге 2. GSM/GPRS шилд в режиме отправки sms потребляет ток до 2 А, поэтому используем внешний источник питания 12В 2А. Листинг 2 // Скетч 2 к обзору датчика движения/присутствия HC-SR501 // отправка sms при срабатывании датчика // сайт // контакт подключения выхода датчика #define PIN_HCSR501 2 // флаг сработки boolean flagHCSR501 false; // контакт подключения динамика int soundPin=9; // частота звукового сигнала int freq=587; // библиотека SoftwareSerial #include // номер телефона для отправки sms #define PHONE "+79034461752" // Выводы для SoftwareSerial (у вас могут быть 2,3) SoftwareSerial GPRS(7, 8); void setup() { // инициализация последовательного порта Serial.begin(9600); // запуск обработки прерывания int0 attachInterrupt(0, intHCSR501,RISING); // для обмена с GPG/GPRS шилдом GPRS.begin(19200); } void loop() { if (flagHCSR501 == true) { // Сообщение в последовательный порт Serial.println("Attention!!!"); // звуковая сигнализация на 5 сек tone(soundPin,freq,5000); // отправить sms SendSMS(); // обнулить флаг сработки flagHCSR501 = false; } } // обработка прерывания void intHCSR501() { // установка флага сработки датчика flagHCSR501 = true; } // подпрограмма отправки sms void SendSMS() { // AT-команда установки text mode GPRS.print("AT+CMGF=1\r"); delay(100); // номер телефона GPRS.print("AT + CMGS = \""); GPRS.print(PHONE); GPRS.println("\""); delay(200); // сообщение GPRS.println("Attention!!!"); delay(200); // ASCII код ctrl+z – окончание передачи GPRS.println((char)26); delay(200); GPRS.println(); }

Часто задаваемые вопросы FAQ

1. Модуль не срабатывает при движении объекта
  • Проверьте правильность подключения модуля.
  • Настройте потенциометром дистанцию срабатывания.
2. Датчик срабатывает слишком часто
  • Настройте потенциометром задержку длительности сигнала.
  • Установите перемычку в режим единичного срабатывания L.

HC-SR501 - пироэлектрический инфракрасный датчик движения, позволяет обнаруживать движение людей в контролируемой зоне. Представляет из себя модуль состоящий из ИК сенсора 500BP, линзы Френеля, и управляющей модулем микросхемы BISS0001. Режим работы модуля задается перемычкой (режим H или режим L).

В режиме H при срабатывании датчика несколько раз подряд на его выходе (на OUT) остается высокий логический уровень. В режиме L на выходе при каждом срабатывании датчика на выход подается отдельный импульс.
Не рекомендуется использовать датчик в местах с резкими перепадами температур - резкий всплеск инфракрасного излучения от нагрева он будет воспринимать как появление перемещающегося объекта, что может вызвать ложное срабатывание.

HC-SR501 часто применяется в охранных сигнализациях, а так же в умных домах для контроля освещения при появлении в помещении человека.

Характеристики:


Напряжение питания
4.5V- 20V
Ток на OUT
<60uA
Напряжение на выходе
Высокие и низкие уровни в 3.3V TTL логике
Дистанция обнаружения
3, 7м (настраивается)
Угол обнаружения
до 120°-140° (в зависимости от конкретного датчика и линзы)
Длительность импульса при обнаружении
5 - 200сек. (настраивается)
Время блокировки до следующего замера
2.5сек. (но можно изменить заменой SMD-резисторов)
Рабочая температура
-20.... +80°C
Режим работы
L - одиночный захват, H - повторяемые измерения
Размеры
3.2см x 2.4см x 1.8см