|
了解如何使用RCWL-0516运动检测传感器以及基于Arduino开发板制作接近传感器!
在本篇文章中,我们将制作一个运动报警系统。 RCWL-0516是一款运动检测传感器。它可以通过多普勒微波技术通过墙壁或其他材料检测运动。它不仅会被人触发,还会被任何其他移动物体触发。
什么是多普勒雷达? 基于多普勒效应,多普勒雷达(Doppler Radar)通过从所需目标反射微波信号并分析物体的运动如何改变返回信号的频率来工作。接收信号的变化也可以帮助测量目标相对于雷达的速度。
多普勒雷达有效地用于各种应用,包括航空、气象、医疗保健和军事。
我们在本文中使用的传感器 - RCWL-0615 - 包含发射器和接收器,从而实现多普勒雷达。
RCWL-0615微波接近传感器 RCWL-0615传感器模块是普通PIR运动传感器的替代品,广泛用于防盗报警器和安全灯。 PIR传感器使用黑体嗅探机制,这意味着它可以监测人体散发的热量。 RCWL-0516利用多普勒雷达技术探测移动物体。它的工作频率约为3.2GHz,采用RCWL-9196处理芯片。
RCWL-0516发射微波并分析反射波以检查是否有任何变化。这些传感器可以通过墙壁和其他材料检测移动物体,灵敏度范围为7米。它们通常较便宜且不易出错。当检测到运动时,传感器的TTL电平输出(OUT)引脚将从LOW(0 V)切换到HIGH(3.3 V)并持续一段时间(2到3 s),然后再返回到空闲(LOW)状态。
RCWL-0615微波接近传感器
RCWL-0615主要特点 ● 发射功率:20 mW(最小值)/ 30 mW(最大值) ● 电压输入:4-28 VDC ● 感应距离:5-7米 ● 传感器频率:~3.2 GHz
RCWL-0615引脚说明 ● VIN - 4V- 28V DC电源输入 ● CDS - 传感器禁用输入(低=禁用)(适用于LDR传感器) ● GND - 接地 ● 3V - 直流输出(最大100 mA) ● OUTPUT - 高电平/低电平(3.3 V)(根据运动检测)
现在我们熟悉了使用的传感器以及该技术的工作原理,让我们深入了解制作过程!
所需的硬件 ● Arduino Nano开发板 ● 面包板 ● 跳线 ● RCWL-0516 ● 1602字符型LCD显示屏 ● 蜂鸣器 ● LED
硬件连接 将Arduinof分别连接到RCWL-0516、LCD、蜂鸣器和LED,如下图所示。
Arduino Nano开发板 | RCWL-0516 | GND | GND | 5V | VIN | D2 | OUT |
RCWL-0516上的引脚3V3是输出引脚。 CDS引脚允许您向电路板添加LDR(光敏电阻),允许在低功耗模式下工作,以便传感器仅在黑暗中启用。
连接好所有组件后,仔细检查连接,然后上传源代码。
代码 以下是本文使用的代码: - #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- // Set the LCD address to 0x27 for a 16 chars and 2 line display
- LiquidCrystal_I2C lcd(0x27, 16, 2);
- int Sensor = 12; //Input Pin
- int LED = 3; // Led pin for Indication
- int Buzzer =2;
-
- int flg = 0; //Change detection flag
- void setup() {
-
- Serial.begin(9600);
- // initialize the LCD
- lcd.begin();
- lcd.clear();
-
- lcd.print("...MAKER.PRO...");
- delay(3000);
- // Turn on the blacklight and print a message.
- lcd.backlight();
- pinMode (Sensor, INPUT); //Define Pin as input
- pinMode (Buzzer, OUTPUT); //Led as OUTPUT
- pinMode (LED, OUTPUT); //Led as OUTPUT
- Serial.println("Waiting for motion");
- }
-
- void loop() {
-
- int val = digitalRead(Sensor); //Read Pin as input
-
- if((val > 0) && (flg==0))
- {
- digitalWrite(LED, HIGH);
- digitalWrite(Buzzer, HIGH);
-
- lcd.clear();
- Serial.println("Motion Detected");
- lcd.print("Motion Detected");
- flg = 1;
- }
-
- if(val == 0)
- {
- digitalWrite(LED, LOW);
- digitalWrite(Buzzer, LOW);
- lcd.clear();
- Serial.println("NO Motion");
- lcd.print("NO Motion ");
-
- flg = 0;
- }
- delay(100);
- }
复制代码
|