37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零二:HC-SR505迷你小型人体感应模块 热释电 红外运动感应开关传感器 探头
HC-SR505热释电运动传感器模块的实验环境
一、SR505热释电运动传感器模块实验所需硬件清单
Arduino Uno开发板 X1
杜邦线 若干(备了9条)
高电平触发有源蜂鸣器模块X1
LED发光二极管(绿、蓝色)X2
高电平触发单路5V继电器模块X1
HC-SR505热释电运动传感器模块X2
Proto Shield 原型扩展板(带mini面包板)X1
二、SR505热释电运动传感器模块实验所需软件平台
代码编程 Arduino IDE (版本1.8.19)
仿真编程 Linkboy (版本V4.6.3)
图形编程 Mind+ (版本 V1.7.0 RC2.0)以及编玩边学(线上平台)
三、实验接线示意图
四、实验说明
1、与 Arduino 接口
可以将HC-SR505模块与 Arduino 连接。连接很简单。它有三个引脚。将接地引脚 1 连接到 Arduino 的地,将引脚 3 连接到 Arduino 的 5V 引脚。Pin2 为信号输出。它通过发送 HIGH 或 LOW 信号来指示对象的存在。将此引脚连接到 Arduino 的任何数字引脚。
2、当任何物体进入感应范围时,传感器会自动触发。只需连接电源和接地。将输出引脚接地,LED 连接在它们之间。另外,在这个 LED 上串联一个电阻。当传感器检测到物体时,输出引脚将提供 3.3V 电压,LED 会发光。另一方面,如果传感器没有发现任何移动物体,输出引脚将保持在 0 伏,LED 将保持关闭状态。
3、该传感器的功能是检测物体的运动。它在传感器的输出端发送高信号发现在感应距离内移动的东西,否则在输出引脚发送低信号。这个 HIGH 信号持续几乎 8 个信号,这在某些应用中是一个缺点。
HC-SR505热释电运动传感器模块的几个实验
1、程序一:通过串口显示HC-SR505热释电模块的状态
(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序一:通过串口显示HC-SR505热释电模块的状态
*/
#define PIROUT 2
void setup(){
Serial.begin(9600); // 设置串口波特率为9600
pinMode(PIROUT, INPUT);//模块连接引脚D2,并设置为输入模式
}
void loop(){
if (digitalRead(PIROUT) == HIGH) {
Serial.println("有人在这里!");
}
else{
Serial.println("PIR 传感器未检测到任何东西");
}
delay(1000);
}
(2)实验串口返回情况
(3)实验场景图
2、程序二:通过串口显示HC-SR505热释电模块的状态
(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序二:如果有人靠近传感器(3米以内),SR505会输出高电平,LED闪烁
*/
int SR505 = 2; //模块信号输出引脚接数字2口
int LED = 13; //LED灯接13口
void setup() {
pinMode(LED, OUTPUT); //设定LED脚为输出
pinMode(SR505, INPUT); //设定SR505信号引脚为输入
Serial.begin(9600);//设定串口波特率
}
void loop() {
if (digitalRead(SR505) == HIGH) //判断传感器输出是否为高电平
{
Serial.println("进入感应区");
digitalWrite(LED, HIGH); //有人进入感应区LED闪烁
delay(10);
digitalWrite(LED, LOW);
delay(10);
}
else
{
Serial.println("无进入");//无人进去感应区LED熄灭
digitalWrite(LED, LOW);
}
delay(500);
}
(2)实验串口返回情况
(3)实验场景图
3、程序三:HC-SR505人体感应声光报警器
(1)实验开源仿真编程(Linkboy V4.63)
(2)实验场景图
4、程序四:HC-SR505人体感应三米声光报警器
(1)实验开源图形编程(Mind+、Mixly、编玩边学)
(2)实验串口返回情况
5、程序五:SR505声光人体感应开关
(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序五:SR505声光人体感应开关
*/
int sensor = A0;//SR505接A0
int led = 2;//LED接D2
int buzzer = 3;//蜂鸣器接D3
int val = 0;
void setup(){
Serial.begin(9600);//设定串口波特率
pinMode(sensor, INPUT);//设定SR505信号引脚为输入
pinMode(led, OUTPUT);//设定LED引脚为输出
pinMode(buzzer, OUTPUT);//设定蜂鸣器引脚为输出
}
void loop() {
val = analogRead(sensor);
Serial.print("人体感应传感器=");
Serial.println(val);//串口打印传感器数值
delay(250);
if (val < 500) {//设定传感器触发阙值为500
digitalWrite(led, LOW);
digitalWrite(buzzer, HIGH);
}
if (val > 500) {
Serial.println("有感应,打开");//有感应,打开
digitalWrite(led, HIGH);
digitalWrite(buzzer, LOW);
delay(1000);
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(led, HIGH);
digitalWrite(buzzer, LOW);
delay(1000);
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(led, HIGH);
digitalWrite(buzzer, LOW);
delay(1000);
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
delay(10000);//延时10秒
Serial.println("关闭");
}
}
(2)实验接线示意图
(3)实验串口返回情况