Датчик движения HC-SR501: обзор и подключение
Что это за датчик
HC-SR501 — самый ходовой PIR-датчик движения: зелёная плата с белым куполом-линзой Френеля стоит копейки и закрывает девять задач из десяти, где нужно «увидеть» человека. Слово «пассивный» здесь ключевое: датчик сам ничего не излучает. Пироэлемент ловит инфракрасное излучение тёплого тела, и когда тепловая картинка в его поле зрения меняется, микросхема BISS0001 на плате выдаёт высокий уровень на выходе OUT.

Модуль работает и без контроллера: два подстроечных резистора (дальность и время) плюс джампер режима — и типовое «свет включился при движении» собирается отвёрткой за минуту. А если нужен учёт состояния, лог или реакция на время суток — выход заводится на любой Arduino или ESP32.
Характеристики из паспорта
| Параметр | Значение |
|---|---|
| Питание | DC 4,5–20 В (стабилизатор на плате) |
| Ток покоя | менее 50 мкА |
| Потребление | до 65 мА |
| Уровень выхода | 3,3 В (высокий) / 0 В (низкий) |
| Дальность обнаружения | 3–7 м, регулируется |
| Угол обзора | до 110–120° |
| Задержка выхода | от ~5 с до ~5 мин (300 с), регулируется |
| Время блокировки | 2,5 с по умолчанию |
| Режим триггера | H (повторный) / L (одиночный), джампер |
| Рабочая температура | −15…+70 °C |
| Габариты платы | 32×24 мм |
Три регулятора и что они делают
SENS — дальность. По часовой стрелке датчик видит дальше (до ~7 м), против — ближе (до ~3 м). В маленькой комнате не выкручивайте на максимум: датчик начнёт реагировать на движение за дверью.
TIME — сколько выход держит высокий уровень после срабатывания: от ~5 секунд до ~5 минут (300 с). Для освещения ставят 30–60 секунд, для счётчика проходов — минимум.
Джампер H/L — режим триггера. H (повторный): каждое новое движение во время задержки продлевает её — свет не гаснет, пока человек в комнате. L (одиночный): отработал один раз и ушёл в ноль, новое движение игнорируется до конца задержки. H — для освещения, L — когда нужен строго один импульс на событие.
Ещё в паспорте есть «время блокировки»: после каждого срабатывания датчик ~2,5 секунды не принимает сигналы. Это защита от дребезга и помех, отключить её нельзя.
Подключение к Arduino
Три провода:
| HC-SR501 | Arduino Uno/Nano |
|---|---|
| VCC | 5V |
| OUT | D2 |
| GND | GND |
Выход датчика 3,3 В — для входа Arduino это уверенная логическая единица, никакие согласования не нужны. Ток с выхода мизерный, поэтому лампу или насос вешают на OUT только через транзистор или реле-модуль.
Подключение к ESP32
| HC-SR501 | ESP32 |
|---|---|
| VCC | VIN (5 В) |
| OUT | GPIO 27 |
| GND | GND |
VCC — только с 5-вольтовой цепи (VIN или пин 5V платы): от 3,3 В внутренний стабилизатор модуля не стартует. А вот выход 3,3 В для GPIO ESP32 — родной, читается напрямую.
Рабочий код
// HC-SR501: светодиод загорается при движении
const int PIR_PIN = 2; // OUT датчика (у ESP32 — 27)
const int LED_PIN = 13; // встроенный светодиод
void setup() {
pinMode(PIR_PIN, INPUT); // выход датчика — просто читаем
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
delay(60000); // минута на прогрев и калибровку!
Serial.println("Ready");
}
void loop() {
if (digitalRead(PIR_PIN) == HIGH) { // движение поймано
digitalWrite(LED_PIN, HIGH);
Serial.println("Motion!");
} else {
digitalWrite(LED_PIN, LOW); // тихо
}
delay(100); // опрос 10 раз в секунду — с запасом
}
Дальше этот скелет наращивается логикой: счётчик проходов, будильник, запись события в лог. Хорошо сочетается с климатикой — например, включать проветривание только когда в комнате кто-то есть и BME280 показывает духоту.
Частые ошибки
Датчик «сходит с ума» первые минуту-две. Это не брак: после подачи питания модуль калибруется под фон и за это время дёргает выход 0–3 раза. Не пишите в этот момент «движение» в лог — ставьте задержку в setup(), как в коде выше.
Питание от 3,3 В. На батарейном блоке 2×AA (3 В) модуль ведёт себя непредсказуемо или молчит. Паспортные 4,5–20 В — не украшение, стабилизатору на плате нужен запас.
Нагрузка напрямую на OUT. Выход TTL, рассчитан на сигнальный ток. Реле, зуммер, светодиодная лента — только через транзистор или реле-модуль, иначе BISS0001 выгорает.
Ложные срабатывания. PIR реагирует на любое движущееся тепло: сквозняк от форточки, поток из кондиционера, солнце за шторой, кошка. Датчик ставят в сторону от источников воздуха и не направляют на окно. Через стекло он вообще не видит — ИК-излучение стекло не пропускает.
Сорванный подстроечник. Регуляторы крошечные, крутятся с лёгким усилием. Надавили — и TIME закрутился в ноль или подстроечник сломался. Крутите аккуратно, малым шагом, и после каждой правки проверяйте поведение заново.
Ожидают мгновенную реакцию после смены настроек. Сместили датчик или поменяли дальность — дайте ему снова минуту-другую покоя, иначе получите серию ложных срабатываний.
Итог
HC-SR501 — честный рабочий инструмент за минимальные деньги: паспортные 3–7 м он реально держит, потребление в покое позволяет вешать его на батарейное питание через стабилизатор 5 В, а настройка сводится к двум подстроечникам. Если задача не «обнаружить человека», а «померить расстояние до объекта» — это уже не PIR, а ультразвуковой дальномер HC-SR04.
Тот же датчик в бытовом исполнении окупается на освещении подъезда, гаража и коридора. Сколько именно он экономит и куда его вешать, чтобы не срабатывал впустую, — разбор с расчётами.
Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.