【学习笔记】在Arduino开发板上使用人体红外传感器HC-SR505

本文介绍了如何在Arduino Uno上连接和使用HC-SR505人体红外传感器。传感器在检测到移动时会产生8秒的HIGH信号,工作电压范围4.5V至20V,能检测3米内的移动。连接只需三根线,通过读取传感器的OUT引脚状态来判断是否有移动。示例代码展示了如何简单地在Arduino上实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PIR(Pyroelectric Infra Red)传感器可测量检测区域中的物体发出的红外光。 HC-SR505就是这样的传感器。它非常易于使用,如果检测区域中有物体在移动,该传感器会产生HIGH高电平信号。该高电平信号持续约8秒钟,有时被视为不利条件。不幸的是,这个缺点不能在软件上解决,即在源代码中添加替代方法不起作用。该模块的工作电压在4.5V至20V之间。根据数据手册,传感器可检测到长达3m的移动。在本篇文章中,我们将主要介绍如何在Arduino开发板上使用HC-SR505传感器。

所需的材料清单:
– Arduino Uno开发板
– 跳线
– 面包板
– HC-SR505传感器
在这里插入图片描述

连接方式
要将SR505连接到Arduino,只需要三根线。 SR505有三个引脚,分别是:“-”、“ OUT”和“ +”。首先,确保为SR505提供足够的电压:Arduino的GND引脚连接到SR505的“-”引脚。接下来,必须将Arduino的5V引脚连接到SR505的“ +”引脚。OUT引脚将根据检测到的内容返回LOW或HIGH。该引脚必须连接到Arduino的其中一个数字引脚。在本文中,使用引脚2。
在这里插入图片描述

示例源代码
该程序非常简单。首先,在setup函数功能中启用串口连接。以后使用串口连接将传感器的状态打印

<think>好的,我现在需要处理用户关于ArduinoHC-SR505人体红外传感器使用教程和代码示例的请求。首先,我要回顾用户提供的引用内容,看看是否有相关的信息可以利用。根据引用[2]和引用[3],用户已经有一些关于HC-SR505使用示例,特别是引用[3]中的代码示例,这可能对用户很有帮助。 用户明确请求使用教程和示例代码,所以我的回答需要结构清晰,分步骤说明如何连接硬件、编写代码以及测试传感器。我需要确保每一步都详细且易于理解,特别是针对可能刚入门的Arduino用户。 首先,硬件连接部分。HC-SR505有三个引脚:VCC、OUT和GND。需要指导用户如何正确连接到Arduino板子上。通常VCC接5V,OUT接数字引脚比如D2,GND接GND。这部分需要明确说明,避免混淆。 接下来是示例代码。引用[3]中的代码已经提供了一个基本的示例,检测运动并控制LED和串口输出。我应该参考这个代码,并可能需要稍作调整或补充说明,比如添加注释解释每部分的功能,或者建议用户如何修改引脚配置。同时,需要确保代码语法正确,符合Arduino的编程规范。 另外,用户可能还需要了解传感器的工作原理和注意事项。比如,HC-SR505是热释电红外传感器,检测人体运动,输出高电平信号。它的触发后延时时间可能固定,需要说明这一点,以及感应范围和安装注意事项。 还要考虑用户可能遇到的问题,比如传感器不触发或误触发。这时候需要给出一些排查建议,比如检查接线、供电是否稳定,环境干扰等。这有助于用户在实际操作中解决问题。 最后,生成的相关问题需要围绕用户可能进一步的需求展开,比如优化检测灵敏度、多传感器联动应用、低功耗模式,或者与其他传感器的结合使用。这些问题可以引导用户深入学习和应用该传感器。 需要确保回答中的LaTeX格式正确,所有行内数学表达式使用$...$,但在这个问题中可能用不到数学公式,所以主要注意代码块的格式和引用标识的正确添加。引用[3]中的代码需要正确标注来源,并在末尾添加引用标识。 总结一下,回答的结构应该是: 1. 硬件连接说明 2. 示例代码及解释 3. 工作原理和注意事项 4. 常见问题排查 5. 相关问题的生成 需要检查所有技术细节是否正确,比如引脚编号、代码逻辑是否正确,是否有遗漏的步骤。同时使用中文,保持口语化,但避免使用专业术语时过于晦涩。确保回答真实可靠,参考了提供的引用内容,特别是引用[3]中的代码示例。</think>以下为您整理的Arduino HC-SR505人体红外传感器使用教程与代码示例: ### 一、硬件连接说明 1. 传感器引脚说明: - VCC → Arduino 5V - OUT → 数字引脚D2 - GND → Arduino GND 2. 可选附加组件: - 可连接LED到D13引脚(板载LED) - 通过OLED显示检测状态(需SPI接线) ### 二、基础示例代码 ```cpp const int pirPin = 2; // 传感器OUT引脚接D2 const int ledPin = 13; // 板载LED void setup() { pinMode(pirPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { int state = digitalRead(pirPin); if(state == HIGH) { digitalWrite(ledPin, HIGH); Serial.println("检测到人体移动!"); } else { digitalWrite(ledPin, LOW); Serial.println("无移动信号"); } delay(500); // 降低检测频率 } ``` ### 三、工作原理与参数说明 1. **检测机制**: - 基于人体发出的$9-10\mu m$红外线 - 菲涅尔透镜增强检测范围(约3米) 2. **输出特性**: - 检测到移动时输出$+3.3V$高电平 - 触发后保持高电平约$8-200$秒(不同版本有差异) ### 四、优化技巧 1. 安装注意事项: - 避免阳光直射和热源干扰 - 安装高度建议$1.5-2$米 2. 代码优化方向: ```cpp // 添加防抖处理 if(state == HIGH && lastState == LOW) { triggerTime = millis(); } if(millis() - triggerTime > 5000) { // 5秒无新触发则关闭 // 执行关闭操作 } ``` ### 五、常见问题排查 1. **不触发检测**: - 检查供电是否达到$4.5-20V$[^3] - 确认感应区域有温差变化 2. **误触发**: - 避免窗帘摆动干扰 - 添加延时过滤短暂触发
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值