Датчик движения ардуино

Содержание

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

ПИР датчики движения по сути состоят из пироэлектрического чувствительного элемента (цилиндрическая деталь с прямоугольным кристаллом в центре), который улавливает уровень инфракрасного излучения. Все вокруг излучает небольшой уровень радиации. Чем больше температура, тем выше уровень излучения. Датчик фактически разделен на две части. Это обусловлено тем, что нам важен не уровень излучения, а непосредственно наличие движение в пределах его зоны чувствительности. Две части датчика установлены таким образом, что если одна половина улавливает больший уровень излучения, чем другая, выходной сигнал будет генерировать значение 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:

Датчик и освещение

Сегодня датчики присутствия уже не представляют собой новинки. Их можно встретить в самых разнообразных, а порой и неожиданных местах, как в частном доме, так и в общественных помещениях государственных структур.
Датчики Steinel ir quattro или Arduino довольно часто используются вместе с осветительными приборами, обеспечивая более рациональный и эффективный контроль над интенсивностью освещения.
Преимущества использования Arduino или Steinel ir quattro заключаются в следующих аспектах:

  • экономия электроэнергии, благодаря тому, что свет зажигается только при необходимости;
  • удобное применение одновременно с другими приборами;
  • доступность по ценовой политике;
  • возможность легкой настройки приборов (особенно модели ir quattro);
  • возможность встраивания в охранные системы в качестве светового сигнала.

Освещение

Но, несмотря на столь явные преимущества, и Steinel ir quattro, и Arduino имеют один существенный недостаток – высокая чувствительность в работе. Они могут сработать случайно, поскольку точно настроить их чувствительность все же не всегда удается. В результате датчики могут среагировать даже на небольшое движение в контролируемой области. Это связано с тем, что даже малоподвижный объект способен давать достаточный для срабатывания устройства отраженный сигнал. Данный недостаток больше характерен для Arduino, чем для Steinel (модели ir quattro).
Но в случае применения прибора присутствия в качестве части охранной системы, такой недостаток трансформируется в плюс. Здесь даже на руку тот факт, что устройство функционирует длительный период, что позволяет отследить даже небольшое движение в ситуации длительного сохранения объектом неподвижности.

Особенности конструкции инфракрасного PIR датчика

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

Конструкция

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

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

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

Особенности фокусирующей линзы

Конструкция пироэлектрического элемента не позволяет ему принимать инфракрасное излучение с достаточной эффективностью. Для концентрации потока тепловых лучей используется специальная линза. Существует два варианта конструкции:

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

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

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

Где используется

Инфракрасные ПИР-датчики активно используются в разных сферах деятельности:

  • технологические линии или установки;
  • охранные системы;
  • бытовые комплексы, системы умного дома и тому подобное.

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

Устройство и характеристики

Устройство отправляет SMS при возникновении следующих событий:

  • открытие двери (герконовый датчик);
  • резкое изменение освещения (фоторезистор);
  • движение (PIR датчик);
  • выход температуры из заданного диапазона;
  • низкое напряжение батареи.

Пример SMS с событием

Также, раз в сутки можно настроить время ежедневного отчета

Питается устройство от 3-х батареек AA. Расчетное время работы ≥6мес.

Настройка устройства, считывание логов событий и построение месячного графика температуры происходит с помощью утилиты (Python 2.7 + Tk + pyserial + matplotli).

Основное окно утилиты настройки

Окно лога событий

Окно лога температуры

Подключаем датчик движения к Ардуино

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

KY-032, модуль инфракрасного датчика

Модуль инфракрасного датчика

Модуль от 60 р в небольших партиях
Снова датчик 2 в 1. Данное устройство гибрид двух датчиков KY-005 (модуль инфракрасного светодиода) и KY-022 (датчик ИК приемника) в качестве датчика + плата управления на операционном усилителе.  Девайс имеет несколько настроек. 1. На яркость светодиода. 2. На порог срабатывания фотодиода. Чувствительность регулируется от 2 до 40 см. Следует учесть что срабатывание на темных поверхностях несколько хуже чем на светлых вследствие плохого отражения. Принцип работы: светодиод испускает инфракрасный свет и он, если на пути излучения находится препятствие, отражается в фотодиод.

Недостатки

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

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

Схема подключения датчика движения к Ардуино

Подключение Pir-датчика к Ардуино выполнить не сложно. Чаще всего модули с сенсорами движения оснащены тремя коннекторами на задней части. Распиновка каждого устройства зависит от производителя, но чаще всего возле выходов есть соответствующие надписи. Поэтому, прежде чем выполнить подключение датчика к Arduino необходимо ознакомиться с обозначениями. Один выход идет к земле (GND), второй – обеспечивает выдачу необходимого сигнала с сенсоров (+5В), а третий является цифровым выходом, с которого снимаются данные.

Подключение Pir-сенсора:

  • «Земля» – на любой из коннекторов GND Arduino;
  • Цифровой выход – на любой цифровой вход или выход Arduino;
  • Питание – на +5В на Arduino.

Схема подключения инфракрасного датчика к Ардуино представлена на рисунке.

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

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

На плате HC-SR501 имеются дополнительные отверстия для двух компонентов, рядом расположена маркировка, посмотреть на нее можно сняв линзу Френеля.

Назначение дополнительных отверстий:►  RT — это предназначено для термистора или чувствительного к температуре резистора. Добавление этого позволяет использовать HC-SR501 в экстремальных температурах, а также в некоторой степени повышает точность работы детектора.►  RL — это соединение для светозависимого резистора или фоторезистора. Добавляя компонент, HC-SR501 будет работать только в темноте, что является общим приложением для чувствительных к движению систем освещения.

API-функции

Подробное и полное описание API-функций и их параметров можно найти в скомпилированном HTML-файле, который находится в папке «Documentation».

Описание примера

Готовый пример для P-NUCLEO-WB55 и X-NUCLEO-IKS01A3 можно найти в папке «Projects», при этом пользователю предлагаются готовые проекты для нескольких IDE. Для отображения процесса инициализации можно использовать обычный терминал. Параметры настройки последовательного канала UART, такие как порт, скорость передачи, разрядность данных, наличие и тип бита четности, количество стоп-битов, представлены на рисунке 3.

Рис. 3. Настройка терминала

После нажатия кнопки сброса, расположенной на плате P-NUCLEO-WB55, микроконтроллер выполняет следующие действия:

  • инициализирует коммуникационные интерфейсы UART и I²C;
  • проверяет, все ли датчики присутствуют и работают;
  • генерирует случайный MAC-адрес BLE;
  • инициализирует датчики и аппаратную часть BLE;
  • инициализирует BLE SW и библиотеки MotionFX, MotionAR, MotionCP, MotionGR и MotionID;
  • инициализирует консоль, добавляя характеристики Stdin/Stdout и Stderr;
  • инициализирует службу конфигурации BLE, передающую/сбрасывающую статус калибровки.

Программа микроконтроллера может генерировать прерывания, сигнализирующие о различных событиях: свободном падении, наклоне, пробуждении, одиночном касании, двойном касании, определенном положении устройства в пространстве или о заданных показаниях шагомера. Эти прерывания передаются по Bluetooth на подключенное Android/iOS-устройство.

Микроконтроллер также передает Android/iOS-устройству:

  • три кватерниона каждые 30 мс;
  • данные о температуре, влажности и давлении каждые 500 мс;
  • показания трехосевого акселерометра, гироскопа и магнитометра каждые 50 мс.

Программа микроконтроллера считывает значения акселерометра, магнитометра и гироскопа с частотой 100 Гц.

Библиотека MotionFX (iNEMOEngine PRO) использует функции слияния данных инерционных сенсоров (Sensor Data Fusion), рассчитывает 100 кватернионов в секунду и передает их клиенту, подключенному по BLE.

Библиотека MotionAR (iNEMOEngine PRO) может распознавать следующие виды активности:

  • неподвижное состояние;
  • ходьба;
  • быстрая ходьба;
  • бег трусцой;
  • езда на велосипеде;
  • езда на автомобиле.

Библиотека MotionCP (iNEMOEngine PRO) в режиме реального времени распознает положение устройства:

  • на столе;
  • в руке;
  • возле головы;

и определяет, каким образом его переносит пользователь:

  • в кармане рубашки;
  • в кармане брюк;
  • в раскачивающейся руке.

Библиотека MotionGR (iNEMOEngine PRO) может распознавать жесты, например:

  • устройство взяли в руку;
  • устройство повернули для просмотра экрана;
  • устройство встряхнули для пробуждения.

Библиотека MotionPM (iNEMOEngine PRO) подсчитывает количество шагов и вычисляет их частоту.

Библиотека MotionID (INEMOEngine PRO) может распознавать уровни интенсивности движения устройства или его пользователя:

  • неподвижное лежание на столе;
  • лежание на кровати или диване;
  • легкое движение;
  • движение на велосипеде;
  • набор текста;
  • медленная ходьба;
  • ходьба;
  • быстрая ходьба;
  • бег трусцой;
  • быстрый бег;
  • спринт.

Некоторые рекомендации

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

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

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

  1. Разделить фразу на отдельные слова, отслеживая промежутки тишины;
  2. Разложить запись каждого отдельного слово в ряд Фурье — таким образом определятся коэффициенты, соответствующие отдельным частотным составляющим;
  3. Пропустить вычисленные в п.2 коэффициенты через нейросеть, которая на выходе даст значение слов.

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

Настройка HC-SR501

На этом уроке мы будем использовать модуль HC-SR501. Этот модуль очень распространен и применяется во множестве DIY проектов в силу своей дешевизны. У датчика имеется два переменных резистора и перемычка для настройки режима. Один из потенциометров регулирует чувствительность прибора. Чем она больше, тем дальше «видит» датчик. Также чувствительность влияет на размер детектируемого объекта. К примеру, можно исключить из срабатывания собаку или кошку. Второй потенциометр регулирует время срабатывания T
. Если датчик обнаружил движение, он генерирует на выходе положительный импульс длиной T
. Наконец, третий элемент управления — перемычка, которая переключает режим датчика. В положении L
датчик ведет отсчет Т
от самого первого срабатывания. Допустим, мы хотим управлять светом в ванной комнате. Зайдя в комнату, человек вызовет срабатывание датчика, и свет включится ровно на время Т
. По окончании периода, сигнал на выходе вернется в исходное состояние, и датчик будет дать следующего срабатывания. В положении H
датчик начинает отсчет времени T
каждый раз после обнаружения движения. Другими словами, любое шевеление человека вызовет обнуление таймера отсчета Т
. По-умолчанию, перемычка находится в состоянии H
.

Инструкция по изготовлению лодки с пультом

Проверку работы ИК-приемника и сервомотора на Ардуино лучше проводить с отключенным электромоторчиком, поскольку он будет создавать сильные вибрации при работе. На этом этапе тестирования проекта следует лишь оценить подвижность киля и отцентровать рычаг привода на сервомоторе. Необходимо сделать так, чтобы при нажатии кнопки «вперед» или «стоп» на пульте, киль вставал по центру.

1. Изготовление корпуса лодки из пеноплекса

Изготовление корпуса лодки на Ардуино своими руками

Размеры и форма лодки могут быть абсолютно разными — все зависит лишь от фантазии. Что касается прорезей, то они должны соответствовать размерам деталей. На трафарете (слева-направо) размечены прорези для: платы Ардуино UNO, сервомотора, привода киля и микромоторчика. Учтите, что привод от сервомотора к килю должен свободно ходить в прорези, для этого надо точно рассчитать радиус.

2. Изготовление деталей для привода и управления

Изготовление деталей для привода и управления лодкой

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

Сборка деталей для привода радиоуправляемой лодки

3. Сборка лодки на Ардуино с управлением

Для начала следует установить плату, сервопривод и двигатель

В этом проекте мы обошлись без использования макетной платы. Если вспомнить схему подключения ИК приемника к Ардуино, то она очень проста (слева-направо): A0 — GND — 5V  и не требует расходов на приобретение макетной платы. Транзистор мы использовали в этой схеме для включения советского электромоторчика от 3,3 V.

Сборка электрической схемы лодки на ИК управлении

Транзистор размещен на пинах 12, 11 и 10. На Pin11 (средняя ножка транзистора — это база) мы подаем напряжение для включения электродвигателя. Pin12 и Pin10 в скетче не используются, поэтому служат нам эмиттером и коллектором. К Pin12 подключен выход 3,3 V, а к Pin10 подключен электромоторчик (красный плюсовой провод).

4. Крепление привода винта на валу двигателя

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

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

Скетч для лодки на Ардуино с ИК пультом

#include <IRremote.h> // библиотека для IR-приемника
#include <Servo.h>      // библиотека для сервомотора

// Замените коды команд от пульта ДУ на свои значения
#define forward 16736925
#define left 16769565
#define right 16754775
#define turm_left 16712445
#define turm_right 16711935
#define stope 16755285

Servo servo; // присваиваем имя сервомотору

int RECV_PIN = A0;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600); // подключаем монитор, чтобы узнать коды кнопок пульта
  irrecv.enableIRIn();
  pinMode(11, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(A0, INPUT);
  servo.attach (7);
}

void loop() {
  
    if (irrecv.decode(&results)) {
    
    Serial.println(results.value); // выводим на монитор порта коды с пульта ДУ

    if (results.value == left) {
    servo.write(60);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == right) {
    servo.write(120);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == turm_left) {
    servo.write(10);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == turm_right) {
    servo.write(170);
    digitalWrite(11, HIGH);  
   }
   
    if (results.value == forward) {
    servo.write(90);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == stope) {
    servo.write(90);
    digitalWrite(11, LOW);
   }
   
    irrecv.resume(); // Ждем следующий сигнал от пульта
  }  
}

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

Как выглядит и где используется

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

Это основной физический принцип, по которому работают датчики присутствия, с центральным пироэлектрическим элементом. Он помещается в герметичный или пластиковый корпус.

Такие детекторы движения с успехом применяются:

  • в промышленных системах охранной сигнализации;
  • управление освещением в квартирах или офисных помещениях. Часто эти детекторы помогают автоматизировать процесс освещения;
  • в системах «Умный дом».

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

Пример работы

Рассмотрим ситуацию использования датчика на примере микроконтроллера Ардуино Уно и сенсора HC-SR501. Его характеристики:

  • рабочее напряжение постоянного тока — 4.5–20 В;
  • ток покоя —  ≈ 50 мкА;
  • выходное напряжение — 3.3 В;
  • диапазон температур — от −15 до +70 градусов Цельсия;
  • габариты — 32×24 мм;
  • угол детектирования — 110 градусов;
  • дистанция срабатывания — до 7 метров.

В указанном сенсоре установлены два пироэлектрических датчика IRA-E700.

Сверху они прикрыты сегментированной полусферой. Каждый сегмент — фокусирующая тепло на определенный участок ПИР-датчика линза.

Внешний вид устройства:

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

Настройка

ИК-модуль HC-SR501 весьма прост в настройке и дешев. У него есть перемычка для конфигурирования режима и пара подстроечных резисторов. Общая чувствительность настраивается первым потенциометром: чем она выше, тем шире зона «видимости» гаджета».

Другой потенциометр управляет временем срабатывания устройства: если обнаружено перемещение, на выходе создается положительный электрический импульс определенной длины (от 5 до 300 секунд).

Следующий управляющий элемент — перемычка. От нее зависит режим работы.

  • в позиции L время отсчитывается от первого срабатывания. То есть, к примеру, если человек зайдет в помещение, система среагирует и включит свет на указанное настройкой потенциометра время. Когда оно истечет, выходной сигнал возвращается к начальному показателю, и комплекс перейдет в режим ожидания следующей активации;
  • в позиции H обратный отсчет будет начинаться после каждого детектирования события движения, а любое перемещение станет обнулять таймер. В этом положении перемычка стоит по умолчанию.

Соединение датчика с контроллером

Подключение датчика движения к Ардуино следует выполнять по указанной схеме:

Пин OUT соединяется с пином 2 Уно, а VCC подсоединено к контакту +5 В. Принципиальная схема конструкции:

Программная часть

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

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

Модифицируем устройство добавлением реле, которое станет включать свет. Принципиальная схема подключения:

Макет:

Программа для реализации данного функционала:

Теперь, если собрать компоненты по схеме, загрузить скетч в Ардуино и соединить систему с электросетью дома, по сигналу сенсора перемещения контроллер заставит сработать реле, а то, в свою очередь, включит свет.

Подключение 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 = ~1.2 секунд

R10 = 4.7K и C6 = 10 нанофарад

и

Ti = 24 * R9 * C7 = ~1.2 секунд

R9 = 470K и C7 = 0.1 микрофарад

Вы можете изменить время задержки установив различные резисторы и конденсаторы.