Как подключить датчик движения к ардуино уно. Инфракрасный датчик движения HC-SR501. Пирлоэлектрический датчик движения - общая информация

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

PIR - это сокращённое «passive infrared - пассивные инфракрасные» датчики. Пассивные - потому что датчики сами не излучают, а только воспринимают излучение с длиной волны от 7 до 14 мкм. PIR-датчик содержит чувствительный элемент, который реагирует на изменение теплового излучения. Если оно остается постоянным - электрический сигнал не генерируется. Чтобы датчик среагировал на движение, применяют линзы Френеля с несколькими фокусирующими участками, которые разбивают общую тепловую картину на активные и пассивные зоны, расположенные в шахматном порядке. Человек, находясь в сфере работы датчика, занимает несколько активных зон полностью или частично. Поэтому, даже при минимальном движении происходит перемещение из одних активных зон в другие, что вызывает срабатывание датчика. А вот фоновая тепловая картина меняется очень медленно и равномерно, поэтому датчик на нее не реагирует. Высокая плотность активных и пассивных зон позволяет датчику надежно определить присутствие человека при малейшем движении.

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

PIR датчик обнаруживает инфракрасный изменённый сигнал, вызванный движением человеческого тела и преобразует его в колебания напряжения. Схеме не требуется понижающий трансформатор и она может работать непосредственно от 220V. Балластный конденсатор С7 должен быть на 0.33uF/275V, а лучше на 400V.

Особенности схемы датчика

  • Рабочее напряжение схемы: 5V-12V.
  • Ток нагрузки 80 мА, когда реле включено.
  • В режиме ожидания ток: 100 мкА
  • ON/AUTO/OFF режимы работы.
  • Автосброс, если сигнал исчезает за 3 секунды.
  • Релейный выход для подключения нагрузки.
  • Фоторезистор LDR для обнаружения дневного/ночного режима.
  • Джампер J1 для установки режима.
  • Резистор PR1 устанавливает чувствительность датчика.
  • Резистор PR2 устанавливает выходную продолжительность сигнала состояния выхода.

Схема PIR датчика предлагает три режима работы (ON, AUTO, OFF), которые могут быть установлены вручную джампером J1. CDS система представляет собой КМОП-триггер Шмитта, что используется, чтобы различать дневное и ночное время.

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!");

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

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

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

Общие сведения о датчике

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

Принцип работы

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

Основные характеристики

Главные рабочие показатели, которые должен учитывать потребитель, касаются радиусов действия устройства и способностей к автономной работе. Что касается параметров по диапазонам охвата, то контролируемая зона, как правило, составляет 6-7 м. Этого достаточно, если дело касается охраны частного дома и тем более квартиры. В некоторых моделях предусматривается и функция микрофона - в этой части также важно определить радиус действия, который может достигать и 10 м. Вместе с этим PIR-датчик может иметь прямое или автономное энергоснабжение. Если планируется организация охранной системы, то лучше приобретать модели со встроенными аккумуляторами, которые не требуют проводки. Далее определяется время, на протяжении которого устройство сможет поддерживать свою функцию без дозарядки. Современные модели не требуют большого энергетического обеспечения, поэтому в пассивном состоянии могут работать порядка 15-20 дней.

Конструкция устройства

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

Система GSM в датчике

Данный опционал можно назвать излишним, хотя есть немало приверженцев такой концепции. Суть совмещения функции определения движения посредством сенсора и модуля GSM обусловлена стремлением уже к полной автономности устройства. Как отмечалось выше, датчик связывается с центральным пультом управления, от которого в дальнейшем исходит сигнал на оперативный охранный комплекс или на телефон непосредственного владельца. Если же используется PIR-датчик движения с системой GSM, то отправка тревожного сигнала может осуществляться моментально в момент регистрации факта проникновения. То есть этап переправки сигнала на промежуточный контроллер пропускается, что позволяет выиграть иногда несколько секунд. И это не говоря о повышении надежности за счет исключения дополнительных звеньев в цепи передачи сообщения. В чем же недостаток данного решения? Во-первых, оно полностью полагается на работу GSM-связи, что, напротив, понижает надежность системы, но уже по другой причине. Во-вторых, наличие модуля как такового негативно сказывается на работе чувствительного элемента - соответственно, точность фиксации проникновения снижается.

Программное обеспечение

В сложных охранных комплексах, где используются интеллектуальные контроллеры с высокой степенью автоматизации, не обойтись без средств программирования датчика. Обычно производители разрабатывают специальные готовые программы с обширным набором режимов эксплуатации. Но при возможности пользователь может создать и свой алгоритм действия датчика в тех или иных условиях. Его можно будет интегрировать через официальное программное обеспечение, которое поставляется вместе с аппаратурой. Обычно таким образом настраивается схема действия прибора в моменты фиксации тревоги - например, прописывается алгоритм отправки сообщений, если модель имеет тот же модуль обеспечения сотовой связи. С другой стороны, распространены домашние не охранные PIR-датчики светодиодные, отзывы о которых отмечают эффективность информирования о работе отдельных компонентов системы освещения. В каждом устройстве есть микроконтроллер, который отвечает за действия прибора в соответствии с заложенными командами.

Установка сенсора

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

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

Устройство необходимо подключить к основному реле контроллера и системе энергоснабжения. На типовом аппарате предусматривается плата с клеммами, предназначенными для источника питания. Чаще всего используется источник с напряжением 9-14 В, а ток потребления может составлять 12-20 мА. Обычно производители указывают электротехнические характеристики посредством маркировки клемм. Соединение осуществляется по одной из стандартных схем с учетом особенностей эксплуатации конкретной модели. В некоторых модификациях возможно подключение PIR-датчика без проводки, то есть напрямую к сети. Это в некотором роде комбинированные конструкции, которые устанавливаются на открытых местах и управляют теми же системами освещения. В случае установки охранного сенсора такой вариант вряд ли будет уместен.

Нюансы эксплуатации

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

Датчик в системе «Ардуино»

Комплекс «Ардуино» является одной из самых популярных систем управления домашней автоматикой. Это контроллер, к которому подключаются источники освещения, системы мультимедиа, отопительные приборы и другая бытовая техника. Датчики в этом комплексе не являются конечными функциональными устройствами - они лишь выполняют роль индикаторов, в зависимости от состояния которых центральный блок с микропроцессором принимает то или иное решение в соответствии с заложенным алгоритмом. Подключается PIR-датчик «Ардуино» через три канала, среди которых выходной а также линии питания с разной полярностью - GND и VCC.

Популярные модели PIR-датчиков

Большинство датчиков преимущественно выпускаются китайскими производителями, поэтому стоит готовиться к проблемам с электротехнической начинкой. Приобрести по-настоящему качественный сенсор можно разве что в комплектации с контроллерами. Тем не менее многие хвалят датчик движения PIR MP Alert A9, который хоть и представляет бюджетный сегмент, но отличается достойной сборкой и неплохими рабочими качествами. По-своему интересны и такие модели, как Sensor GH718 и HC-SR501. Это датчики открытого типа, которые можно без труда замаскировать или включить в комплекс того же контроллера. Что касается эксплуатационных свойств, то радиус охвата описанных моделей составляет 5-7 м, а время автономной работы - в среднем 5 дней.

Сколько стоит устройство?

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

Заключение

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

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

Примерно такие:


Реагируют они на изменение излучения в инфракрасном диапазоне, а именно в средней его части - 5-15 мкм (тело среднего здорового человека излучает в диапазоне около 9 мкм). С точки зрения конечного потребителя штука очень простая - вход питания (чаще 12 вольт) и выход реле (обычно твердотельное и с нормально замкнутыми контактами). Прокрался кто-нибудь тепленький мимо - реле сработало. Скукота. Но внутри все не так просто.
Сегодня мы немного времени посвятим теории, а затем распотрошим один такой девайс и сделаем из него не просто датчик, реагирующий на факт движения, но регистрирующий направление движения.

Переходим к практическим упражнениям

Вооружившись теоретическими сведениями достанем паяльник. На фото показан разобранный датчик (снята передняя крышка с линзами Френеля и металлический экран).


Смотрим маркировку ближайшей к пироэлектрическому сенсору (круглый металлический с окошечком - это он и есть) микросхемы и (о, удача!) ею оказывается LM324 - счетверенный ОУ. Путем рассматривания окружающих элементов находим вывод ОУ, наиболее вероятно подходящий для наших целей (в моем случае это оказался вывод 1 микросхемы). Теперь неплохо бы проверить, а то ли мы нашли. Обычно для этого используют осциллограф. У меня под рукой его не оказалось. Зато оказался ардуино. Поскольку уровень сигнала после усиления составляет порядка единиц вольт, и особой точности замеров нам не нужно (достаточно качественной оценки), то входы АЦП ардуино вполне подойдут. К найденному выводу ОУ и минусу питания паяем проводки и выводим на макетку. Провода не должны быть длинными. В противном случае есть шанс померить не сигнал датчика, а что-нибудь совершенно другое.
Теперь подумаем насколько быстро нужно считывать сигнал, чтобы получить что-то вменяемое. Выше было сказано, что частотный диапазон полезного сигнала ограничен величиной примерно 10 Гц. Вспоминая теорему Котельникова (или Найквиста - кому что больше нравится), можно сделать вывод, что замерять сигнал с частотой выше 20 Гц смысла нет. Т.е. период дискретизации в 50 мс вполне подойдет. Пишем простой скетч, который каждые 50 мс читает порт А1 и вываливает его значение в сериал (строго говоря, измерения сигнала происходят реже, чем через 50 мс, поскольку на запись в порт тоже нужно время, однако для наших целей это не важно).

Unsigned long time; void setup() { Serial.begin(9600); pinMode(A1, INPUT); time=millis(); } void loop() { if ((millis()-time) >= 50) { Serial.println(analogRead(A1)); } time=millis(); }

Включаем и машем перед датчиком руками (можно побегать, даже полезнее). На стороне компьютера данные с порта вываливаем в файл.
stty -F /dev/ttyUSB0 raw ispeed 9600 ospeed 9600 -ignpar cs8 -cstopb -echo cat /dev/ttyUSB0 > output.txt
Строим график (в файл добавлен столбец с нумерацией отсчетов):
gnuplot> plot "output.txt" using 1:2 with lines


И видим то, что, собственно, и хотели - разнополярные всплески напряжения. Ура, теория работает и провод припаян куда надо. А простой анализ (проще говоря - рассматривание) графика позволяет сделать вывод, что более или менее надежной фиксацией факта наличия движения можно считать отклонение сигнала на 150 единиц от среднего значения.
Настало время сделать, наконец, датчик направления движения.
Модифицируем схему. Помимо аналогового сигнала сенсора подключим к ардуино пару светодиодов (порты 2 и 3, не забудьте токоограничительные резисторы) и напишем чуток более сложный скетч.

Развернуть

int a1; int state2=0; long average=0; int n=0; unsigned long time; void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(A1, INPUT); digitalWrite(2, LOW); digitalWrite(3, LOW); delay (30000); //мой датчик после включения //до начала работы тупит 30 сек. time=millis(); //тысячу раз делаем замер сигнала для //вычисления его среднего значения //чтобы было от чего отсчитывать отклонения while (n <= 1000) { ++n; a1=analogRead(A1); average=average+a1; delay(50); } average=average/1000; //одновременным включением светодиодов //сигнализируем, что система готова digitalWrite(2, HIGH); digitalWrite(3, HIGH); delay(1000); digitalWrite(2, LOW); digitalWrite(3, LOW); time=millis(); } void loop() { //опрашиваем датчик каждые 50 мс if ((millis()-time) >= 50) { //этим простым выражением аналаговый сигнал //превращаем в дискретный со значениями -1/0/1 a1=(analogRead(A1)-average)/150; //если было изменение полярности сигнала, то //включаем нужный светодиод switch (a1) { case 1: if (state2=-1) {digitalWrite(2, HIGH);digitalWrite(3, LOW);} state2=a1; break; case -1: if (state2=1) {digitalWrite(2, LOW);digitalWrite(3, HIGH);} state2=a1; break; } //повторяем сначала time=millis(); } }


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


Наслаждаемся результатом.

Теги:

  • PIR
  • датчик движения
  • arduino
Добавить метки

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

Урок подойдет начинающим, но будет интересен и более опытным инженерам.

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

Ниже весь список комплектующих, которые нам пригодятся для нашего урока.

1 x Плата Arduino (мы использовали Arduino Uno)
1 x Светодиод (LED, цвет не имеет значения)
1 x Резистор/сопротивление 220 Ом
1 x Макетная плата
1 x USB-кабель Arduino
1 x Батарейка 9 В с зажимом (опционально)
6 x Проводов

Шаг 2: Позиционирование деталей

Сначала подключите ультразвуковой датчик и светодиод на макетной плате. Подключите короткий кабель светодиода (катод) к контакту GND (земля) датчика. Затем установите резистор в том же ряду, что и более длинный провод светодиода (анод), чтобы они были соединены.

Шаг 3: Подключение частей

Теперь вам нужно подключить несколько проводов на задней панели датчика. Есть четыре контакта - VCC, TRIG, ECHO и GND. После вставки проводов вам необходимо выполнить следующие подключения:

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

Датчик -> Arduino
VCC -> 5V (питание)
TRIG -> 5*
ECHO -> 4*
GND -> GND (земля)

* - может быть подключен к любым двум цифровым выводам Arduino, просто убедитесь, что вы изменили их в коде позже.

Шаг 4: Загрузка кода

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

Const int ledPin = 6; // Цифровой выход светодиода const int trigPin = 5; // Цифровой выход для подключения TRIG const int echoPin = 4; // Цифровой выход для подключения ECHO const int ledOnTime = 1000; // Время, в течение которого светодиод остается включенным, после обнаружения движения (в миллисекундах, 1000 мс = 1 с) const int trigDistance = 20; // Расстояние (и меньшее значение) при котором срабатывает датчик (в сантиметрах) int duration; int distance; void setup() { pinMode(ledPin, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { digitalWrite(trigPin, LOW); digitalWrite(trigPin, HIGH); delay(1); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration * 0.034 / 2; if (distance <= trigDistance) { digitalWrite(ledPin, HIGH); delay(ledOnTime); digitalWrite(ledPin, LOW); } delay(100); }

Шаг 5: Конечный результат (видео)

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

Всем хороших проектов!