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

Мы предоставим пошаговое руководство по настройке оборудования, инструкциям по проводке и коду Arduino, необходимому для реализации этой функции. Для более четкого понимания процесса обязательно посмотрите соответствующее видео (в видео на :00).
Аппаратное обеспечение объяснено
Основные компоненты этого проекта включают датчик движения HC-SR501, релейный модуль и плату Arduino. Датчик HC-SR501 имеет три контакта: VCC, GND и OUT. Контакт VCC подключается к источнику питания (5В), контакт GND подключается к земле, а контакт OUT отправляет сигнал на Arduino, когда обнаруживается движение.
Релейный модуль действует как выключатель, который может управлять высоковольтными устройствами. У него есть три основных вывода: COM (общий), NO (обычно разомкнутый) и NC (обычно замкнутый). В этой конфигурации мы будем использовать вывод NO, который подключается к нагрузке, когда реле активируется. Это позволяет Arduino управлять реле на основе сигнала, поступающего от датчика движения.
Технические характеристики
| Производитель | HC-SR501 |
|---|---|
| Номер детали | HC-SR501 |
| Логика/Напряжение ввода-вывода | 5 В |
| Напряжение питания | 5-20 В |
| Потребление электроэнергии | 65 мА |
| Угол обнаружения | 120 градусов |
| Дистанция обнаружения | 3-7 м |
| Рабочая температура | от -15 до 70 °C |
| Тип вывода | Цифровой |
| Пакет | Модуль |
- Обеспечьте правильное питание (5-20 В) для датчика.
- Отрегулируйте потенциометр чувствительности для оптимального диапазона обнаружения.
- Используйте normally open (NO) вывод реле для эффективного управления нагрузкой.
- Будьте осторожны с током реле (максимум 10 А).
- Проверьте диапазон обнаружения датчика движения перед окончательной установкой.
- Учтите тепловыделение, если используете реле для больших нагрузок.
Инструкции по электропроводке

Чтобы подключить датчик движения HC-SR501 и реле к Arduino, начните с подключения вывода VCC датчика движения к выводу 5V на Arduino. Далее подключите вывод GND датчика к одному из выводов GND на Arduino. Вывод OUT от датчика движения должен быть подключен к цифровому выводу 2 на Arduino.
Для релейного модуля подключите вывод VCC к 5V на Arduino, а вывод GND к земле. Входной вывод (часто обозначаемый как IN или подобным образом) реле должен быть подключен к цифровому выводу 4 на Arduino. Убедитесь, что реле установлено в режиме нормально открытого (NO) для этой схемы. В конце подключите нагрузку (например, лампу переменного тока) к реле в соответствии со спецификациями реле, убедившись, что соединения надежны.
Примеры кода и пошаговое руководство
В коде Arduino мы определяем константы для пинов сенсора и реле. Пин сенсора установлен наSENSOR_PIN, который назначен цифровому выводу 2, и вывод реле установлен наRELAY_PIN, назначенный для цифрового пина 4. Эта конфигурация позволяет нам считывать выходные данные сенсора и управлять реле соответственно.
const int SENSOR_PIN = 2; // the Arduino pin connected to the output of the sensor
const int RELAY_PIN = 4; // the Arduino pin which is connected to control the relay
В вsetup()функции мы инициализируем последовательный монитор для отладки и устанавливаем режимы пинов для пинов датчика и реле. Это гарантирует, что Arduino знает, какие пины являются входами, а какие - выходами.
void setup() {
Serial.begin(9600); // setup Serial Monitor to display information
pinMode(SENSOR_PIN, INPUT); // Define SENSOR_PIN as Input from sensor
pinMode(RELAY_PIN, OUTPUT); // Define RELAY_PIN as OUTPUT for relay
}
В вloop()функция, мы постоянно проверяем состояние датчика движения. Если движение зафиксировано, мы выводим сообщение на серийный монитор и включаем реле, установив его в низкое состояние. Если движение не зафиксировано, мы выводим другое сообщение и выключаем реле, установив его в высокое состояние.
void loop() {
int motion = digitalRead(SENSOR_PIN); // read the sensor pin
if (motion) {
Serial.println("Motion detected");
digitalWrite(RELAY_PIN, LOW); // Turn the relay ON
} else {
Serial.println("===Nothing moves");
digitalWrite(RELAY_PIN, HIGH); // Turn the relay OFF
}
delay(500);
}
Демонстрация / Что ожидать
Когда датчик движения обнаруживает движение, реле активируется, позволяя электрическому току поступать к подключенной нагрузке, такой как лампочка переменного тока. Вы должны увидеть, что лампочка включается немедленно после обнаружения движения. Если датчик не обнаруживает никакого движения, лампочка останется выключенной. Имейте в виду, что настройки чувствительности датчика влияют на его дальность действия, поэтому может потребоваться регулировка для достижения оптимальных показателей (в видео на 05:00).
Распространенные ошибки включают неправильную проводку или превышение пределов тока реле, что может привести к сбоям. Убедитесь, что все соединения надежные, и протестируйте установку в контролируемой среде перед окончательным использованием.
Временные метки видео
- 00:00 Начало
- 00:35 Объяснение аппаратного обеспечения
- 04:35 Номинальная мощность реле
- 06:00 Объяснение проводки
- 07:53 Объяснение кода Arduino
- 09:48 Демонстрация этого проекта
Вещи, которые могут вам понадобиться
-
Амазонка
-
eBay
-
АлиЭкспрессPurchase HC-SR501 HC-SR505 HW-MS03 motion sensor from AliExpresss.click.aliexpress.com
Ресурсы и ссылки
Ресурсов пока нет.
Файлы📁
Нет доступных файлов.