В мире автоматизации и «умных» устройств датчик движения — незаменимый элемент: он позволяет технике «видеть» присутствие человека и реагировать на перемещение в пространстве. Один из самых популярных и доступных сенсоров — HC‑SR501. Его простота, надёжность и совместимость с Arduino сделали его фаворитом в проектах от бытовых сигнализаций до интерактивных инсталляций.
Как это работает датчик движения HC-SR501 TZT для Arduino: физика и электроника
HC‑SR501 — это PIR‑сенсор (пироэлектрический инфракрасный датчик). Его принцип действия основан на обнаружении изменений в инфракрасном излучении, исходящем от объектов в зоне видимости.
Ключевые элементы:
- Пироэлектрический элемент — реагирует на перепады ИК‑излучения (например, когда в поле зрения появляется человек).
-
Линза Френеля — фокусирует ИК‑лучи на сенсор, увеличивая угол обзора и чувствительность.
-
Электронная схема обработки сигнала — фильтрует помехи, усиливает сигнал и формирует логический выход.
-
Когда тёплый объект (человек, животное) перемещается в зоне действия датчика, сенсор фиксирует «всплеск» ИК‑излучения и выдаёт сигнал на выход.
Основные характеристики
- Рабочее напряжение: 5–20 В (удобно для питания от Arduino или внешнего источника).
-
Ток потребления: 55–65 мкА в режиме ожидания, до 60 мА в активном режиме.
-
Выходной сигнал: цифровой (TTL‑уровень 3,3 В: HIGH при обнаружении движения, LOW в покое).
-
Угол обзора: 120°.
-
Дальность обнаружения: до 7 м (зависит от настроек и условий).
-
Время задержки (выхода в LOW после срабатывания): регулируется от 0,3 с до 60 с.
-
Регулировка чувствительности: потенциометр на плате для настройки дальности и реакции на мелкие объекты.
-
Рабочая температура: –15 °C … +70 °C.
-
Размеры: ~32 × 25 × 24 мм, вес — около 7 г.
Важно:
Для стабильной работы размещайте датчик вдали от источников тепла (батареи, лампы) и сквозняков.
Избегайте прямых солнечных лучей на линзу — они могут вызывать ложные срабатывания.
При длине проводов более 20 см используйте экранированные кабели или добавьте конденсатор между VCC и GND для фильтрации помех.
Настройка датчика движения HC-SR501 TZT для Arduino
На плате есть два потенциометра:
Sensitivity (чувствительность) — регулирует дальность и реакцию на мелкие объекты. Поворачивайте, пока датчик не начнёт стабильно фиксировать движение на нужном расстоянии.
Time (время задержки) — задаёт, сколько секунд выход будет оставаться в состоянии HIGH после обнаружения движения. Например, 5 с для включения света или 30 с для сигнализации.
Типичные проекты с датчиком движения HC-SR501 TZT для Arduino
1. Автоматическое освещение
- датчик включает светодиод/лампу при входе в комнату;
-
выключается через заданное время при отсутствии движения.
2. Сигнализация
- при обнаружении движения активирует зуммер или отправляет SMS через GSM‑модуль;
-
можно дополнить камерой для фотофиксации.
3. Умный дом
- управление жалюзи/шторами при появлении человека;
-
активация вентиляции или кондиционера.
4. Интерактивные инсталляции
- световые или звуковые эффекты, реагирующие на движение зрителей;
-
музеи, выставки, перформансы.
5. Роботы и автономные системы
- робот‑охранник, реагирующий на вторжение;
-
тележка, останавливающаяся при обнаружении человека на пути.
Плюсы и ограничения датчика движения HC-SR501 TZT для Arduino
Преимущества:
- низкая стоимость и доступность;
-
простота подключения и настройки;
-
низкое энергопотребление в режиме ожидания;
-
широкий угол обзора и достаточная дальность для бытовых задач;
-
не требует сложной калибровки — работает «из коробки».
Ограничения:
- реагирует только на движущиеся объекты (не видит неподвижных людей);
-
чувствителен к резким перепадам температуры (например, поток горячего воздуха от обогревателя);
-
не различает объекты (человек, кошка, качающаяся ветка);
-
в условиях высокой запылённости или тумана дальность снижается.
Советы по эксплуатации
- Тестируйте в реальных условиях. Проверьте работу датчика при разном освещении, температуре и скорости движения.
-
Используйте экранированные провода при длинных линиях (более 20 см).
-
Добавьте задержку в код Arduino, чтобы избежать «дребезга» сигнала (например, 100–500 мс между проверками).
-
Комбинируйте с другими датчиками (например, с фоторезистором для включения света только ночью).
-
Защищайте от влаги и механических повреждений — модуль не имеет герметичного корпуса.
-
Периодически очищайте линзу от пыли и отпечатков пальцев.
Датчик движения HC-SR501 TZT для Arduino — отличное решение для начинающих и опытных электронщиков. Он позволяет:
- быстро добавить «зрение» в любой проект на Arduino;
-
экономить электроэнергию за счёт автоматического управления освещением;
-
создавать системы безопасности без больших затрат;
-
экспериментировать с интерактивными устройствами.
Скетч для датчика движения HC‑SR501 на Arduino
Необходимые компоненты
- Плата Arduino (Uno, Nano, Mega и др.)
-
Датчик движения HC‑SR501
-
Светодиод (опционально, для индикации)
-
Резистор 220 Ом (для светодиода, если используется)
-
Соединительные провода
Схема подключения
VCC датчика → 5 V Arduino
GND датчика → GND Arduino
OUT датчика → цифровой пин 2 Arduino
(Опционально) анод светодиода → пин 13 Arduino (через резистор 220 Ом)
(Опционально) катод светодиода → GND Arduino
Особенности HC‑SR501
Рабочее напряжение: 4,5–20 В (можно подключать к 5 В Arduino).
Выходное напряжение при срабатывании: ~3,3 В.
Два режима срабатывания (переключаются джампером):
H (Repeat trigger) — выход остаётся HIGH всё время, пока есть движение.
L (Single trigger) — выход становится HIGH на заданное время при обнаружении движения.
Регулировка:
Sensitivity (левый потенциометр) — чувствительность (3–7 м).
Time Delay (правый потенциометр) — время удержания выхода HIGH (3–300 с).
Базовый скетч (индикация на встроенном светодиоде)
const int PIR_PIN = 2; // Пин подключения OUT датчика
const int LED_PIN = 13; // Встроенный светодиод Arduino
void setup() {
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
// Даём датчику прогреться (60 с)
Serial.println("Датчик инициализируется...");
delay(60000);
Serial.println("Готов к работе!");
}
void loop() {
int motionState = digitalRead(PIR_PIN);
if (motionState == HIGH) {
digitalWrite(LED_PIN, HIGH); // Включаем светодиод
Serial.println("Движение обнаружено!");
} else {
digitalWrite(LED_PIN, LOW); // Выключаем светодиод
Serial.println("Движения нет");
}
delay(500); // Задержка для стабильности
}
|
Расширенный скетч (с детектором изменений состояния)
const int PIR_PIN = 2;
const int LED_PIN = 13;
bool motionDetected = false; // Текущее состояние
void setup() {
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("Инициализация датчика...");
delay(60000); // Время прогрева
Serial.println("Система готова!");
}
void loop() {
int currentState = digitalRead(PIR_PIN);
// Если движение обнаружено и ранее его не было
if (currentState == HIGH && !motionDetected) {
motionDetected = true;
digitalWrite(LED_PIN, HIGH);
Serial.println("✅ Движение началось!");
}
// Если движения больше нет
else if (currentState == LOW && motionDetected) {
motionDetected = false;
digitalWrite(LED_PIN, LOW);
Serial.println("❌ Движение закончилось");
}
delay(200); // Небольшая задержка для стабильности
}
|
Пояснения
Инициализация
После подачи питания датчику нужно 60 секунд на прогрев и калибровку.
В это время выход может ложно срабатывать — не учитывайте данные.
Режимы работы
Repeat trigger (H) — удобен для систем охраны: выход HIGH, пока есть движение.
Single trigger (L) — подходит для включения света: выход HIGH на фиксированное время.
Регулировка времени задержки
Вращайте правый потенциометр: по часовой стрелке — дольше, против — короче.
Чувствительность
Левый потенциометр: по часовой — выше чувствительность (до 7 м), против — ниже (до 3 м).
Рекомендации по настройке
Выбор режима
Для сигнализации — Repeat trigger (H).
Для автоматического освещения — Single trigger (L).
Калибровка
Настройте чувствительность так, чтобы датчик не реагировал на мелких животных.
Подберите время задержки под задачу (например, 10 с для подсветки коридора).
Размещение датчика
Установите на высоте 1,8–2,5 м.
Избегайте направления на окна/батареи (могут вызывать ложные срабатывания).
Защита от помех
Используйте экранированные провода при длине > 50 см.
Добавьте конденсатор 0,1 мкФ между VCC и GND для фильтрации помех.
Дополнительные возможности
Подключение реле — замените светодиод на реле для управления мощной нагрузкой (свет, сирена).
Добавление зуммера — включите звуковой сигнал при обнаружении движения.
Логгирование событий — записывайте время срабатываний на SD‑карту.
Интеграция с IoT — передавайте данные в облако через Wi‑Fi/GSM.