当前位置: 首页 > news >正文

红外传感器模块与 Arduino 连接

红外传感器模块与 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,如下所示。

Arduino 红外传感器模块电路连接

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

将红外传感器模块与 Arduino Uno 连接

有了这个,您现在可以上传一些代码并使红外运动传感器正常工作。您还可以在本文底部查看上述模块的实际效果。

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 的红外传感器

自动瓶灌装系统

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

带 Arduino 的红外传感器

基于 ESP8266 节点MCU 的智能停车系统

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

img

Arduino UNO线路跟随机器人

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

img

使用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团队由由热衷于创建高质量网络产品的专业人士组成&#xff…...

【微信小程序】-- 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数据复制一份传递给与协议类型匹配的原始套接字,没有的话,直接丢弃该数据,并返回主…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

CSS | transition 和 transform的用处和区别

省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...