Рассмотрим, как подключить PIR датчик движения HC-SR501 Arduino (пироэлектрический инфракрасный датчик движения) и рассмотрим программу для автоматического включения светодиодов, которые будут загораться при обнаружении движения в зоне видимости сенсора. Мы также рассмотрим функцию millis в языке Arduino IDE, которая часто необходима в программах для создания многозадачности микроконтроллера Ардуино.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- датчик движения HC-SR501
- светодиод и резистор
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
В этой статье мы рассмотрим устройство датчика движения, схему его подключения к Ардуино и соберем на его основе автоматический выключатель света. Модуль с PIR датчиком HC-SR501 (motion sensor) состоит из пироэлектрического элемента под пластиковой линзой Френеля — цилиндрической детали с прямоугольным кристаллом в центре, которая фокусирует инфракрасное излучение и пропускает его через себя.
Датчик 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 заключается в том, что он реагирует не на само ИК-излучение от человека, а на изменение фона ИК-излучения.
