Датчик движения HC-SR501 для Arduino: Подключение, Применение и Простой Код
HC-SR501 — PIR-датчик движения. До 7 м, угол 110°. Настройка задержки/чувствительности. 5 В, низкое потребление.
Сегодня мы подробно разберём датчик движения HC-SR501 — один из самых популярных PIR-сенсоров для Arduino. Он обнаруживает тепловое излучение движущихся объектов (людей, животных), идеален для систем безопасности, умного дома и энергосбережения. Мы узнаем характеристики, схему подключения, настроим режимы, напишем несколько примеров кода и предложим готовые проекты. Готовы сделать свои устройства «умнее»? Поехали!
Что такое датчик движения HC-SR501?
HC-SR501 — пассивный инфракрасный (PIR) датчик на базе пироэлектрического элемента. Он фиксирует изменение ИК-излучения в зоне обзора (до 7 метров, угол 110°). В режиме ожидания потребляет всего 50 мкА — идеален для батарейных проектов. При обнаружении движения выдаёт HIGH на 2–300 секунд (настраивается). После срабатывания — блокировка на 2.5 сек (режим H/L).
Характеристики HC-SR501
- Питание: 4.5–20 В (рекомендуется 5 В)
- Дальность: 3–7 м (регулируется)
- Угол обзора: < 110°
- Время задержки: 0.5–300 сек (потенциометр Tx)
- Чувствительность: регулируется (потенциометр Sx)
- Режимы: H (повторное срабатывание), L (однократное)
- Выход: цифровой 3.3 В (HIGH при движении)
- Время инициализации: 30–60 сек
- Рабочая температура: -15..+70°C
Режимы работы (джамперы)
- H (повтор): срабатывает многократно в зоне
- L (один раз): одно срабатывание, затем блокировка
Схема подключения к Arduino
Подключение простое:
- VCC → 5 В
- GND → GND
- OUT → D8 (или любой цифровой пин)
Совет: добавьте конденсатор 100 мкФ между VCC и GND для стабильности.
Простой код: Обнаружение движения
const int pirPin = 8;
const int ledPin = 13;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Инициализация HC-SR501... Ждите 60 сек");
delay(60000); // калибровка
}
void loop() {
if (digitalRead(pirPin) == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.println("Движение обнаружено!");
delay(100);
} else {
digitalWrite(ledPin, LOW);
}
}
Запускает последовательный порт на скорости 9600 бод.
В setup() выдерживает 60 секунд для калибровки датчика движения.
В основном цикле:
при обнаружении движения включает светодиод и выводит сообщение в Serial Monitor
при отсутствии движения выключает светодиод.
Код: Умный свет с таймером
Включает реле на 30 сек при движении (режим L):
#define PIR 8
#define RELAY 7
unsigned long timer = 0;
void setup() {
pinMode(PIR, INPUT);
pinMode(RELAY, OUTPUT);
Serial.begin(9600);
delay(60000);
}
void loop() {
if (digitalRead(PIR) == HIGH) {
digitalWrite(RELAY, HIGH);
timer = millis();
Serial.println("Свет ВКЛ");
}
if (millis() - timer > 30000) {
digitalWrite(RELAY, LOW);
}
}
При обнаружении движения:
включает реле,
записывает текущее время в timer,
выводит сообщение «Свет ВКЛ» в Serial Monitor.
Если с момента последнего обнаружения движения прошло более 30 секунд, выключает реле.
Применение HC-SR501 в проектах
- Охрана: движение → сирена + SMS (SIM800L)
- Умный свет: вход в комнату → включение на 5 мин
- Экономия: выключение кондиционера при отсутствии
- Квесты: движение → звук/анимация
- Животные: автокормушка при приближении
- Фото/видео: запуск камеры по движению
Проект: Система безопасности с уведомлением
Компоненты: HC-SR501, реле (сирена), DFPlayer (голос), ESP8266 (Telegram).
Логика: движение → сирена 10 сек + голос «Внимание!» + push-уведомление.
Советы по использованию
- Калибровка: 30–60 сек после включения — не двигайтесь
- Линза Френеля: не закрывайте, не царапайте
- Избегайте: прямого солнца, источников тепла (лампы, обогреватели)
- Монтаж: высота 1.8–2.2 м, угол 15–30° вниз
- Питание: стабильные 5 В, >100 мА
- Несколько датчиков: общий GND, разные пины
Частые проблемы и решения
- Ложные срабатывания: уменьшите чувствительность, уберите тепло
- Не срабатывает: проверьте питание, калибровку, линзу
- Постоянный HIGH: режим H + движение в зоне
Заключение
Датчик движения HC-SR501 — мощный и недорогой инструмент для автоматизации. Он делает проекты интерактивными, экономичными и безопасными. Начните с простого включения света, добавьте реле, уведомления, интеграцию с IoT. Возможности безграничны!
Мы надеемся, что наша подробная инструкция была полезной для вас и поможет вам в создании увлекательных проектов с HC-SR501 и Arduino. Экспериментируйте, делитесь результатами в комментариях! Удачи в ваших исследованиях и творчестве на платформе Arduino!
FAQ — датчик движения HC-SR501 для Arduino
Что такое датчик движения HC-SR501 и как он работает?
HC-SR501 — пассивный инфракрасный (PIR) датчик, фиксирующий изменение теплового излучения движущихся объектов. При обнаружении движения на выходе формируется цифровой сигнал HIGH. Он идеален для систем безопасности и автоматизации умного дома.
Какие характеристики у HC-SR501?
Питание: 4.5–20 В (рекомендуется 5 В), дальность 3–7 м, угол обзора до 110°, время задержки 0.5–300 сек, чувствительность регулируется потенциометром, режимы H (повторное срабатывание) и L (однократное), цифровой выход 3.3 В, рабочая температура -15..+70°C.
Как подключить HC-SR501 к Arduino?
Подключение простое: VCC → 5 В, GND → GND, OUT → цифровой пин Arduino (например, D8). Для стабильной работы можно добавить конденсатор 100 мкФ между VCC и GND рядом с датчиком.
Какие режимы работы поддерживает HC-SR501?
Режим H (повтор) — датчик срабатывает многократно при обнаружении движения. Режим L (один раз) — однократное срабатывание, затем блокировка на время задержки. Настройки задаются джамперами или потенциометрами на плате.
Как использовать HC-SR501 для управления светом с таймером?
Вывод OUT подключается к цифровому пину Arduino, к другому пину подключается реле. В коде при считывании HIGH включается реле на заданное время (например, 30 секунд), после чего реле отключается. Таймер можно реализовать с помощью функции millis().
Где можно применить HC-SR501 в проектах?
Системы безопасности, автоматическое освещение, энергосберегающие проекты, квесты и игрушки, автокормушки для животных, запуск фото/видео оборудования при движении, интеграция с умным домом.
Какие советы помогут правильно использовать HC-SR501?
Не двигайтесь во время калибровки (30–60 сек), не закрывайте линзу Френеля, избегайте прямого солнца и источников тепла, монтируйте на высоте 1.8–2.2 м с углом вниз 15–30°, используйте стабильное питание 5 В, при нескольких датчиках соединяйте общий GND и разные сигнальные пины.