首页 > 其他 > 详细

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

时间:2020-06-07 21:26:04      阅读:238      评论:0      收藏:0      [点我收藏+]

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)

技术分享图片

 

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

原文:https://www.cnblogs.com/eagler8/p/13061732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!