mppss.ru – Все про автомобили

Все про автомобили

Ардуино: инфракрасный датчик движения, ПИР. Инфракрасные датчики движения Подключение пир датчика

Обзор датчика пространства 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.

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

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

Посылка:

Я заказывал два датчика с возможностью регулировки по светочувствительности:

Датчики поддерживают питание от 12 до 24 Вольт. Они уже имеют распаянные стандартные провода длиной около 30 см с гнездами на вход и выход, с центральным контактом 2.1 мм, и это большой плюс. Не надо ничего припаивать, просто подключаете блок питания и пользуетесь:



Сами датчики довольно компактны. Внешний вид:





Размеры:







Чтобы добраться до платы и регулировок, нужно вскрыть корпус. Задняя крышка на защелках, поддевается отверткой:





Плата выглядит так:

Я нашел схему этого устройства, номиналы могут отличаться, но в целом для понимания сути работы, она верная:

Здесь мы видим стабилизатор напряжения на входе для питания микросхемы:


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

Далее по схеме, на выходе имеется полевой транзистор, который и является ключом в цепи питание-нагрузка:

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

Сердце устройства - это микросхема Biss0001.Этот чип воспринимает внешний источник излучения и проводит минимальную обработку сигнала для его преобразования из аналогового в цифровой вид:



ПИР датчик движения, по сути, состоит из пироэлектрического чувствительного элемента (цилиндрическая деталь с прямоугольным кристаллом в центре), который улавливает уровень инфракрасного излучения. Датчик фактически разделен на две части. Это обусловлено тем, что нам важен не уровень излучения, а непосредственно наличие движение в пределах его зоны чувствительности. Две части датчика установлены таким образом, что если одна половина улавливает больший уровень излучения, чем другая, выходной сигнал будет генерировать значение high или low.

Теперь непосредственно к регулировкам. Настраивал устройство, соответственно накидал что и куда крутить:



Время регулируется от 1 секунды до 500 сек. При полностью выкрученном ползунке свет просто мигает.

По поводу порога включения датчика, опытным путем выявил что это напряжение от 11,5 Вольт, если ниже, то датчик просто не включается:

По схеме понятно, что выходное напряжение с датчика меньше или равно входному. Я выставил 12В. тут есть погрешность в виде неточной индикации блока питания, поэтому потребление самого датчика конечно же ниже:

В режиме ожидания датчик потребляет 84мкА, а напряжение на выходе 170 мВ.

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

Собрал схемку, все настроил:

Проверил:

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

Доволен ли я покупкой - да. Полноценное, качественно сделанное готовое устройство.

Что понравилось:
+ Полностью настраиваемый режим работы
+ Минимальное собственное потребление
+ Качество изготовления и компактность
+ Четкость срабатывания без пропусков
+.Наличие проводов с гнездами

Что не понравилось:
- Отсутствие прямого доступа к настройкам без разбора корпуса (решаемо)
- Крепежные уши очень маленькие (но лучше крепить на двустороннюю ленту типа 3М)

Белый колпачок датчика выбивается из черного корпуса, но в опции без датчика освещенности он черный.

На этом всё.

Планирую купить +43 Добавить в избранное Обзор понравился +40 +75

Всем привет, сегодня мы рассмотрим устройство под названием датчик движения. Многие из нас слышали об этой штуке, кто то даже имел дело с этим устройством. Что же такое датчик движения? Попробуем разобраться, итак:

Датчик движения, или датчик перемещения - устройство (прибор) обнаруживающий перемещение каких либо объектов. Очень часто эти устройства, используются в системах охраны, сигнализации и мониторинга. Форм факторов этих датчиков существует великое множество, но мы рассмотрим именно модуль датчика движения для подключения к платам Arduino, и именно от фирмы RobotDyn. Почему именно этой фирмы? Я не хочу заниматься рекламой этого магазина и его продукции, но именно продукция данного магазина была выбрана в качестве лабораторных образцов благодаря качественной подаче своих изделий для конечного потребителя. Итак, встречаем - датчик движения (PIR Sensor) от фирмы RobotDyn:


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

Основные технические характеристики датчика движения(PIR Sensor):

Зона работы датчика: от 3 до 7 метров

Угол слежения: до 110 о

Рабочее напряжение: 4,5...6 Вольт

Потребляемый ток: до 50мкА

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

Инициализация устройства.

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

Угол и область обнаружения.

Угол обнаружения(слежения) составляет 110 градусов, диапазон расстояния обнаружения от 3 до 7 метров, иллюстрация ниже показывает всё это:

Регулировка чувствительности(дистанции обнаружения) и временной задержки.

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


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

  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - для датчика освещенности
  • PIR Sensor - для датчика освещенности

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

Скетч демонстрирующий работу датчика движения(используем программу ):

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano */ void setup() { //Установить соединение с монитором порта Serial.begin(9600); } void loop() { //Считываем пороговое значение с порта А0 //обычно оно выше 500 если есть сигнал if(analogRead(A0) > 500) { //Сигнал с датчика движения Serial.println("Есть движение!!!"); } else { //Нет сигнала Serial.println("Всё тихо..."); } }

Скетч является обычной проверкой работы датчика движения, в нём есть много недостатков, таких как:

  1. Возможные ложные срабатывания, датчику необходима самоинициализация в течение одной минуты.
  2. Жесткая привязка к монитору порта, нет выходных исполнительных устройств(реле, сирена, светоиндикация)
  3. Слишком короткое время сигнала на выходе датчика, при обнаружении движения необходимо программно задержать сигнал на более долгий период времени.

Усложнив схему и расширив функционал датчика, можно избежать вышеописанных недостатков. Для этого потребуется дополнить схему модулем реле и подключить обычную лампу на 220 вольт через данный модуль. Сам же модуль реле будет подключен к пину 3 на плате Arduino Nano. Итак принципиальная схема:

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

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * Relay Module -> Arduino Nano */ //relout - пин(выходной сигнал) для модуля реле const int relout = 3; //prevMillis - переменная для хранения времени предидущего цикла сканирования программы //interval - временной интервал для отсчета секунд до выключения реле unsigned long prevMillis = 0; int interval = 1000; //DelayValue - период в течение которого реле удерживается во включенном состоянии int DelayValue = 10; //initSecond - Переменная итерации цикла инициализации int initSecond = 60; //countDelayOff - счетчик временных интервалов static int countDelayOff = 0; //trigger - флаг срабатывания датчика движения static bool trigger = false; void setup() { //Стандартная процедура инициализации порта на который подключен модуль реле //ВАЖНО!!! - чтобы модуль реле оставался в первоначально выключенном состоянии //и не срабатывал при инициализации, нужно записать в порт входа/выхода //значение HIGH, это позволит избежать ложных "перещелкиваний", и сохранит //состояние реле таким, каким оно было до включения всей схемы в работу pinMode(relout, OUTPUT); digitalWrite(relout, HIGH); //Здесь всё просто - ждем когда закончатся 60 циклов(переменная initSecond) //продолжительностью в 1 секунду, за это время датчик "самоинициализируется" for(int i = 0; i < initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) > 500) { //Установить флаг срабатывания датчика движения if(!trigger) { trigger = true; } } //Пока флаг срабатывания датчика движения установлен while(trigger) { //Выполнять следующие инструкции //Сохранить в переменной currMillis //значение миллисекунд прошедших с момента начала //выполнения программы unsigned long currMillis = millis(); //Сравниваем с предидущим значением миллисекунд //если разница больше заданного интервала, то: if(currMillis - prevMillis > interval) { //Сохранить текущее значение миллисекунд в переменную prevMillis prevMillis = currMillis; //Проверяем счетчик задержки сравнивая его со значением периода //в течение которого реле должно удерживаться во включенном //состоянии if(countDelayOff >= DelayValue) { //Если значение сравнялось, то: //сбросить флаг срабатывания датчика движения trigger = false; //Обнулить счетчик задержки countDelayOff = 0; //Выключить реле digitalWrite(relout, HIGH); //Прервать цикл break; } else { //Если значение всё еще меньше, то //Инкрементировать счетчик задержки на единицу countDelayOff ++; //Удерживать реле во включенном состоянии digitalWrite(relout, LOW); } } } }

В программе присутствует конструкция:

unsigned long prevMillis = 0;

int interval = 1000;

...

unsigned long currMillis = millis();

if(currMillis - prevMillis > interval)

{

prevMillis = currMillis;

....

// Наши операции заключенные в тело конструкции

....

}

Чтобы внести ясность, было решено отдельно прокомментировать эту конструкцию. Итак, данная конструкция позволяет выполнить как бы параллельную задачу в программе. Тело конструкции срабатывает примерно раз в секунду, этому способствует переменная interval . Сначала, переменной currMillis присваивается значение возвращаемое при вызове функции millis() . Функция millis() возвращает количество миллисекунд прошедших с начала программы. Если разница currMillis - prevMillis больше чем значение переменной interval то это означает, что уже прошло более секунды с начала выполнения программы, и нужно сохранить значение переменной currMillis в переменную prevMillis затем выполнить операции заключенные в теле конструкции. Если же разница currMillis - prevMillis меньше чем значение переменной interval , то между циклами сканирования программы еще не прошло секунды, и операции заключенные в теле конструкции пропускаются.

Ну и в завершение статьи видео от автора:

Пожалуйста, включите javascript для работы комментариев.

Принцип работы PIR (Passive Infra Red)- датчиков

Любой объект, обладающий какой-то температурой, становится источником электромагнитного (теплового) излучения, в том числе - человеческое тело. Длина волны этого излучения зависит от температуры и находится в инфракрасной части спектра. Это излучение невидимо для глаза и улавливается только датчиками. Их еще называют PIR-датчиками.

Это аббревиатура от слов «passive infrared» или «пассивные инфракрасные» датчики. Пассивные - потому что датчики сами не излучают, а только воспринимают излучение с длиной волны от 7 до 14 µм.

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

PIR-датчик содержит чувствительный элемент, который реагирует на изменение теплового излучения. Если оно остается постоянным - электрический сигнал не генерируется.

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

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

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

Пирлоэлектрический датчик движения - общая информация

ПИР датчики движения по сути состоят из пироэлектрического чувствительного элемента (цилиндрическая деталь с прямоугольным кристаллом в центре), который улавливает уровень инфракрасного излучения. Все вокруг излучает небольшой уровень радиации. Чем больше температура, тем выше уровень излучения. Датчик фактически разделен на две части. Это обусловлено тем, что нам важен не уровень излучения, а непосредственно наличие движение в пределах его зоны чувствительности. Две части датчика установлены таким образом, что если одна половина улавливает больший уровень излучения, чем другая, выходной сигнал будет генерировать значение high или low.

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

Общая техническая информация

Эти технические характеристики относятся к PIR датчикам, которые продаются в магазине Adafruit. Принцип работы аналогичных датчиков похожий, хотя технические характеристики могут отличаться. Так что прежде чем работать с ПИР-датчиком, ознакомьтесь с его даташитом.

  • Форма: Прямоугольник;
  • Цена: около 10.00 долларов в магазине Adafruit;
  • Выходной сигнал: цифровой импульс high (3 В) при наличии движения и цифровой сигнал low, когда движения нет. Длина импульса зависит от резисторов и конденсаторов на самом модуле и разная в различных датчиках;
  • Диапазон чувствительности: до 6 метров. Угол обзора 110° x 70°;
  • Питание: 3В - 9В, но наилучший вариант - 5 вольт;

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

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

Пироэлектрический датчик движения состоит из двух основных частей. Каждая из частей включает в себя специальный материал, чувствительный к инфракрасному излучению. В данном случае линзы особо не влияют на работу датчика, так что мы видим два участка чувствительности всего модуля. Когда датчик находится в состоянии покоя, оба сенсора определяют одинаковое количество излучения. Например, это может быть излучение помещения или окружающей среды на улице. Когда теплокровный объект (человек или животное), проходит мимо, он пересекает зону чувствительности первого сенсора, в результате чего на модуле ПИР датчика генерируются два различных значения излучения. Когда человек покидает зону чувствительности первого сенсора, значения выравниваются. Именно изменения в показаниях двух датчиков регистрируются и генерируют импульсы HIGH или LOW на выходе.

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

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

Рисунок из даташита Murata:

Линзы

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

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

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

Рисунок из Cypress appnote 2105:

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

Подключение PIR датчика движения


Большинство модулей с инфракрасными датчиками движения имеют три коннектора на задней части. Распиновка может отличаться, так что прежде чем подключать, проверьте ее! Обычно рядом с коннекторами сделаны соответсвующие надписи. Один коннектор идет к земле, второй выдает интересующий нас сигнал с сенсоров, третий - земля. Напряжение питания обычно составляет 3-5 вольт, постоянный ток. Однако иногда встречаются датчики с напряжением питания 12 вольт. В некоторых больших датчиках отдельного пина сигнала нет. Вместо этого используется реле с землей, питанием и двумя переключателями.

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

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

Тестирование PIR датчика движения

Соберите схему в соответсвии с рисунком выше. В результате, когда PIR датчик обнаружит движение, на выходе сгенерируется сигнал HIGH, который соответсвует 3.3 В и светодиод загорится.

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

Настраиваем чувствительность

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

Изменение времени импульса и времени между импульсами

Когда мы рассматривает PIR датчики, важны два промежутка времени "задержки". Первый отрезок времени -Tx: как долго горит светодиод после обнаружения движения. На многих пироэлектрических модулях это время регулируется встроенным потенциометром. Второй отрезок времени - Ti: как долго светодиод гарантированно не загорится, когда движения не было. Изменять этот параметр не так просто, для этого может понадобится паяльник.

Давайте взглянем на даташит BISS:

На датчиках от Adafruit есть потенциометр, отмеченный как TIME. Это переменный резистор с сопротивлением 1 мегаом, который добавлен к резисторам на 10 кOм. Конденсатор C6 имеет емкость 0.01 мкФ, так что:

Tx = 24576 x (10 кОм + Rtime) x 0.01 мкФ

Когда потенциометр Rtime в "нулевом" - полностью повернут против часовой стрелки - положении (0 МОм):

Tx = 24576 x (10 кОм) x 0.01 мкФ = 2.5 секунды (примерно)Когда потенциометр Rtime полностью повернут по часовой стрелке (1МОм):

Tx = 24576 x (1010 кОм) x 0.01 мкФ = 250 секунд (примерно)

В средней позиции RTime время будет составлять около 120 секунд (две минуты). То есть, если вы хотите отслеживать движение объекта с частотой раз в минуту, поверните потенциометр на 1/4 поворота.

Подключение PIR датчика движения к Arduino


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

При этом не забудьте установить коннектор в позицию H!

Подайте питание 5 вольт на датчик. Землю соежинети с землей. После этого соедините пин сигнала с датчика с цифровым пином на Arduino. В данном примере использован пин 2.


Программа простая. По сути она отслеживает состояние пина 2. А именно: какой на нем сигнал: LOW или HIGH. Кроме того, выводится сообщение, когда состояние пина меняется: есть движение или движения нет.

* проверка PIR датчика движения

int ledPin = 13; // инициализируем пин для светодиода

int inputPin = 2; // инициализируем пин для получения сигнала от пироэлектрического датчика движения

int pirState = LOW; // начинаем работу программы, предполагая, что движения нет

int val = 0; // переменная для чтения состояния пина

pinMode(ledPin, OUTPUT); // объявляем светодиод в качестве OUTPUT

pinMode(inputPin, INPUT); // объявляем датчик в качестве INPUT

Serial.begin(9600);

val = digitalRead(inputPin); // считываем значение с датчика

if (val == HIGH) { // проверяем, соответствует ли считанное значение HIGH

digitalWrite(ledPin, HIGH); // включаем светодиод

if (pirState == LOW) {

// мы только что включили

Serial.println("Motion detected!");

pirState = HIGH;

digitalWrite(ledPin, LOW); // выключаем светодиод

if (pirState == HIGH){

// мы только что его выключили

Serial.println("Motion ended!");

// мы выводим на серийный монитор изменение, а не состояние

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


Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и правилами сайта, изложенными в пользовательском соглашении