Arduino с микроволновым радарным датчиком приближения RCWL-0516 (обнаружение движения)
В этом руководстве вы узнаете, как использовать микроволновый радарный датчик приближения RCWL-0516 для обнаружения движения с помощью Arduino. Мы покажем, как подключить датчик, и напишем пример скетча, чтобы вы могли начать работу с датчиком.
В этом руководстве мы рассмотрим следующие темы:
Знакомство с микроволновым радарным датчиком приближения RCWL-0516
Распиновка микроволнового радарного датчика приближения RCWL-0516
Микроволновый радарный датчик приближения vs PIR-датчик движения
Подключение микроволнового радарного датчика приближения RCWL-0516 к Arduino
Знакомство с микроволновым радарным датчиком приближения RCWL-0516
RCWL-0516 — это небольшой и недорогой датчик, который использует микроволновый радар для обнаружения присутствия движущихся объектов. Датчик работает, излучая луч микроволн, а затем определяя доплеровский сдвиг в отраженных волнах при движении объектов.
Обычно эти датчики продаются упаковками по пять штук и не комплектуются штыревыми контактами. Поэтому вам может понадобиться приобрести штыревые контакты отдельно и припаять их самостоятельно.
Где купить?
Вы можете проверить следующую ссылку на Maker Advisor и сравнить цены в различных магазинах.
Вы можете использовать приведенные выше ссылки или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!
Как это работает?
Датчик RCWL-0516 имеет встроенный генератор, который создает микроволновый сигнал на частоте 3,18 ГГц. Затем датчик излучает этот сигнал по круговой диаграмме 360 градусов.
Когда объект перемещается в зоне действия датчика, отраженные волны принимаются приемником датчика. Приемник измеряет частоту отраженных волн и сравнивает её с частотой исходного сигнала. Если частота отраженных волн изменилась, датчик определяет, что объект переместился.
Датчик RCWL-0516 имеет один выходной пин, который устанавливается в HIGH при обнаружении движения. При отсутствии движения на выходе устанавливается LOW.
Характеристики датчика RCWL-0516
RCWL-0516 имеет дальность обнаружения до 7 метров и может обнаруживать объекты, движущиеся со скоростью до 2 метров в секунду. Также у него есть встроенная настраиваемая задержка, которая может использоваться для предотвращения повторного срабатывания датчика на одном и том же объекте.
Вот краткое описание некоторых ключевых характеристик датчика RCWL-0516:
Использует микроволновый радар для обнаружения движущихся объектов
Дальность обнаружения до 7 метров
Может обнаруживать объекты, движущиеся со скоростью до 2 метров в секунду
Встроенная настраиваемая задержка
Низкое энергопотребление
Низкая стоимость
Технические характеристики датчика RCWL-0516:
Напряжение питания: 4–28 В постоянного тока
Рабочая частота: 3,18 ГГц
Дальность обнаружения: 5–7 м
Уровень выходного сигнала: 3,4 В — HIGH, <0,7 В — LOW
Ток нагрузки на выходе: 100 мА
Тайминг на выходе: 2 секунды повторное срабатывание при движении
Вы можете получить дополнительную информацию о датчике на следующей странице GitHub:
Опциональный фоторезистор (LDR)
Датчик поставляется с возможностью припаять фоторезистор (датчик освещенности), если вы хотите, чтобы ваш датчик работал только в условиях темноты, например. Вы можете получить выходной сигнал фоторезистора на пине LDR. Альтернативно, вы также можете подключить фоторезистор к пину CDS.
Когда выходное напряжение фоторезистора превышает 0,7 В, пин OUT будет выдавать HIGH при обнаружении движения. Если движение обнаружено, но выходное напряжение фоторезистора ниже 0,7 В, на выходе будет LOW. Это означает, что при подключении фоторезистора датчик будет обнаруживать движение только в темноте.
Вы можете настроить чувствительность фоторезистора, подключив резистор на площадки R-CDS (см. следующий раздел), или добавив внешний подтягивающий резистор параллельно пину CDS.
В моем случае я добавил подтягивающий резистор 22 кОм к пину LDR, чтобы датчик мог обнаруживать движение при слабом освещении. Без резистора даже в очень темных условиях я не получал положительного результата на выходе. Вам может понадобиться попробовать разные значения сопротивления, чтобы определить, какое лучше подходит для вашего сценария.
Компоненты для настройки
На задней стороне датчика расположены три контактные площадки для дополнительных SMD-компонентов (размер 0805):
Следующая информация была взята с этой страницы GitHub.
C-TM: Регулирует время повторного срабатывания. Время по умолчанию (без компонента) составляет 2 секунды. SMD-конденсатор для увеличения времени повторного срабатывания. Пин 3 микросхемы выдает частоту (f), и время срабатывания в секундах определяется как (1/f) * 32678.
R-GN: Дальность обнаружения по умолчанию составляет 7 м, добавление резистора 1 МОм уменьшает её до 5 м.
R-CDS: Резистор параллельно подтягивающему резистору 1 МОм. Без R-CDS минимальное сопротивление фоторезистора (т.е. максимальный уровень освещенности), при котором выход включен, составляет ~269 кОм (=0,7 В). Добавление сопротивления здесь уменьшает пороговое сопротивление фоторезистора для включения/выключения. Если сопротивление фоторезистора при желаемом пороге освещенности <269 кОм, то вы можете добавить внешний резистор последовательно с фоторезистором.
Распиновка микроволнового радарного датчика приближения RCWL-0516
Микроволновый радарный датчик приближения RCWL-0516 имеет пять пинов:
3V3: это выход встроенного стабилизатора напряжения (не пин питания)
VIN: это пин входного питания. Датчик может питаться напряжением от 4 до 28 В.
GND: это пин заземления.
OUT: это выходной пин. Выходной пин устанавливается в HIGH при обнаружении движения и остается в LOW, когда движения нет.
CDS: этот пин используется для подключения фоторезистора (LDR). Фоторезистор может использоваться для отключения датчика при ярком освещении.
В следующей таблице показана распиновка микроволнового радарного датчика приближения RCWL-0516:
Пин |
Описание |
|---|---|
3V3 |
Выход 3,3 В (не для питания датчика) |
GND |
Пин заземления |
OUT |
Выходной пин (HIGH при обнаружении движения) |
VIN |
Входное напряжение для питания датчика (от 4 В до 28 В) |
CDS |
Выход фоторезистора |
Микроволновый радарный датчик приближения vs PIR-датчик движения
Микроволновый радарный датчик приближения часто используется как альтернатива PIR-датчику движения в зависимости от применения проекта. В следующей таблице сравниваются оба датчика:
Микроволновый радар RCWL-0516 |
PIR-датчик движения |
|
|---|---|---|
Как это работает? |
Активный датчик (излучает микроволновые сигналы и обнаруживает отражения). |
Пассивный датчик (обнаруживает инфракрасное излучение, испускаемое объектами). |
Дальность обнаружения |
Большая дальность, обычно до 7+ метров. |
Меньшая дальность, обычно несколько метров, в зависимости от модели. |
Обнаружение через препятствия |
Может обнаруживать через неметаллические материалы. |
Блокируется некоторыми материалами (например, стеклом). |
Чувствительность к движению |
Высокая чувствительность, возможны ложные срабатывания. |
Не такая чувствительная, может пропустить незначительные движения. Обнаруживает только живые объекты, излучающие тепло. |
Зона покрытия |
Широкое покрытие с широкой диаграммой направленности радара. |
Узкое поле зрения. |
Подключение микроволнового радарного датчика приближения RCWL-0516 к Arduino
В этом разделе мы подключим датчик RCWL-0516 к плате Arduino. Мы также подключим светодиод к пину 13, который будет загораться при обнаружении движения. Если у вас нет светодиода, вы можете экспериментировать с нашим примером, используя встроенный светодиод Arduino.
Необходимые компоненты
Вот список компонентов, необходимых для этого проекта:
Arduino UNO (читайте Лучшие стартовые наборы Arduino)
Фоторезистор (опционально)
Следуйте приведенной ниже таблице или схеме подключения, чтобы подключить микроволновый радарный датчик приближения RCWL-0516 к Arduino:
Датчик RCWL-0516 |
Arduino |
|---|---|
3V3 |
не подключать |
GND |
GND |
OUT |
Пин 12 (или любой другой цифровой пин по вашему выбору) |
VIN |
5V (или любое напряжение от 4 В до 28 В) |
CDS |
не подключать (или подключить внешний фоторезистор) |
Arduino с датчиком RCWL-0516 – скетч Arduino
Скопируйте следующий код в вашу Arduino IDE. Этот пример очень простой. Он просто считывает выходной сигнал датчика и выводит в монитор порта сообщение при обнаружении движения, а также соответственно включает встроенный светодиод Arduino (светодиод горит при обнаружении движения).
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/arduino-rcwl-0516/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*/
//If you're using the built-in LED for testing, remember that it works with inverted logic
//(HIGH=LOW, and LOW=HIGH)
int led = 13; // the pin that the LED is attached to
int sensor = 12; // the pin that the sensor is attached to
int state = LOW; // by default, no motion detected
int val = 0; // variable to store the sensor status (value)
void setup() {
pinMode(led, OUTPUT); // initalize LED as an output
pinMode(sensor, INPUT); // initialize sensor as an input
Serial.begin(9600); // initialize serial
}
void loop(){
val = digitalRead(sensor); // read sensor value
if (val == HIGH) { // check if the sensor is HIGH
digitalWrite(led, HIGH); // turn LED ON
if (state == LOW) {
Serial.println("Motion detected!");
state = HIGH; // update variable state to HIGH
}
}
else {
digitalWrite(led, LOW); // turn LED OFF
if (state == HIGH){
Serial.println("Motion stopped!");
state = LOW; // update variable state to LOW
}
}
}
Как работает код
Начнем с определения пинов для светодиода и для выходного пина датчика. Мы подключаем светодиод к пину 13. Если у вас нет светодиода, вы можете наблюдать за встроенным светодиодом Arduino, который подключен к пину 13.
int led = 13; // the pin that the LED is attached to
Мы подключаем выход датчика к пину 12, но вы можете использовать любой другой пин.
int sensor = 12; // the pin that the sensor is attached to
Затем инициализируем несколько переменных. Переменная state хранит текущее состояние выходного пина датчика и изначально установлена в LOW.
int state = LOW; // by default, no motion detected
Переменная val будет хранить состояние (значение) цифрового выхода датчика — либо HIGH, либо LOW.
int val = 0; // variable to store the sensor status (value)
По сути, val используется для временного хранения значения выходного сигнала датчика в реальном времени, а state — для отслеживания, было ли обнаружено движение или нет на протяжении времени.
В функции setup() устанавливаем светодиод как выход, а датчик как вход. Также инициализируем монитор порта со скоростью 9600 бод.
void setup() {
pinMode(led, OUTPUT); // initalize LED as an output
pinMode(sensor, INPUT); // initialize sensor as an input
Serial.begin(9600); // initialize serial
}
В функции loop() мы начинаем с чтения цифрового выхода датчика (HIGH или LOW) и сохраняем значение в переменной val.
val = digitalRead(sensor); // read sensor value
Если выход датчика HIGH (движение обнаружено), светодиод включается.
if (val == HIGH) { // check if the sensor is HIGH
digitalWrite(led, HIGH); // turn LED ON
Затем мы проверяем, было ли предыдущее состояние LOW. Если да, это означает, что состояние изменилось и движение было обнаружено. Мы выводим сообщение в монитор порта и меняем переменную state на HIGH.
if (state == LOW) {
Serial.println("Motion detected!");
state = HIGH; // update variable state to HIGH
}
Если выход датчика LOW (движение не обнаружено), мы выключаем светодиод.
else {
digitalWrite(led, LOW); // turn LED OFF
Если предыдущее состояние было HIGH и теперь стало LOW, это означает, что движение прекратилось, и мы можем установить переменную state в LOW.
if (state == HIGH){
Serial.println("Motion stopped!");
state = LOW; // update variable state to LOW
}
Демонстрация
Загрузите код на плату Arduino и откройте монитор порта со скоростью 9600 бод. Сбросьте плату.
При обнаружении движения вы должны увидеть сообщение «Motion detected», за которым через две секунды следует сообщение «Motion stopped». Кроме того, встроенный светодиод будет загораться при обнаружении движения.
Если у вас подключен фоторезистор, вам может понадобиться уменьшить освещенность, чтобы получить положительные результаты.
Заключение
В этом руководстве вы узнали, как использовать микроволновый радарный датчик приближения RCWL-0516 для обнаружения движения в окружающем пространстве. RCWL-0516 может стать хорошей альтернативой PIR-датчику движения в зависимости от требований вашего проекта.
Мы надеемся, что это руководство было для вас полезным. Если вы хотите попробовать PIR-датчик движения, прочитайте это руководство: Arduino с PIR-датчиком движения.
У нас есть руководства для более чем 35 различных датчиков и модулей для Arduino. Перейдите по следующей ссылке:
Узнайте больше об Arduino с помощью наших ресурсов:
Спасибо за чтение.