- Как подключить датчик движения к Ардуино
- PIR датчик движения Ардуино: характеристики
- Как подключить датчик движения к Ардуино
- Про датчик движения и подключение его к Arduino
- Arduino.ru
- Глючит датчик движения (или я. )
- Ардуино: инфракрасный датчик движения, ПИР
- Принцип действия пироэлектрических датчиков движения
- Настройка HC-SR501
- Подключение HC-SR501 к Ардуино Уно
- Программа
- Управление светом при помощи датчика движения
- Программа
- Заключение
Как подключить датчик движения к Ардуино
Рассмотрим, как подключить PIR sensor к Ардуино (пироэлектрический инфракрасный датчик движения) и рассмотрим скетч для автоматического светильника, который будет включаться при обнаружении движения в комнате. Также рассмотрим функцию millis Arduino в языке C++, которую часто требуется использовать в программах (скетчах) для создания многозадачности микроконтроллера Ардуино Уно.
PIR датчик движения Ардуино: характеристики
Сегодня уже никто не удивляется при автоматическом включении освещения в подъездах многоквартирных домов, которые срабатывают при прохождении человека. В большинстве приборов установлены пассивные датчики движения (PIR). Рассмотрим в этой статье устройство датчика движения, схему его подключения к Arduino UNO и соберем на его основе автоматический включатель освещения.
Линза Френеля концентрирует инфракрасное излучение
Модуль с ПИР датчиком состоит из пироэлектрического элемента под пластиковой линзой Френеля — цилиндрическая деталь с прямоугольным кристаллом в центре, который улавливает уровень инфракрасного излучения и пропускает его через себя. При подключении IR к Arduino мы уже выяснили, что все предметы имеют инфракрасное излучение и чем выше температура, тем интенсивнее излучение.
Устройство и распиновка пироэлектрического датчика движения
PIR датчики движения практически одинаковы по устройству. Диапазон чувствительности PIR сенсоров для Ардуино до 6 метров, угол обзора 110° x 70°. Питание — 5 Вольт, а выходной цифровой сигнал имеет значение 0, когда движения нет и значение 1 при наличии движения. Чувствительные элементы устанавливается в герметический корпус, который защищает от влажности и перепадов температур.
Как подключить датчик движения к Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- PIR датчик движения HC-SR501;
- беспаечная макетная плата;
- 1 светодиод и резистор 220 Ом;
- провода «папа-папа», «папа-мама».
Распиновка датчиков движения Ардуино у разных производителей может отличаться, но рядом с контактами есть надписи (см. фото выше). Поэтому, перед подключением внимательно изучите модуль. Один выход идет к GND, второй к питанию 5 Вольт (VCC), а третий выход (OUT) выдает цифровой сигнал с PIR сенсора. Соберите схему, как на фото выше, подключите светодиод к пину 12 на Ардуино и загрузите следующий скетч.
Источник
Про датчик движения и подключение его к Arduino
Опубликовано: 25.10.2016 19:00
Всем привет, сегодня мы рассмотрим устройство под названием датчик движения. Многие из нас слышали об этой штуке, кто то даже имел дело с этим устройством. Что же такое датчик движения? Попробуем разобраться, итак:
Датчик движения, или датчик перемещения — устройство (прибор) обнаруживающий перемещение каких либо объектов. Очень часто эти устройства, используются в системах охраны, сигнализации и мониторинга. Форм факторов этих датчиков существует великое множество, но мы рассмотрим именно модуль датчика движения для подключения к платам Arduino, и именно от фирмы RobotDyn. Почему именно этой фирмы? Я не хочу заниматься рекламой этого магазина и его продукции, но именно продукция данного магазина была выбрана в качестве лабораторных образцов благодаря качественной подаче своих изделий для конечного потребителя. Итак, встречаем — датчик движения (PIR Sensor) от фирмы RobotDyn:
Эти датчики малы по габаритам, потребляют мало энергии и просты в использовании. Кроме того — датчики движения фирмы RobotDyn имеют еще и маркированные шелкографией контакты, это конечно мелочь, но очень приятная. Ну а тем кто использует такие же датчики, но только других фирм, не стоит беспокоиться — все они имеют одинаковый функционал, и даже если не промаркированы контакты, то цоколёвку таких датчиков легко найти в интернете.
Основные технические характеристики датчика движения(PIR Sensor):
Зона работы датчика: от 3 до 7 метров
Угол слежения: до 110 о
Рабочее напряжение: 4,5. 6 Вольт
Потребляемый ток: до 50мкА
Примечание: Стандартный функционал датчика можно расширить, подключив на пины IN и GND датчик освещенности, и тогда датчик движения будет срабатывать только в темноте.
Инициализация устройства.
При включении, датчику требуется почти минута для инициализации. В течение этого периода, датчик может давать ложные сигналы, это следует учесть при программировании микроконтроллера с подключенным к нему датчиком, или в цепях исполнительных устройств, если подключение производится без использования микроконтроллера.
Угол и область обнаружения.
Угол обнаружения(слежения) составляет 110 градусов, диапазон расстояния обнаружения от 3 до 7 метров, иллюстрация ниже показывает всё это:
Регулировка чувствительности(дистанции обнаружения) и временной задержки.
На приведённой ниже таблице показаны основные регулировки датчика движения, слева находится регулятор временной задержки соответственно в левом столбце приведено описание возможных настроек. В правом столбце описание регулировок расстояния обнаружения.
Подключение датчика:
- PIR Sensor[PIN GND] — Arduino Nano[PIN GND]
- PIR Sensor[PIN 5V] — Arduino Nano[PIN 5V]
- PIR Sensor[PIN OUT] — Arduino Nano[PIN A0]
- PIR Sensor[PIN IN] — для датчика освещенности
- PIR Sensor[PIN GND] — для датчика освещенности
Типичная схема подключения дана на схеме ниже, в нашем случае датчик показан условно с тыльной стороны и подключен к плате Arduino Nano.
Скетч демонстрирующий работу датчика движения(используем программу Serial Monitor Pro):
Скетч является обычной проверкой работы датчика движения, в нём есть много недостатков, таких как:
- Возможные ложные срабатывания, датчику необходима самоинициализация в течение одной минуты.
- Жесткая привязка к монитору порта, нет выходных исполнительных устройств(реле, сирена, светоиндикация)
- Слишком короткое время сигнала на выходе датчика, при обнаружении движения необходимо программно задержать сигнал на более долгий период времени.
Усложнив схему и расширив функционал датчика, можно избежать вышеописанных недостатков. Для этого потребуется дополнить схему модулем реле и подключить обычную лампу на 220 вольт через данный модуль. Сам же модуль реле будет подключен к пину 3 на плате Arduino Nano. Итак принципиальная схема:
Теперь пришло время немного усовершенствовать скетч, которым проверялся датчик движения. Именно в скетче, будет реализована задержка выключения реле, так как сам датчик движения имеет слишком короткое время сигнала на выходе при срабатывании. Программа реализует 10-ти секундную задержку при срабатывании датчика. При желании это время можно увеличить или уменьшить, изменив значение переменной DelayValue . Ниже представлен скетч и видео работы всей собранной схемы:
В программе присутствует конструкция:
unsigned long prevMillis = 0;
int interval = 1000;
unsigned long currMillis = millis();
if(currMillis — prevMillis > interval)
// Наши операции заключенные в тело конструкции
Чтобы внести ясность, было решено отдельно прокомментировать эту конструкцию. Итак, данная конструкция позволяет выполнить как бы параллельную задачу в программе. Тело конструкции срабатывает примерно раз в секунду, этому способствует переменная interval. Сначала, переменной currMillis присваивается значение возвращаемое при вызове функции millis(). Функция millis() возвращает количество миллисекунд прошедших с начала программы. Если разница currMillis — prevMillis больше чем значение переменной interval то это означает, что уже прошло более секунды с начала выполнения программы, и нужно сохранить значение переменной currMillis в переменную prevMillis затем выполнить операции заключенные в теле конструкции. Если же разница currMillis — prevMillis меньше чем значение переменной interval, то между циклами сканирования программы еще не прошло секунды, и операции заключенные в теле конструкции пропускаются.
Ну и в завершение статьи видео от автора:
Источник
Arduino.ru
Глючит датчик движения (или я. )
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всем привет, помогите разобраться.
Сделал себе умную подсветку рабочей зоны на кухне. Лента уже давно была поклеена, включалось обычным врезным выключателем-кнопкой. С тех пор (прошло 6 лет) узнал о ардуино и немного чего-то научился. Собственно, потому возникло желание как-то улучшить банальное вкл/выкл.
Идея такова: поставил бесконтактный выключатель на основе сонара, кнопку сенсорную (ее не особо и нужно, но уже была дырка от прошлой щелкалки, соответственно не придумал ничего лучше, как продублировать включение/выключение ленты ею и закрыть дыркО заодно :)). Еще установил в укромном местечке датчик освещения и датчик движения. Идея в том, чтобы когда темно, и датчик движения ловит заходящего на кухню человека — лента включается на минимальную яркость и светится около 30 секунд. За это время человек либо включит нормальный свет кнопкой/сонаром, либо попил водички и утопал — через 30 секунд система, не улавливающая сигнала с датчика движения, погаснет.
Материалы таковы: Nano, сонар, кнопка, мини-датчик движения, датчик освещенности, мосфет.
Система прекрасно и стабильно работает на кнопке/сонаре, но вот когда приходит ночь и активируется датчик света — иногда наблюдаю самовольные срабатывания датчика. Он расположен так, чтобы ловить пересекшего порог кухни человека, во время самовольных срабатываний однозначно никаких движений в зоне его действия не было.
Помогите, знающие и понимающие, разобраться — в аппаратной части прокол или в програмной? Склоняюсь к первому, ибо код примитивный вроде, там нечему глючить как по мне.
Ну и два вопроса, кои особо не мешают, но работают некорректно и хотелось бы для себя их на будущее прояснить:
1. Расстояние, которое возвращает сонар (в цифровом эквиваленте, проверил через монитор порта) почему-то в 3-3.5 раз меньше реального. Именно потому в коде и стоит цифра 3 (в реальности это 10-11 см). Склоняюсь к тому, что это по причине библиотек для SR-04, а установлен SRF-05 (или нет?))
2. Millis(). Почему-то в данном случае при выставленной задержке в 70 секунд (плюс пару секунд задержка выключения самого датчика движения), отключение происходит через 34-36 секунд. Опять-же некритично, но хотелось бы иметь возможность выставлять точные значения.
Источник
Ардуино: инфракрасный датчик движения, ПИР
Тема сегодняшнего урока — датчик движения на основе пироэлектрического эффекта (PIR, passive infrared motion sensor). Такие датчики часто используются в охранных системах и в быту для обнаружения движения в помещении. Например, на принципе детектирования движения основано автоматическое включение света в подъезде или в ванной. Пироэлектрические датчики достаточно простого устроены, недороги и неприхотливы в установке и обслуживании.
Кстати сказать, существуют и другие способы детектирования движения. Сегодня всё чаще используют системы компьютерного зрения для распознавания объектов и траектории их перемещения. В тех же охранных системах применяются лазерные детекторы, которые дают тревожный сигнал при пересечении луча. Также используются тепловизионные датчики, способные определить движение только живых существ.
Принцип действия пироэлектрических датчиков движения
Пироэлектрики — это диэлектрики, которые создают электрическое поле при изменении их температуры. На основе пироэлектриков делают датчики измерения температуры, например, LHI778 или IRA-E700. Каждый такой датчик содержит два чувствительных элемента размером 1×2 мм, подключенных с противоположной полярностью. И как мы увидим далее, наличие именно двух элементов поможет нам детектировать движение.
Вот так выглядит датчик IRA-E700 компании Murata.
На этом уроке мы будем работать с датчиком движения HC-SR501, в котором установлен один такой пироэлектрический датчик. Сверху пироэлектрик окружен полусферой, разбитой на несколько сегментов. Каждый сегмент этой сферы представляет собой линзу, которая фокусирует тепловое излучение на разные участки ПИР-датчика. Часто в качестве линзы используют линзу Френеля.
Принцип работы датчик движения следующий. Предположим, что датчик установлен в пустой комнате. Каждый чувствительный элемент получает постоянную дозу излучения, а значит и напряжение на них имеет постоянное значение (левый рисунок).
Как только в комнату заходит человек, он попадает сначала в зону обзора первого элемента, что приводит к появлению положительного электрического импульса на нем (центральный рисунок).
Человек движется, и его тепловое излучение через линзы попадает уже на второй PIR-элемент, который генерирует отрицательный импульс. Электронная схема датчика движения регистрирует эти разнонаправленные импульсы и делает выводы о том, что в поле зрения датчика попал человек. На выходе датчика генерируется положительный импульс (правый рисунок).
Настройка HC-SR501
На этом уроке мы будем использовать модуль HC-SR501. Этот модуль очень распространен и применяется во множестве DIY проектов в силу своей дешевизны.
У датчика имеется два переменных резистора и перемычка для настройки режима. Один из потенциометров регулирует чувствительность прибора. Чем она больше, тем дальше «видит» датчик. Также чувствительность влияет на размер детектируемого объекта. К примеру, можно исключить из срабатывания собаку или кошку.
Второй потенциометр регулирует время срабатывания T. Если датчик обнаружил движение, он генерирует на выходе положительный импульс длиной T.
Наконец, третий элемент управления — перемычка, которая переключает режим датчика. В положении L датчик ведет отсчет Т от самого первого срабатывания. Допустим, мы хотим управлять светом в ванной комнате. Зайдя в комнату, человек вызовет срабатывание датчика, и свет включится ровно на время Т. По окончании периода, сигнал на выходе вернется в исходное состояние, и датчик будет дать следующего срабатывания.
В положении H датчик начинает отсчет времени T каждый раз после обнаружения движения. Другими словами, любое шевеление человека вызовет обнуление таймера отсчета Т. По-умолчанию, перемычка находится в состоянии H.
Подключение HC-SR501 к Ардуино Уно
Для соединения с микроконтроллером или напрямую с реле у HC-SR501 имеется три вывода. Подключаем их к Ардуино по следующей схеме:
HC-SR501 | GND | VCC | OUT |
Ардуино Уно | GND | +5V | 2 |
Принципиальная схема
Внешний вид макета
Программа
Как уже было сказано, цифровой выход датчика HC-SR501 генерирует высокий уровень сигнала при срабатывании. Напишем простую программу, которая будет отправлять в последовательный порт «1» если датчик увидел движение, и «0» в противном случае.
Загружаем программу на Ардуино и проверяем работу датчика. Можно покрутить настройки датчика и посмотреть как это отразится на его работе.
Управление светом при помощи датчика движения
Следующий шаг — система автоматического включения света. Для того, чтобы управлять освещением в помещении, нам потребуется добавить в цепь реле.
Будем использовать модуль реле с защитой на основе опторазвязки, о котором мы уже писали в одном и уроков ( урок про реле ).
Внимание! Данная схема зажигает лампу от сети 220 Вольт. Рекомендуется семь раз проверить все соединения, прежде чем соединять схему с бытовой электросетью.
Принципиальная схема
Внешний вид макета
Программа
Теперь напишем программу, которая будет при срабатывании датчика включать реле, а следовательно и освещение в комнате.
Загружаем программу на Ардуино, аккуратно подключаем схему к бытовой сети и проверяем работу датчика.
Заключение
Датчики движения окружают нас повсюду. Благодаря охранным системам, их можно встретить практически в каждом помещении. Как мы выяснили, они очень просты в использовании и могут быть легко интегрированы в любой проект на Ардуино или Raspberry Pi.
Вот несколько ситуаций и мест, где может пригодиться датчик движения:
- автоматическое включение света в подъезде дома, в ванной комнате и туалете, перед входной дверью в помещение;
- сигнализация в помещении и во дворе;
- автоматическое открывание дверей;
- автоматическое включение охранной видеокамеры.
Как уже говорилось в самом начале, существуют и другие способы детектирования движения. О них мы поговорим на следующих уроках!
Источник