【雕爷学编程】Arduino动手做(202)---HC-SR505热释电人体感应传感器模块的五个实验

在这里插入图片描述

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)实验串口返回情况

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您将学习如何将超声波传感器HC-SR04与Arduino连接。它可以是超声波范围传感器或任何用途。 超声波传感器HC-SR04是可以测量距离的传感器。它会发出40 000 Hz(40kHz)的超声波,该超声波在空中传播,如果路径上有物体或障碍物,它将反弹回模块。考虑到传播时间和声音的速度,您可以计算出距离。 HC-SR04的配置引脚为VCC(1),TRIG(2),ECHO(3)和GND(4)。VCC的压为+ 5V ,您可以将TRIG和ECHO引脚连接到Arduino板中的任何数字I / O。 进行此项目所需的材料: 1. Arduino UNO R3 CH340(您可以使用任何Arduino开发板) 2.超声波传感器HC-SR04 3.公对公跳线 4.面包板 为了产生超声波,我们需要将触发引脚设置为高状态10 s 。这将发出一个8周期的声音脉冲,将以速度声音行进,并且将在回音针中接收。回音针将输出声波传播的时间(以微秒为单位)。 例如,如果物体距传感器20厘米,并且声音的速度为340 m / s或0.034 cm / µs,则声波将需要传播约588微秒。但是由于声波需要向前传播和向后反弹,所以从回声针所得到的将会是这个数字的两倍。因此,为了获得以厘米为单位的距离,我们需要将从回波引脚接收的行进时间值乘以0.034,然后将其除以2。 对于编程代码,首先我们需要定义连接到Arduino板的触发引脚和回波引脚。在此项目中,EchoPin附加到D2 ,TrigPin附加到D3。然后定义距离(整数)和持续时间(长整数)的变量。 在循环中,首先必须确保trigPin是透明的,所以我们必须将该引脚设置为LOW状态仅2 µs 。现在,用于生成超声波,我们必须设置trigPin的高态为10微秒。使用pulseIn()函数,您必须读取行程时间并将该值放入变量“ duration”中。此功能有2个参数,第一个是回波引脚的名称,第二个可以写入HIGH或LOW。在这种情况下,HIGH表示pulseIn()该功能将等待由反弹的声波引起的引脚变为高平并开始计时,然后在声波结束时等待引脚变为低平而停止计时。最后,该函数将返回脉冲长度(以微秒为单位)。为了获得距离,我们将持续时间乘以0.034,然后将其除以2,如我们之前解释此方程式。最后,我们将在串行监视器上打印距离的值。 脚步 : 1.首先进行如图所示的接线 2.打开Arduino IDE软件并写下您的代码,或下载下面的代码并打开它 3.通过选择工具>板> Arduino / Geniuno Uno选择您自己的Arduino板(在本例中为Arduino Uno) 4.选择“ COM端口”(通常只显示一个现有端口),在“工具” >“端口” >“ COM。”中。(如果有多个端口,请一一尝试) 5.通过按Ctrl + U或Sketch > Upload上载代码 6.要显示测量数据,可以使用串行监视器,方法是按Ctrl + Shift + M (确保波特率是9600) 上载代码后,使用串行监视器显示数据。现在,尝试将一个物体放在传感器前面,然后查看测量结果。 考虑到这一点,您可以使用手动卷尺测量距离并将其与串行监视器上的距离进行比较。如果要在LCD上显示,可以按照第二个接线图并上传以下代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值