Как подключить датчик движения к ардуино
Перейти к содержимому

Как подключить датчик движения к ардуино

  • автор:

Датчик движения Ардуино HC-SR501 подключение

Датчик движения Ардуино HC-SR501 подключение

Рассмотрим, как подключить PIR датчик движения HC-SR501 Arduino (пироэлектрический инфракрасный датчик движения) и рассмотрим программу для автоматического включения светодиодов, которые будут загораться при обнаружении движения в зоне видимости сенсора. Мы также рассмотрим функцию millis в языке Arduino IDE, которая часто необходима в программах для создания многозадачности микроконтроллера Ардуино.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • датчик движения HC-SR501
  • светодиод и резистор
  • макетная плата
  • коннекторы
  1. Подключение ультразвукового датчика HC-SR04
  2. Подключение датчика препятствия KY-032
  3. Подключение датчика освещенности к Ардуино

В этой статье мы рассмотрим устройство датчика движения, схему его подключения к Ардуино и соберем на его основе автоматический выключатель света. Модуль с PIR датчиком HC-SR501 (motion sensor) состоит из пироэлектрического элемента под пластиковой линзой Френеля — цилиндрической детали с прямоугольным кристаллом в центре, которая фокусирует инфракрасное излучение и пропускает его через себя.

Датчик HC-SR501 Arduino характеристики, распиновка

HC-SR501 Arduino характеристики, распиновка

Arduino HC-SR501 характеристики

  • Напряжение питания: 5 — 20 В
  • Рабочий ток: 55 мкА
  • Выходной уровень сигнала: 3,3 В
  • Регулировка чувствительности: да
  • Угол срабатывания: 120°
  • Расстояние срабатывания: 7 метров
  • Время задержки: регулируется от 0,3 секунды до 60 секунд

Все модели датчиков движения практически идентичны по конструкции. Диапазон чувствительности PIR Arduino составляет до 6 метров, а угол обзора — 110° x 70°. Питание составляет 5 вольт, а цифровой сигнал имеет значение «0» при отсутствии движения и «1» (логическая единица) при наличии движения. Чувствительные элементы установлены в водонепроницаемом корпусе, который защищает их от влаги и перепада температур.

Как подключить датчик движения HC-SR501 к Ардуино

Как подключить датчик движения к Ардуино

Распиновка модулей может отличаться у разных производителей, но рядом с контактами имеется маркировка. Поэтому внимательно изучите HC-SR501 motion sensor перед его подключением. Один выход идет на GND (земля), второй — на 5V источник питания (VCC), а третий выход (OUT) отправляет цифровой сигнал от датчика присутствия. Соберите схему, как показано на рисунке выше и загрузите следующий код в микроконтроллер.

Скетч для датчика движения HC-SR501 Ардуино

#define PIR A1 #define LED 13 void setup() < pinMode(PIR, INPUT); pinMode(LED, OUTPUT); >void loop() < int pirVal = digitalRead(PIR); if (pirVal == HIGH) < digitalWrite(LED, HIGH); >else < digitalWrite(LED,LOW); >delay(1000); >

Управление светодиодом от датчика движения Ардуино

Управление светодиодом от датчика движения Ардуино

В представленных примерах, с помощью директивы define для портов 2 и 12 мы присвоили имена PIR и LED. В первом примере светодиод выключается сразу после сигнала LOW от датчика движения. В этом примере с помощью функции millis мы начинаем отсчет времени (в это время микроконтроллер может выполнять другие команды) и по истечении 1 минуты (можно изменить в скетче) без обнаружения движения, светодиод погаснет.

Скетч для автоматического включения светодиода

#define PIR A1 #define LED 12 unsigned long counttime; void setup() < pinMode(PIR, INPUT); pinMode(LED, OUTPUT); >void loop() < if (digitalRead(PIR) == HIGH) < digitalWrite(LED, HIGH); counttime = millis(); >if (digitalRead(PIR) == LOW and millis() - counttime > 60000) < digitalWrite(LED, LOW); >delay(1000); >

Заключение. Сегодня никого не удивляет, что освещение в жилых домах включается автоматически при появлении человека. Большинство осветительных приборов уже оснащены пассивными датчиками движения. В этой статье мы рассмотрели устройство датчика движения HC-SR501, схему его подключения к Arduino и написали программу для автоматического выключателя света (можно подключить реле вместо светодиода).

FAQ (часто задаваемые вопросы)

Как настроить датчик движения HC-SR501 ?

На датчике присутствия hc-sr501 имеется два подстроечных резистора. Один регулирует время работы после срабатывания (MIN time MAX), второй резистор регулирует чувствительность сенсора (MIN MAX). Вращая резисторы по часовой или против часовой стрелки можно уменьшать или увеличивать необходимые настройки.

Как работает датчик движения для включения света ?

Датчик присутствия реагирует на появление объекта в зоне видимости сенсора и передает сигнал на устройство, например, микроконтроллер, осветительный прибор или сигнализацию. HC-SR501 относится к инфракрасными (пироэлектрическим) датчикам движения. Любой предмет, в том числе тело человека является источником ИК-излучения. Принцип работы датчика движения hc-sr501 заключается в том, что он реагирует не на само ИК-излучение от человека, а на изменение фона ИК-излучения.

Детектор движения с использованием Arduino и PIR датчика

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

Внешний вид детектора движения с использованием Arduino и PIR датчика

Необходимые компоненты

Плата Arduino Uno (или любая другая)
PIR датчик (PIR Sensor Module)
Светодиод
Зуммер (Buzzer)
Макетная плата
Соединительные провода
Резистор 330 Ом

PIR датчик

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

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

Органы управления и распиновка PIR датчика (датчика движения)

Вид снаружи и внутри PIR датчика (датчика движения)

Два потенциометра (оранжевый цвет) используются для управления чувствительностью и срабатывания по времени датчика. Основной контакт датчика (Dout) располагается между его контактами Vcc и Gnd. Датчик работает от напряжения 3.3 В, но также может работать и от напряжения 5 В. В левом верхнем углу датчик имеет переключатель режимов своей работы. Всего доступно два режима работы: “H” режим и “I” режим.

В “H” режиме на выходном контакте датчика Dout будет появляться напряжение высокого уровня (3.3V) когда в диапазоне действия датчика будет появляться человек. Спустя некоторое время, устанавливаемое с помощью потенциометра, напряжение на этом контакте становится низкого уровня. То есть в этом режиме напряжение высокого уровня на контакте Dout будет независимо от того присутствует ли еще человек в зоне действия датчика или покинул ее. Этот режим мы будем использовать в нашем проекте – в большинстве случаев он предпочтительней при работе с этим датчиком. Еще его называют режимом “с перезапуском”.

В режиме “I” напряжение высокого уровня (3.3V) на выходном контакте датчика Dout будет только тогда, когда человек находится в зоне действия датчика. Как только человек покинет ее, то спустя некоторое время, регулируемое с помощью потенциометра, на контакте Dout будет напряжение низкого уровня. То есть если вы будете ходить около датчика, то он будет постоянно срабатывать и выключаться. Этот режим еще называется режимом “без перезапуска”.

Примечание : местоположение контактов и потенциометров могут отличаться в зависимости от производителя PIR датчика.

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема детектора движения с использованием Arduino и PIR датчика

Мы запитали PIR датчик от контакта 5V платы Arduino. Выходной контакт PIR датчика подключен к цифровому контакту 2 платы Arduino. Этот контакт Arduino будет работать в режиме ввода данных. Контакт 3 платы Arduino подключен к светодиоду и зуммеру. Он будет работать в режиме вывода данных. То есть когда на контакте 2 мы будем обнаруживать высокий уровень, мы будем подавать напряжение высокого уровня на контакт 3.

Объяснение работы программы

PIR датчик у нас подключен к контакту 2 платы Arduino, поэтому для этого контакта мы должны установить режим ввода данных. А для контакта 3, к которому подключены зуммер и светодиод, мы должны установить режим вывода данных. Режимы работы контактов мы должны задать в функции void setup().

void setup() <
pinMode(2, INPUT); //Pin 2 в режим ввода данных
pinMode(3, OUTPUT); //PIN 3 в режим вывода данных
>

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

if (digitalRead(2) == HIGH)

Если на этом контакте появилось напряжение высокого уровня это будет означать, что PIR датчик обнаружил движение (человека). При обнаружении этого события мы должны подать напряжение высокого уровня на контакт 3. Мы будем поочередно подавать на этот контакт высокий и низкий уровень с задержкой 100 мс, то есть светодиод будет мигать, а зуммер – издавать прерывистый сигнал.

void setup() <
pinMode(2, INPUT); //Pin 2 as INPUT
pinMode(3, OUTPUT); //PIN 3 as OUTPUT
>
void loop() <
if (digitalRead(2) == HIGH) // проверяем сработал ли PIR датчик
<
digitalWrite(3, HIGH); // включаем светодиод/зуммер
delay(100); // ждем 100 мс
digitalWrite(3, LOW); // выключаем светодиод/зуммер
delay(100); // ждем 100 мс
>
>

Работа проекта

После того как вы собрали схему рассматриваемого нами датчика движения на макетной плате и загрузили код программы (приведен в конце статьи) в плату Arduino вы можете приступать к тестированию работы проекта. Общий вид собранного устройства должен получиться примерно такой:

Общий вид собранного детектора движения на Arduino

Подайте питание на плату Arduino и подождите 50-60 секунд пока PIR датчик откалибруется – не обращайте внимание на странности его срабатывания в течение этого времени. После этого попытайтесь двигаться напротив PIR датчика и вы будете наблюдать как будут срабатывать светодиод и зуммер. Более подробно весь этот процесс показан на видео в конце статьи.

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

Исходный код программы

Код программы очень простой – я думая его понимание не вызовет у вас никаких затруднений. Как мы узнали из этой статьи, подключить PIR датчик к плате Arduino достаточно просто – не нужно подключать каких то дополнительных библиотек, работать с ШИМ-сигналом и АЦП как в случае с другими датчиками и т.д.

void setup() pinMode(2, INPUT); // Pin 2 в режим ввода данных
pinMode(3, OUTPUT); // PIN 3 в режим вывода данных
>
void loop() if (digitalRead(2) == HIGH)
digitalWrite(3, HIGH); // включаем светодиод/зуммер
delay(100); // ждем 100 мс
digitalWrite(3, LOW); // выключаем светодиод/зуммер
delay(100); // ждем 100 мс
>
>

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

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

Датчик движения Ардуино, схемы, подключение.

  • Инфракрасный датчик движения hc sr501
  • Устройство датчика движения HC SR501
  • Датчик движения HC-SR501, схемы, подключение
  • Datasheet или описание от производителя
  • Видео примеров работы
    1. Для светодиодных лент на MOSFET
    2. С реле для работы с 220В

Схемы подключения датчика движения hc sr501

1. С использованием модуля реле
Если вам надо подключить к датчику какую-нибудь нагрузку, например эл. лампу на 220 Вольт или включить вентилятор, эл. мотор и т.д. то для этого удобно использовать реле. В наших примерах мы будем использовать реле на 5 Вольт. Включение реле осуществляется подачей на вход 0(Low), а выключение +5 вольт(High). Выходной ток с датчика HC SR501 транзисторе BC337. На базу транзистора мы подаём напряжение 3,3 Вольта с выхода датчика. Этого хватит для того чтобы транзистор открылся и на реле начал поступать ток напрямую от источника питания.

Проверить работоспособность датчика можно подсоединив к нему светодиод и подав питание. Что бы светодиод не сгорел его надо подключать через токоограничивающее сопротивление 150-320 Ом.

Схема на плате прототипирования.
Пример сборки можно посмотреть на yuotube.

[video:https://www.youtube.com/watch?v=ESuqam50-CI]
[video:https://www.youtube.com/watch?v=q8EshE8bCTU]

Так же выкладываю электрическую схему, вариант платы сделанные в программе DipTrace.

Если будут желающие, я сделаю пару уроков как пользоваться этой программой.

2. С использованием MOSFET транзистора IRL8113

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

3. с помощью оптопары

4. с транзистором

фото в блоге

Установлены перемычки и резисторы

Установлены перемычки, резисторы и MicroUSB

Схема в сборе

Схема в сборе

Схема в сборе

Схема

Схема

Схема

Схема

Схема

Схема

Схема

Схема

Схема

Схема

Подключение HC SR501

Лучшие видео на YouTube

Изучаем Ардуино с нуля

Последнее из блога

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

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

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

Обзор Световых Датчиков Arduino: Фоторезисторы и Фотодиоды. Датчики освещенности являются важной частью мира Arduino, обеспечивая возможность создания устройств, чувствительных к уровню света в окружающей среде. В этой статье мы подробно рассмотрим два популярных типа световых датчиков Arduino: фоторезисторы и фотодиоды.

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

Значение Датчиков Arduino в Проектах. Arduino, безусловно, стала неотъемлемой частью электронных проектов, благодаря своей доступности и простоте использования. Однако истинная сила Arduino раскрывается при использовании датчиков.

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

Arduino и ИК датчик движения

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

  • Питание: 2.7.. 12V
  • Ток потребления: 8.5 мкА
  • Угол обзора: 100 градусов
  • Дальность срабатывания: 3-5 метров
  • Таймаут: 2 секунды
  • Сигнал: 2 секунды

Подключение

Подключается к питанию и любому цифровому пину:

Обратите внимание на распиновку датчика: не на всех она подписана на плате, но можно определить сторону платы по компонентам:

Примеры

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

void setup() < Serial.begin(9600); >void loop()

Откроем плоттер и помашем над датчиком рукой:

Домашнее задание

  • Датчику по сути не нужен микроконтроллер! Сделайте сигнализацию, подав сигнал с датчика движения на светодиод, реле, активный зуммер, модуль мосфет-транзистора

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *