【雕爷学编程】Arduino动手做(65)---红外寻迹传感器

2023-11-04

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)

实验六十六: TCRT5000红外反射光电开关寻迹传感器模块

在这里插入图片描述
反射式光电开关
也属于红外线不可见光产品,是一种小型光电元器件,它可以检测出其接收到的光强的变化。在前期是用来检测物体有无感应到的,它是由一个红外线发射管跟一个红外线接收管组合而成,它的发射波长是780nm-1mm,发射器带一个校准镜头,将光聚焦射向接收器,接收器出电缆将这套装置接到一个真空管放大器上。检测对象是当它进入间隙的开槽开关和块光路之间的发射器和检测器, 当物体接近到灭弧室,接收器的一部分收集的光线从对象反射到光电元件上面。它是利用物体对红外线光束遮光或反射,由同步回路选通而检测物体的有无的,其物体不限于金属,对所有能反射光线的物体均可检测。

在这里插入图片描述
TCRT5000
其工作原理与一般的红外传感器一样,一传一感TCRT5000具有一个红外发射管和一个红外接收管,当发射管的红外信号经反射被接收管接收后,接收管的电阻会发生变化,在电路上一般以电压的变化形式体现出来,而经过ADC转换或LM324等电路整形后得到处理后的输出结果,电阻的变化起取于接收管所接收的红外信号强度,常表现在反射面的颜色和反射面接收管的距离两二方面。

在这里插入图片描述
在这里插入图片描述
工作环境
+:接直流DC5V正极
-:接直流DC5V负极
S:信号输出端,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮
工作电压:DC 3V~5.5V,推荐工作电压为5V
检测距离:1mm~8mm适用,焦点距离为2.5mm

在这里插入图片描述
TCRT5000的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。
在这里插入图片描述
TCRT5000探头的几个应用电路
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
TCRT5000红外反射光电开关寻迹传感器模块

1、采用 TCRT5000 红外反射传感器

2、检测反射距离:1mm~25mm 适用

3、比较器输出,信号干净,波形好,驱动能力强,超过 15mA

4、配多圈可调精密电位器调节灵敏度

5、工作电压 3.3V-5V

6、输出形式 :数字开关量输出(0 和 1)

7、设有固定螺栓孔,方便安装

8、小板 PCB 尺寸:3.2cm x 1.4cm

9、使用宽电压 LM393 比较器
在这里插入图片描述

模块电原理图
在这里插入图片描述
在这里插入图片描述
模块描述
该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于电度表脉冲数据采样、传真机碎纸机纸张检测、流水线计数、机器人避障、避障小车、及黑白线循迹等众多场合。
在这里插入图片描述
模块接线方式

1、VCC:接电源正极(3-5V)

2、GND:接电源负极

3、DO:TTL开关信号输出

4、AO:模拟信号输出(不同距离输出不同的电压,此脚一般可以不接)

在这里插入图片描述

/*

【Arduino】168种传感器模块系列实验(65)

实验六十五: TCRT5000红外反射光电开关寻迹传感器模块

*/

 

int ledPin=13;//定义数字接口13为LED输出接口

int pin=10;//定义数字检测接口pin0

int val;//定义变量

 

void setup()

{

  pinMode(ledPin,OUTPUT);//设定数字接口13为输出接口

  Serial.begin(9600);//设置串口波特率为9600kbps

}

 

void loop()

{

 val=digitalRead(pin);//读取模拟接口的值

 Serial.println(val);//输出模拟接口的值

 if(val==1)//如果Pin10检测的值为高电平,点亮LED

 {

 digitalWrite(ledPin,HIGH);

 }

 else          //如果为低电平熄灭LED

 {

 digitalWrite(ledPin,LOW);

 }

}

在这里插入图片描述
在这里插入图片描述

/*

【Arduino】168种传感器模块系列实验(65)

实验六十五: TCRT5000红外反射光电开关寻迹传感器模块

程序二,接到A0模拟口,串口波形,可以测量距离

*/

 

int tcrt;

 

void setup()

{

pinMode(13,OUTPUT);

Serial.begin(9600);

}

 

void loop()

{

tcrt = analogRead(A0);

 

analogWrite(13,tcrt/4);

Serial.println(tcrt);

delay(500);

}


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实验开源图形编程(Mind+)
在这里插入图片描述
在这里插入图片描述

实验开源仿真编程(linkboy3.7)
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【雕爷学编程】Arduino动手做(65)---红外寻迹传感器 的相关文章

  • 太阳诱电 | 陶瓷电容器的静电容量相关

    陶瓷电容器的静电容量会因温度而变化吗 电容器的静电容量的温度特性是什么 陶瓷电容器的静电容量随周围的温度而变化 静电容量因温度而变化的现象 称为静电容量的温度特性 这是由于陶瓷电容器使用的材料造成的 也是所有陶瓷电容的常有现象 以下是本公司
  • C++ 递减单字节(易失性)数组的元素不是原子的!为什么? (另外:如何在 Atmel AVR mcus/Arduino 中强制原子性)

    由于试图通过一些我不知道的简单内容来调试我的代码 我损失了几天的时间 实际上是大约 25 小时的工作 事实证明 在 AVR ATmega328 8 位微控制器 Arduino 上 用 C 递减单字节数组的元素不是原子操作 并且需要原子访问防
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • 【学习分享】全志平台TWI子系统源码分析(1)从设备树到寄存器

    全志平台TWI子系统源码分析 1 从设备树到寄存器 前言 一 名词解释 二 从设备树入手看源码 1 TWI设备树 2 TWI源码位置 3 TWI总线相关寄存器 总结 前言 这次开坑主要是想把全志平台TWI子系统在源
  • 在 Android 上将 USB 波特率从 9600 更改为 115200

    我有一个 Arduino 它以 115200 波特率串行发送数据 有一个应用程序以 9600 波特率从 Arduino 接收数据 代码是 Arduino USB serial converter setup Set control line
  • ARDUINO 常数有什么用?以前是22,现在是100

    我正在使用热电偶并下载了 MAX6675 库 我想知道以下几行中 ARDUINO 常量的值是做什么用的 if ARDUINO gt 100 lcd write byte 0 else lcd print 0 BYTE endif lcd p
  • 如何在 Arduino 上比较 __FlashStringHelper* 和 char*?

    我有一个将文本行输出到串行的板 我需要将这些文本行与我所知道的文本进行比较 本质上 我想做strcmp thestring F knownstring 但是似乎没有一个采用 FlashStringHelper 类型的 strcmp 版本 有
  • 如何将值从 Arduino 发送到 Python,然后使用该值

    我正在构建一个使用 Python 进行远程控制的机器人 通过简单的 GUI 通过互联网发送控制消息 我的部分代码 GUI 和控制系统 运行得很好 但我陷入了困境 我正在尝试使用视差平传感器来获取与物体的距离信息Arduino Mega ht
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • Python自动选择串口(适用于Arduino)

    目前 Python 程序必须知道设备 Arduino 位于哪个端口 然后 Python 才能与设备进行通信 Problem 每当设备拔出并重新插入时 其 COM 端口都会发生变化 因此必须再次向 Python 提供正确的串行端口 以便它找到
  • Arduino从SD卡读取最后一行

    我对 Arduino 业务还很陌生 如何从 SD 卡读取最后一行 通过以下代码片段 我可以读取第一行 n 之前的所有字符 现在我想添加一个 向后 声明 或其他内容 到目前为止我的代码 include
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并
  • Arduino 的 C++ 类文件中的字符串无法编译

    我正在用 C 为 Arduino 编写一个堆栈类sketch http www arduino cc en Tutorial Sketch 我相信它完全符合AVR 如果这就是它的名字 我记不清了 编译器 我都用过malloc and fre
  • Arduino:连接字符串时崩溃和错误

    我尝试将 AES 256 加密的输出连接到一个字符串 将此字符串与从 Android 手机发送的加密字符串进行比较 基本上 连接似乎有效 但在几次运行后会出现错误 不可读的字符 字符串变得更短而不是更长 或崩溃 它是可重现的 重启后在同一点
  • ESP8266 I2C从机不确认数据

    我有一个 TM4C123 处理器作为 I2C 主处理器 一个 ESP8266 作为从处理器 对于 ESP 我使用的是 Arduino IDE 并在 2 5 2 版安装了 ESP8266 支持 它应该支持 I2C 从模式 但是 我无法让它工作
  • 如何使用GSM模块SIM800和Arduino Uno发送短信?

    我正在尝试通过 SIM800 GSM 模块从 Arduino 发送短信 消息到达给定号码 但格式不正确 它显示 消息格式不支持 我在这里添加了我的代码 非常感谢您的快速回复 include
  • 在 Arduino 上将整数/小数转换为十六进制?

    如何将整数或小数变量转换为十六进制字符串 我可以做相反的事情 将十六进制转换为整数 但我无法找出其他方法 这是为了Serial print 数组中的十六进制值 查看 Arduino 字符串教程here http arduino cc en
  • 从 iBeacon 接收 BLE 信号到 Bluno(arduino with BLE)

    我想从 iBeacon 到 Bluno 接收 rssi 信号和 UUID Arduino 板具有 BLE 对此有一些疑问 有没有从 BLE 到 BLE 接收 UUID 和 rssi 的解决方案 两个BLE设备可以互相通信吗 我想找一些网站来
  • 如何使用基于HM-10蓝牙模块的BLE Shield?

    我是 arduino 项目的新手 我想请你帮忙 我从 http imall iteadstudio com development platform arduino shields im130704001 html http imall i

随机推荐

  • 金融时间序列分析:Python基于garch模型预测上证指数波动率、计算var和var穿透率、双尾检验

    目录 一 收益率波动效应的分析 1 1 收益率序列平稳性检验 1 2 建立AR p 模型 1 3 Ljung Box混成检验残差序列的相关性 判断是否有ARCH效应 1 4 建立ARCH模型 二 GARCH模型与波动率预测 2 1 建立GA
  • 后端Springboot框架搭建APi接口开发(第一章)

    本文章以IDEA为开发工具 使用SSM框架进行项目编写 第一节 设计并创建数据库 我们用一个简单的用户表进行操作演示 首先创建Data数据库 create database data 创建User数据表 表中包含用户邮箱 用户姓名 用户密码
  • C++ placement new使用

    placement new重载来原来的operator new 且placement new不能被即需重载 placement new是在原有的一块地址上继续创建一个对象 注意对象类型要一致 这样的操作的优势有两个 1 不用花时间在找合适的
  • Anchor DETR

    Anchor DETR Query Design for Transformer Based Detector 2021 9 1 DETR的object query是学习的 没有物理意义也不能解释每个query注意哪 作者认为学习出来的ob
  • 用十条命令在一分钟内检查Linux服务器性能[转]

    概述 通过执行以下命令 可以在1分钟内对系统资源使用情况有个大致的了解 uptime dmesg tail vmstat 1 mpstat P ALL 1 pidstat 1 iostat xz 1 free m sar n DEV 1 s
  • 关于C++中的随机数生成器

    关于C 中的随机数生成器 今天需要生成随机序列来测试代码 记录一下C 中随机数生成器的使用方法 C 中使用random库生成随机数 主要使用两个类 随机数引擎类 调用这个类会生成一个调用运算符 该运算符不接受任何参数 并返回一个随机的uns
  • 你知道两台Linux之间如何传输文件吗?

    你知道两台Linux之间如何传输文件吗 不同的Linux主机之间想要实现文件相互拷贝的方法有三种 第一种 ftp 也就是其中一台Linux安装ftpServer 这样可以另外一台使用ftp的client程序来进行文件的copy 第二种 采用
  • 转载:Java学习路线(完整详细版)超详细

    Java学习路线 第一阶段 Java基础 一 介绍 二 Java开发介绍 三 Java数组 四 Java面向对象 五 异常 六 集合 七 IO流 八 多线程 第二阶段 JavaWeb 一 介绍 二 HTML5 三 CSS3 四 JavaSc
  • 用Java写数据到POST请求

    用Java写数据到POST请求 HTTP POST请求最常见的用途是发送表单参数到服务器 除了发送表单数据 还可以使用POST的消息Body体发送各种数据 如纯文本 XML文档等 本文讲述如何用Java将数据写入POST请求的Body体 j
  • Filter的应用--权限过滤

    因为项目比较长 需要一步步进行实现 所以分解成一个一个需求 一 需求一 1 需求一 可以看某人的权限 同时 可以对这个用户进行权限的修改 2 程序实现 3 程序目录 4 User java 1 package com web 2 3 imp
  • 2023 Google 开发者大会,共创、赋能开发者

    前言 9月6日 2023 Google 开发者大会在上海拉开帷幕 在本次大会 Google 将技术灵感带到了中国 在为期两天的大会中 让我印象最为深刻的是 谷歌帮助中国开发者释放潜能 持续创新 落地创意灵感 不管你是 Mobile 开发者
  • 算子策略如何配,调试宝典帮你忙

    前面几期讲解了网络构建与训练类报错中各类错误的定位解决方法 相信大家应该对于此类问题有一些较为深入的认识了 在深度学习中 当数据集和参数量的规模越来越大 训练所需的时间和硬件资源会随之增加 最后会变成制约训练的瓶颈 分布式并行训练 可以降低
  • JSVC简介之快速入门

    1 JSVC简介 Apache基金会会common 类似于guava 项目下的项目 2 为什么要使用JSVC java应用增加一种启动方式 Java的缺点 只能用main方法启动 应用能使用1024以下端口 为啥tomcat可以指定端口 系
  • python中多线程编程中eoferror_面试官:请你讲讲Python多线程多进程编程

    Python多线程多进程文章目录并行和并发的概念 线程和进程的概念 来点八股文 PythonGIL锁相关以及历史 多线程编程详解 多进程编程详解 重点 一 什么是并行和并发 首先我们来先说一下一个简单的共同点 并行和并发都是完成多任务更加有
  • python QMessageBox设置标签和按钮居中、中文按钮

    from PyQt5 QtCore import Qt from PyQt5 QtWidgets import QApplication QMessageBox QLabel QDialogButtonBox from PyQt5 QtGu
  • IDEA报错 Cannot resolve method ‘xxx‘ in ‘xxx‘

    今天在用Logback做一个小项目的时候 出现了这个bug 一下子给我报了50个错误 如下图所示 后面经过10分钟左右的排查 在网上搜寻解决方式 网上的解决方案差不多有以下三种 1 重装Logback 2 清除IDE缓存 3 重新导包导库
  • 写入位置时发生访问冲突

    写入位置时发生访问冲突是因为待写入的内存空间不能被写入 可能的情况 给野指针赋值 通常在调试的时候 如果一个指针指向的地址为0x00000000那么表示这个指针不指向任何地址 参考文章 1 2
  • Lesson40 FIFO的配置与使用

    摄像头的FIFO配置使用 一 FIFO的基本工作原理讲解 二 Vivado中FIFO IP的添加和基本配置 三 IP文档资料的获取方法 四 编写测试脚本 1 复制 FIFO 的例化模板 2 新建存放FIFO仿真文件的文件夹 3 全部的仿真代
  • 用opencv简单的检测三角形、正方形、圆以及它们的颜色

    源码下载地址点击打开链接 原始图片 检测结果 检测后图片 下面为完整代码 include
  • 【雕爷学编程】Arduino动手做(65)---红外寻迹传感器

    37款传感器与执行器的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止这37种的 鉴于本人手头积累了一些传感器和执行器模块 依照实践出真知 一定要动手做 的理念 以学习和交流为目的 这里准备逐一动手尝试系列实验 不管