- Датчик движения на МК PIC и PIR-сенсоре
- Теория
- Схема и конструкция
- Программа
- Пироэлектрический инфракрасный (PIR) датчик движения и Arduino
- Пирлоэлектрический датчик движения — общая информация
- Общая техническая информация
- Принцип работы пироэлектрических (PIR) датчиков движения
- Конструкция PIR датчика
- Линзы
- Подключение PIR датчика движения
- Тестирование PIR датчика движения
- Настройка перезапуска датчика
- Настраиваем чувствительность
- Изменение времени импульса и времени между импульсами
- Для более старых/других моделей PIR датчиков
- Подключение PIR датчика движения к Arduino
Датчик движения на МК PIC и PIR-сенсоре
В этой статье описано создание датчика движения на основе модулей с пассивным ИК датчиком. Есть много моделей модулей с PIR датчиком от разных производителей, но в основе у них лежит один принцип. Они имеют один выход, который дает сигнал низкого или высокого уровня (в зависимости от модели) при обнаружении движения. В моем проекте микроконтроллер PIC12F635 постоянно следит за логическим уровнем на выходе модуля с датчиком и включает зуммер, когда он высокий.
Теория
Некоторые кристаллические материалы обладают свойством генерировать поверхностный электрический заряд при контакте с тепловым ИК излучением. Это явление известно как пироэлектричество. Пассивные модули с ИК датчиком работают на основе этого принципа. Тело человека излучает тепло в виде ИК излучения с максимальной длиной волны около 9,4 мкм. Появление человека создает внезапные изменения в ИК диапазоне окружающей среды, что воспринимается пироэлектрическим датчиком. Модуль с PIR датчиком имеет элементы которые усиливают сигнал для его соответствия логическим уровням. Перед началом работы датчику необходимо от 10 до 60 секунд для ознакомления с окружающей средой для дальнейшего нормального функционирования. В это время следует избегать движений в поле зрения датчика. Датчик действует на расстояние до 20 футов и не реагирует на естественные изменения окружающей среды, связанные с течение времени. При этом, датчик реагирует на любое резкое изменение окружающей среды(например появление человека). Модель с датчиком не следует размещать рядом с батареями, розетками и любыми другими предметами быстро меняющими свою температуру, т.к. это приведёт к ложному срабатыванию. Модули с PIR датчиком обычно имеют 3 контакта : Vcc, Выход и GND. Цоколевка у разных производителей может отличаться, поэтому я рекомендую проверить документацию. Также значение вывода может быть обозначено прямо на плате. На моём датчике таких обозначений нет. Он может работать при напряжении питания от 5 до 12V и имеет свой собственный встроенный стабилизатор напряжения. При наличии движения на выходе датчика появляется высокий логический уровень. Также он имеет 3х контактный джампер для установки режима работы. Боковые контакты имеют метки H и L. Когда перемычка находится в положении H, при срабатывании датчика несколько раз подряд на его выходе остается высокий логический уровень. В положении L, на выходе при каждом срабатывании датчика появляется отдельный импульс. Передняя часть модуля имеет линзу Френеля для фокусировки ИК излучения на чувствительный элемент.
Схема и конструкция
Схема датчика движения довольно проста. Устройство работает от 4 AA батарей, которые дают 6V. На диоде, который используется как защита от неправильного подключения питания, напряжение падает до 5,4V. Я проверял схему с NI-MH аккумулятором 4,8 V и она работала, но я рекомендую использовать щелочные батарейки по 1,5V каждая для лучшей производительности. Вы можете также использовать батареи 9V , но тогда вам необходим стабилизатор LM7805. Выход с модуля контролируется микроконтроллером PIC12F635 через порт GP5 (вывод 2). При движении на выходе датчика появляется напряжение около 3,3 V. Это напряжение распознаётся микроконтроллером ка высокий логический уровень, но я предпочел использовать это напряжение для управления NPN транзистором BC547, коллектор которого подключил к микроконтроллеру. Когда транзистор закрыт, на его коллекторе высокий логический уровень (+5V). При движении на выходе модуля появляется высокий логический уровень который насыщает транзистор и напряжение на его коллекторе падает до низкого логического уровня. Перемычки на датчике находится в позиции H, так что выходной сигнал датчика будет оставаться высоким до тех пор, пока движение не прекратится. Микроконтроллер PIC12F635 использует внутренний тактовый генератор, работающий на частоте 4,0 МГц.
Светодиод, подключенный к порту GP4 через токоограничивающий резистор мигает 3 раза при подключении питания. Пьезоэлектрический зуммер EFM-290ED подключенный к порту GP2 сообщает о наличии движения. Пьезоэлектрический зуммер дает максимально громкий звук на своей резонансной частоте. Зуммер который я использовал, имеет резонансную частоту 3,4 ± 0,5 кГц. После экспериментов с ним, я обнаружил, что максимальный звук он дает на частоте около 372 Гц. Хотя в документации сказано, что рабочее напряжение составляет от 7-12V, он работает и от напряжения 5V.
Программа
Программа написана на С и скомпилирована в MikroC Pro для PIC. При подаче питания светодиод мигает три раза и это свидетельствует о успешном запуске. После этого микроконтроллер ждет 60 секунд до начала проверки значения на выходе с датчика. Это требуется для стабилизации датчика. Когда микроконтроллер определяет срабатывание датчика, он запускает пьезозуммер на частоте 3725Гц. MikroC имеет встроенную библиотеку для генерации звука (Sound_Play()). Зуммер издает звук до тех пор, пока датчик ощущает движение. Когда движение прекращается, логический уровень на выходе датчика изменяется, но зуммер не замолкает сразу, а еще в течение примерно 10 секунд издает звук на частоте 3570Гц. Если он обнаруживает движение снова, он опять запустится на частоте 3725 Гц. Этот проект использует внутренний генератор запущенный на частоте 4,0 МГц, MCLR и сторожевой таймер выключены.
Источник
Пироэлектрический инфракрасный (PIR) датчик движения и Arduino
PIR (пассивные инфракрасные датчики) сенсоры позволяют улавливать движение.
Очень часто используются в системах сигнализации. Эти датчики малые по габаритам, недорогие, потребляют мало энергии, легки в эксплуатации, практически не подвержены износу. Кроме PIR, подобные датчики называют пироэлектрическими и инфракрасными датчиками движения.
Пирлоэлектрический датчик движения — общая информация
ПИР датчики движения по сути состоят из пироэлектрического чувствительного элемента (цилиндрическая деталь с прямоугольным кристаллом в центре), который улавливает уровень инфракрасного излучения. Все вокруг излучает небольшой уровень радиации. Чем больше температура, тем выше уровень излучения. Датчик фактически разделен на две части. Это обусловлено тем, что нам важен не уровень излучения, а непосредственно наличие движение в пределах его зоны чувствительности. Две части датчика установлены таким образом, что если одна половина улавливает больший уровень излучения, чем другая, выходной сигнал будет генерировать значение high или low.
Сам модуль, на котором установлен датчик движения, состоит также из дополнительной электрической обвязки: предохранители, резисторы и конденсаторы. В большинстве недорогих пир-датчиков используются недорогие чипы BISS0001 («Micro Power PIR Motion Detector IC»). Этот чип воспринимает внешний источник излучения и проводит минимальную обработку сигнала для его преобразования из аналогового в цифровой вид.
Одна из базовых моделей пироэлектрических датчиков подобного класса выглядит так:
Более новые модели PIR-датчиков имеют дополнительные выходы для дополнительной настройки и установленные коннекторы для сигнала, питания и земли:
ПИР датчики отлично подходят для проектов, в которых необходимо определять наличие или отсутствие человека в пределах определенного рабочего пространства. Помимо перечисленных выше достоинство подобных датчиков, они имеют большую зону чувствительности. Однако учтите, что пироэлектрические датчики не предоставят вам информации о том, сколько человек вокруг и насколько близко они находятся к датчику. Кроме того, сработать они могут и на домашних питомцев.
Общая техническая информация
Эти технические характеристики относятся к PIR датчикам, которые продаются в магазине Adafruit. Принцип работы аналогичных датчиков похожий, хотя технические характеристики могут отличаться. Так что прежде чем работать с ПИР-датчиком, ознакомьтесь с его даташитом.
- Форма: Прямоугольник;
- Цена: около 10.00 долларов в магазине Adafruit;
- Выходной сигнал: цифровой импульс high (3 В) при наличии движения и цифровой сигнал low, когда движения нет. Длина импульса зависит от резисторов и конденсаторов на самом модуле и разная в различных датчиках;
- Диапазон чувствительности: до 6 метров. Угол обзора 110° x 70°;
- Питание: 3В — 9В, но наилучший вариант — 5 вольт;
- BIS0001 (даташит);
- RE200B (даташит);
- NL11NH (даташит);
- Parallax (даташит).
Ссылки для заказа оборудования, которое используется в статье в дальнейшем из Китая
>Для заказа с Aliexpress:
Принцип работы пироэлектрических (PIR) датчиков движения
PIR датчики не такие простые как может показаться на первый взгляд. Основная причина — большое количество переменных, которые влияют на его входной и выходной сигналы. Чтобы объяснить основы работы ПИР датчиков, мы используем рисунок, приведенный ниже.
Пироэлектрический датчик движения состоит из двух основных частей. Каждая из частей включает в себя специальный материал, чувствительный к инфракрасному излучению. В данном случае линзы особо не влияют на работу датчика, так что мы видим два участка чувствительности всего модуля. Когда датчик находится в состоянии покоя, оба сенсора определяют одинаковое количество излучения. Например, это может быть излучение помещения или окружающей среды на улице. Когда теплокровный объект (человек или животное), проходит мимо, он пересекает зону чувствительности первого сенсора, в результате чего на модуле ПИР датчика генерируются два различных значения излучения. Когда человек покидает зону чувствительности первого сенсора, значения выравниваются. Именно изменения в показаниях двух датчиков регистрируются и генерируют импульсы HIGH или LOW на выходе.
Конструкция PIR датчика
Чувствительные элементы ПИР датчика устанавливается в металлический герметический корпус, который защищает от внешних шумов, перепадов температур и влажности. Прямоугольник в центре сделан из материала, который пропускает инфракрасное излучение (обычно это материал на основе силикона). За этой пластиной устанавливаются два чувствительных элемента.
Рисунок из даташита Murata:
Рисунок из даташита RE200B:
На рисунке из даташита RE200B видно два чувствительных элемента:
На рисунке выше приведена внутренняя схема подключения.
Линзы
Инфракрасные датчики движения практически одинаковые по своей структуре. Основные отличия — чувствительность, которая зависит от качестве чувствительных элементов. При этом значительную роль играет оптика.
На рисунке выше приведен пример линзы из пластика. Это значит, что диапазон чувствительности датчика представляет из себя два прямоугольника. Но, как правило, нам нужно обеспечить большие углы обзора. Для этого можно использовать линзы, подобные тем, которые используются в фотоаппаратах. При этом линза для датчика движения должна быть маленькая, тонкая и изготавливаться из пластика, хотя он и добавляет шумы в измерения. Поэтому в большинстве PIR датчиков используются линзы Френеля (рисунок из Sensors Magazine):
Линзы Френеля концентрируют излучение, значительно расширяя диапазон чувствительности пиродатчиков (рисунок с BHlens.com)
Рисунок из Cypress appnote 2105:
Теперь у нас есть значительно больший диапазон чувствительности. При этом мы помним, что у нас два чувствительных элемента и нам нужны не столько два больших прямоугольника, сколько большое количество маленьких зон чувствительности. Для этого линза разделяется на несколько секций, каждая из которых представляет из себя отдельную линзу Френеля.
На рисунке ниже можно увидеть отдельные секции — линзы Френеля:
На этом макроснимке обратите внимание, что фактура отдельных линз отличается:
В результате формируется целый набор чувствительных участков, которые взаимодействуют между собой.
Рисунки из даташита NL11NH:
Ниже еще один рисунко. Более яркий, но менее информативный. Кроме того, обратите внимание, что у большинства датчиков угол обзора составляет 110 градусов, а не 90.
Рисунок из IR-TEC:
Подключение PIR датчика движения
Большинство модулей с инфракрасными датчиками движения имеют три коннектора на задней части. Распиновка может отличаться, так что прежде чем подключать, проверьте ее! Обычно рядом с коннекторами сделаны соответсвующие надписи. Один коннектор идет к земле, второй выдает интересующий нас сигнал с сенсоров, третий — земля. Напряжение питания обычно составляет 3-5 вольт, постоянный ток. Однако иногда встречаются датчики с напряжением питания 12 вольт. В некоторых больших датчиках отдельного пина сигнала нет. Вместо этого используется реле с землей, питанием и двумя переключателями.
Для прототипа вашего устройства с использованием инфракрасного датчика движения, удобно использовать монтажную плату, так как большинство данных модулей имеют три коннектора, расстояние между которыми рассчитано именно под отверстия макетки.
В нашем случае красный кабель соответсвует питанию, черный — земле, а желтый — сигналу. Если вы подключите кабели неправильно, датчик не выйдет из строя, но работать не будет.
Тестирование PIR датчика движения
Соберите схему в соответсвии с рисунком выше. В результате, когда PIR датчик обнаружит движение, на выходе сгенерируется сигнал HIGH, который соответсвует 3.3 В и светодиод загорится.
При этом учтите, что пироэлектрический датчик должен ‘стабилизироваться’. Установите батарейки и подождите 30-60 секунд. На протяжении этого времени светодиод может мигать. Подождите, пока мигание закончится и можно начинать махать руками и ходить вокруг датчика, наблюдая за тем, как светодиод зажигается!
Настройка перезапуска датчика
У пироэлектрического датчика движения есть несколько настоек. Первой мы рассмотрим ‘перезапуск’.
После подключения, посмотрите на заднюю поверхность модуля. Коннекторы должны быть установлены в левом верхнем углу L, как это показано на рисунке ниже.
Обратите внимание, что при таком варианте подключения, светодиод не горит постоянно, а включается-выключается, когда вы двигаетесь возле него. Это опция ‘без перезапуска’ (non-retriggering).
Теперь установите коннектор в позицию H. После тестирования окажется, что светодиод горит постоянно, если кто-то движется в пределах зоны чувствительности датчика. Это режим ‘перезапуск’.
Рисунок ниже из даташита датчика BISS0001:
Для большинства случаев режим ‘перезапуск’ (коннектор в позиции H кк это показано на рисунке ниже) лучше.
Настраиваем чувствительность
На многих инфракрасных датчиках движения, в том числе и у компании Adafruit, установлен небольшой потенциометр для настройки чувствительности. Вращение потентенциометра по часовой стрелке добавляет чувствительность датчику.
Изменение времени импульса и времени между импульсами
Когда мы рассматривает PIR датчики, важны два промежутка времени ‘задержки’. Первый отрезок времени — Tx: как долго горит светодиод после обнаружения движения. На многих пироэлектрических модулях это время регулируется встроенным потенциометром. Второй отрезок времени — Ti: как долго светодиод гарантированно не загорится, когда движения не было. Изменять этот параметр не так просто, для этого может понадобится паяльник.
Давайте взглянем на даташит BISS:
На датчиках от Adafruit есть потенциометр, отмеченный как TIME. Это переменный резистор с сопротивлением 1 мегаом, который добавлен к резисторам на 10 килоом. Конденсатор 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 датчиков
Если на вашем датчике нет потенциометров, можно провести настройку с помощью резисторов.
Нас интересуют резисторы R10 и R9. К сожалению, китайцы умею многое. В том числе и путать надписи. На рисунке выше приведен пример, на котором видно, что перепутаны R9 с R17. Отследить подключение по даташиту. R10 подключен к 3 пину, R9 — к 7 пину.
Tx is = 24576 * R10 * C6 =
R10 = 4.7K и C6 = 10 нанофарад
R9 = 470K и C7 = 0.1 микрофарад
Вы можете изменить время задержки установив различные резисторы и конденсаторы.
Подключение 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
val = digitalRead(inputPin); // считываем значение с датчика
digitalWrite(ledPin, HIGH); // включаем светодиод
if (pirState == LOW) <
// мы только что включили
// мы выводим на серийный монитор изменение, а не состояние
digitalWrite(ledPin, LOW); // выключаем светодиод
if (pirState == HIGH)<
// мы только что его выключили
// мы выводим на серийный монитор изменение, а не состояние
Не забудьте, что для работы с пироэлектрическим датчиком не всегда нужен микроконтроллер. Порой можно обойтись и простым реле.
Источник