红外传感器模块与 Arduino 连接
红外传感器模块与 Arduino 连接
原文地址

Arduino 红外传感器接口
红外**接近传感器或红外传感器它发射红外光以感知周围环境,并可用于检测物体的运动。由于这是一个无源传感器,它只能测量红外辐射。如果您曾经尝试过设计避障机器人或任何其他基于接近检测的系统,那么您很可能已经知道这个模块。
红外传感器引脚排列
红外传感器有一个 3 针连接器,可将其连接到外部世界。连接如下:

VCC 连接到 Arduino 上的 5V 引脚的红外传感器的电源引脚。
OUT 引脚为5V TTL逻辑输出。低表示未检测到运动;高表示检测到运动。
GND 连接到Arduino的接地。
红外运动传感器模块如何工作?
红外传感器模块的工作非常简单,它由两个主要组件组成:第一个是红外发射器部分,第二个是红外接收器部分。在发射器部分,使用红外LED,在接收器部分,光电二极管用于接收红外信号,经过信号处理和调理,您将获得输出。

红外接近传感器的工作原理是向红外发光二极管施加电压,红外发光二极管发出红外光。该光在空气中传播并撞击物体,然后光电二极管传感器接收。如果物体近,反射光会更强,如果物体离得远,反射光会更弱。如果您仔细观察模块。当传感器触发时,它通过输出引脚发送低电平,Arduino或任何类型的微控制器都可以检测到该信号以执行特定任务。该模块内置了两个板载LED,其中一个在电源可用时亮起,另一个在电路被触发时打开。
**红外运动传感器模块 **
对于大多数Arduino项目,该传感器用于检测接近或构建避障机器人。该传感器在初学者中很受欢迎,因为它们功耗低、成本低、坚固耐用,并且具有宽感应范围,可以调整灵敏度。

该传感器有三个引脚,其中两个是电源引脚VCC和GND,另一个是数据引脚,如上图所示。它有一个板载电源 LED 和一个信号 LED,当电源施加到电路板上时,电源 LED 亮起,触发电路时信号 LED 亮起。该板还具有一个比较器运算放大器,负责将光电二极管的输入模拟信号转换为数字信号。我们还有一个灵敏度调节电位器;这样,我们可以调整设备的灵敏度。最后,我们有光电二极管和红外发射 LED 对,它们共同构成了整个红外接近传感器模块。
关于红外传感器的常见问题
红外传感器的输入功率是多少?
红外接近传感器模块可由 3.3V 和 5V 电源供电。这使得该模块可用于Arduino等5V系统和Raspberry Pi等3.3V系统。
红外传感器模块的范围是多少?
如果物体与传感器之间的距离为 2 到 10 厘米,则此传感器可以检测物体。此外,您还可以通过调整模块上的微调电位器来控制传感器的最大距离。
如何测试红外传感器模块?
测试您的红外传感器模块很容易,只需分别用 5V 和接地为 Vcc 和 Gnd 引脚供电,然后将手靠近红外传感器。如果一切正常,您应该能够看到模块上的信号 LED 亮起。
红外运动传感器模块电路图
红外运动传感器的示意图如下所示。原理图本身非常简单,需要一些通用元件来构建。如果您手头没有预构建的模块,但仍想测试您的项目,下面的原理图将派上用场。

在原理图中,我们有一个红外LED作为发射器,光电二极管作为接收器。如果物体在传感器前面,光电二极管会接收来自物体的反射光,根据强度,我们可以确定物体的距离或距离。在原理图中,您还可以找到一个LM358运算放大器,它正在执行所有比较工作并生成输出。除此之外,还有一个电位计可用于调整红外传感器模块的灵敏度或该模块的触发距离。
带 Arduino UNO 的红外传感器 – 连接图
现在我们已经完全了解了红外传感器的工作原理,我们可以将所有必需的电线连接到Arduino,如下所示。

将红外传感器连接到任何微控制器非常简单。众所周知,该传感器输出数字信号,处理该信号非常容易。有两种方法,您始终可以在无限循环中检查端口以查看端口何时将其状态从高变为低,或者另一种方法是使用中断来执行此操作,如果您正在制作复杂的项目,建议使用中断方法。用 5V 或 3.3V 为 IR 供电,并接地。然后将输出连接到数字引脚D9。我们使用公对母跳线将红外传感器模块与 Arduino 板连接,如下所示。

有了这个,您现在可以上传一些代码并使红外运动传感器正常工作。您还可以在本文底部查看上述模块的实际效果。
Arduino 代码,用于将红外运动传感器模块与 Arduino 接口
Arduino IR传感器模块代码非常简单易懂。我们基本上只是跟踪引脚D9的输入是高电平还是低电平。
我们通过声明两个全局变量来初始化代码,第一个变量保存连接红外传感器的引脚值,第二个保存 LED 连接处的值
int IRSensor = 9; // connect IR sensor module to Arduino pin D9
int LED = 13; // connect LED to Arduino pin 13
接下来,我们有设置功能。在设置函数中,我们用 115200 波特初始化串行。接下来,我们打印一条语句来检查串行监视器窗口是否正常工作,然后将IRSensor引脚初始化为输入,将LED引脚初始化为输出。
void setup() {Serial.begin(115200); // Init Serial at 115200 Baud Rate.Serial.println("Serial Working"); // Test to check if serial is working or notpinMode(IRSensor, INPUT); // IR Sensor pin INPUTpinMode(LED, OUTPUT); // LED Pin Output
}
接下来,我们有无限循环。在无限循环中,我们首先使用 digitalRead() 函数读取传感器引脚,并将值存储到 sensorStatus 变量中。然后我们检查传感器的输出是高还是低,如果传感器的输出是高,则表示未检测到运动,否则检测到运动,我们还在串行监视器窗口中打印此状态。
void loop() {int sensorStatus = digitalRead(IRSensor); // Set the GPIO as Inputif (sensorStatus == 1) // Check if the pin high or not{// if the pin is high turn off the onboard LeddigitalWrite(LED, LOW); // LED LOWSerial.println("Motion Detected!"); // print Motion Detected! on the serial monitor window}else {//else turn on the onboard LEDdigitalWrite(LED, HIGH); // LED HighSerial.println("Motion Ended!"); // print Motion Ended! on the serial monitor window}
}
这就是我们简单的基于Arduino的红外传感器代码的结尾。
红外运动传感器模块的工作原理
GIF 显示了红外传感器模块的运行情况,您可以注意到模块和 Arduino 板上的 LED 都亮起,因为红色箭头指向购买。如果您是第一次使用红外运动传感器模块,那么您应该得到与此类似的响应。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KBMgjWVU-1678238510539)(https://circuitdigest.com/sites/default/files/inlineimages/u4/Working-of-IR-Sensor.gif)]
使用 Arduino 红外传感器模块的项目
以前我们已经使用这个红外传感器来构建许多有趣的项目。如果您想了解有关这些主题的更多信息,请在下面提供链接。

自动瓶灌装系统
使用Arduino和现成的材料构建您自己的简单高效的瓶子灌装机,可用于在聚会上倒饮料,或者如果您必须在一天内填充许多瓶子,该设备可以成为救星。

基于 ESP8266 节点MCU 的智能停车系统
如果您在当地或公寓遇到停车问题,您可以构建这个简单的基于物联网的智能停车系统,该系统使用红外传感器打开大门并通过互联网将您更新到您的手机。

Arduino UNO线路跟随机器人
如果您是初学者并且想要构建汽车机器人,那么这对您来说可能是一个良好的开端,因为它使用易于使用的零件和组件。

使用Arduino的红外控制直流电机
如果您是初学者并正在寻找简单的项目,那么这个项目对您来说可能是一个不错的选择,因为它使用红外传感器电机和继电器在您站在风扇前时打开风扇。
代码
// Arduino IR Sensor Code
int IRSensor = 9; // connect ir sensor module to Arduino pin 9
int LED = 13; // conect LED to Arduino pin 13
void setup() {Serial.begin(9600); // Init Serila at 115200 BaudSerial.println("Serial Working"); // Test to check if serial is working or notpinMode(IRSensor, INPUT); // IR Sensor pin INPUTpinMode(LED, OUTPUT); // LED Pin Output
}void loop() {int sensorStatus = digitalRead(IRSensor); // Set the GPIO as Inputif (sensorStatus == 1) // Check if the pin high or not{// if the pin is high turn off the onboard LeddigitalWrite(LED, LOW); // LED LOWSerial.println("Motion Ended!"); // print Motion Detected! on the serial monitor window} else {//else turn on the onboard LEDdigitalWrite(LED, HIGH); // LED HighSerial.println("Motion Detected!"); // print Motion Ended! on the serial monitor window}
}
相关文章:
红外传感器模块与 Arduino 连接
红外传感器模块与 Arduino 连接 原文地址 Arduino 红外传感器接口 红外**接近传感器或红外传感器它发射红外光以感知周围环境,并可用于检测物体的运动。由于这是一个无源传感器,它只能测量红外辐射。如果您曾经尝试过设计避障机器人或任何其他基于接近…...
NC xml配置文件不能生产java文件
在NC开发过程中,新增、或修改了xml文件,在开发工具eclipse中生成或重新生成Java文件,发现生成不了相对应的Java文件。如下图,选中xml文件后,右键点击SpringXml to Java 这种情况其实一般都是xml配置文件有问题&#…...
华为OD机试 - 五键键盘(C 语言解题)【独家】
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 使用说明本期题目:五键键盘…...
Kubernetes Service简介
Service 之前我们了解了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了。我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod。尽管每个Pod都有自己的IP地址,但是如果Pod重新启动了的话那么他的IP很有可能也就变…...
【c++类与对象 】
目录:前言一、基础引入1.类的定义2.类的权限3.类的封装4.类的实例化5.计算类对象的大小结构体内存对齐规则空类的大小二、this指针this引入this指针的特性经典例题三、类的六个默认成员函数1、构造 && 析构构造函数析构函数2、拷贝 && 赋值拷贝构造…...
【C++】内联函数auto范围for循环nullptr
🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、内联函数1.1 内联函数概念1.2…...
运维效率狂飙,都在告警管理上
随着数字化进程的加速,企业IT设备和系统越来越多,告警和流程中断风险也随之增加。每套系统和工具发出的警报,听起来像是一场喧嚣的聚会,各自谈论不同的话题。更糟糕的是,安全和运维团队正在逐渐丧失对告警的敏感度&…...
【每日随笔】中国当前社会阶层 ( 技术无关 | 随便写写 )
文章目录一、阶层划分根据收入划分的阶层根据分工逻辑划分根据权利划分二、根据社会地位和掌握的资源划分的阶层三、赚钱的方式四、如何进入高阶层看了一个有意思的视频 , 讲的是中国当前的社会阶层 , 感觉好有道理 , 搜索了一些资料 ; 参考资料 : 关于中国的社会阶层社会在分…...
【13种css选择器】学css选择器,这一篇就够了
举例形象让你学会,不搞官方话css所有的选择器相邻兄弟选择器后续兄弟选择器后代选择器子代选择器并集选择器(多重选择器)属性选择器伪类选择器伪元素选择器class选择器(类选择器)id选择器*选择器(通配符选择器)标签选择…...
1-1 微服务架构概述
文章目录微服务架构概述1-1. 系统进化理论概述集中式系统:分布式系统1-2. 系统进化理论背景1-3. 什么是微服务架构1-4. 微服务架构的优缺点1-5. 为什么选择 Spring Cloud 构建微服务认识 Spring Cloud2-1. Spring Cloud 是什么2-2. Spring Cloud 的版本2-3 Spring C…...
uniapp传参
//子传父子页面:sumbit() {console.log(this.formData, 传过去的内容对象)let pages getCurrentPages();let prevPage pages[pages.length - 2]; //上一个页面prevPage.$vm.getParams(this.formData); //重点$vmuni.navigateBack();},父页面接收:metho…...
面试官:说说你对 TypeScript 中函数的理解?与 JavaScript 函数的区别?
一、是什么 函数是 JavaScript 应用程序的基础,帮助我们实现抽象层、模拟类、信息隐藏和模块 在 TypeScript 里,虽然已经支持类、命名空间和模块,但函数仍然是主要定义行为的方式,TypeScript 为 JavaScript 函数添加了额外的功能…...
【测试】HD-G2L-IO评估板测试结果表
1. 测试对象HD-G2L-IOT基于HD-G2L-CORE V2.0工业级核心板设计,双路千兆网口、双路CAN-bus、2路RS-232、2路RS-485、DSI、LCD、4G/5G、WiFi、CSI摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。H…...
[2.2.1]进程管理——调度的概念、层次
文章目录第二章 进程管理调度的概念、层次(一)调度的基本概念(二)调度的三个层次(1)高级调度(2)低级调度(3)中级调度补充知识:进程的挂起态与七状…...
【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框架及UI小部件
Webix是Javascript库 一种软件产品 用于加速Web开发的 JavaScript UI库和框架 Webix用于跨平台Web应用程序开发的JS框架,为您提供102个UI小部件和功能丰富的CSS/HTML5 JavaScript控件 开发商介绍 Webix团队由由热衷于创建高质量网络产品的专业人士组成ÿ…...
【微信小程序】-- WXS 脚本(二十九)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
案例19-遇见问题的临时解决方案和最终解决方案
目录1、背景介绍2、两种解决方案的概念1、临时解决方案:2、最终解决方案:3、排查问题过程4、总结站在用户的角度思考作为软件开发者5、升华1、背景介绍 首先说明这是系统很早之前的时候的一个功能,当时和学习通还有很强的耦合关系。在学习通…...
自指(Self-reference)
文章目录1. 在逻辑、数学和计算方面2. 在生物学中3. 在艺术4. 在语言中5. 在流行文化中6. 在法律中自我参照(Self-reference)是一个涉及指代自己或自己的属性、特征或行为的概念。它可以发生在语言、逻辑、数学、哲学和其他领域。 在自然语言或形式语言…...
关于Hanoi塔的实现
关于Hanoi塔的实现 首先,在此之前,我们需要了解一下递归这个东西; 在我看来,递归这个东西就是栈的进出; 向下:进栈回溯:出栈 在进栈之前标记状态,输入到栈中; #incl…...
原始套接字(Raw Socket)
原始套接字允许对较低层次的协议进行访问,如: IP协议,ICMP协议等一般用于自定义协议的实现,处理IP协议没有处理过的数据运输层下IP数据不关注内核是否已有注册的句柄来处理这些数据,都会将这些IP数据复制一份传递给与协议类型匹配的原始套接字,没有的话,直接丢弃该数据,并返回主…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
