障碍物检测实验

单片机实验

28人已加入

描述

障碍物检测实验

一、实验目的
“旋风”小车在运动过程中要成功避开障碍物必须在一定距离外就探测到障碍物。在
小车上探测障碍物采用反射式红外传感器。红外传感器在单片机系统中广泛采用,掌握它
的使用方法对以后的学习、开发有很大帮助。本实验要求利用红外传感器实现对障碍物的
检测 。通过实验要掌握以下知识点:
1.掌握红外传感器的使用方法和电路原理。
2.复习端口状态判断。
3.掌握利用红外传感器编程检测障碍物的方法。
二、实验预备知识
1.I/O 口作为输入口的处理方法。
MSC-51 系列单片机的所有I/O 口都能独立地定义为输入或输出。由于所有I/O 口都具
有输出锁存功能,因此I/O 口作为输入时,必须先向锁存器相应位写入“1”,该位才能作
为输入。MSC-51 系列单片机的所有I/O 口锁存器在复位时均置“1”,如果某一个I/O 在程
序中被置“0”,则必须将其置“1”后才能成为一个输入端口。例如要把P1.0 作为输入端,
则必须先执行SETB P1.0 使其置“1”后才能作为输入端。
2.红外发射模块电路
实验用的反射式红外传感器发射电路如下:

检测

图3-4 发射模块电路图
电路中U1A 和C2、R2 组成振荡器,振荡频率约30KHz。U1F 用于驱动,他能使发光
二极D1 管发出一定强度的红外光。U1D 用于对D1 是否发光进行控制,当U1D 的输入端
为高电平时,其输出端为低电平,D1 可以导通,相反则D1 不能导通,因此只要控制U1D输入端的状态就可以控制D1 是否发光。
R1 是限流电阻,改变其大小就可以调整D1 发射的红外线的强度,就可以改变红外传
感器的作用距离。
3.红外接收模块电路
红外传感器接收电路如下图所示:

检测

图3-5 红外接收模块电路图
U1 是专用红外接收芯片,其3 脚是输出端,当收到38KHz 的红外信号后,其3 脚输
出低电平,没接收到红外信号时输出为高电平。
4.红外传感器的连接和安装
一个完整的红外传感器模块包括发射部分和接收部分,二者应同时使用。当传感器前
方有障碍物时,发射模块发射的红外信号就会反射回来,接收模块接收到反射的红外信号
后输出端OUT 为低电平,没有接收到红外信号时OUT 端子为高电平。
传感器通过4 芯插件与主电路板上的传感器接口(J2~J9)连接,并通过螺钉固定在主
电路板的安装孔上。红外传感器发射模块和接收模块的插接件的引脚功能如下:
表3-2 红外传感器引脚功能
引脚序号 发射模块 接收模块
1 电源正极VCC(5V) 电源正极VCC(5V)
2 发射控制端CTL 信号输出OUT
3 空脚 空脚
4 电源负极GND 电源负极GND
CTL:发射模块控制端,1 发射,0 停止发射。
OUT:接收模块信号输出端,接收到信号输出0,没有接收到信号输出1
在连接时,使用不同的接口会导致连接关系发生改变,例如把左面传感器的发射模块
连接到主电路板的J9,则发射控制端为P1.3,连接到J2 则发射控制端为P3.2。接收模块
的连接也是如此,在编程时要注意这一问题。
红外发射和接收模块应该同向安装,都朝向要检测的方向。安装时要注意调整安装位
置,既要确保反射回来的红外线能被接收到。

5.障碍检测方法
在实际运用中,为了使红外传感器工作可靠,还必须对发射模块发射的信号进行调制,
即:发射模块发射一定数量的连续脉冲串,接收端记录接收到的脉冲数量,然后根据所记
录的数据判断是否有障碍物。例如:发射模块一次连续发射10 个脉冲,接收模块接收到6
个脉冲以上就可以确信前面有障碍物。
障碍检测流程和实例程序如下:

检测

图3-6 红外传感器检测障碍程序流程
程序示例如下:

ORG 0000H
MAIN:CLR P3.2 ;关闭发射模块
MOV R0,#10 ;设定为发送10 个脉冲
MOV R1,#00 ;接收寄存器清零
LOOP0: SETB P3.2 ;发射模块起动
LCALL DEL160US ;延时160US
JB P1.3,LOOP1 ;判断是否有信号,当为0 电平时有反射。
INC R1 ;脉冲数目加1
LOOP1:CLR P3.2 ;发射停止
LCALL DEL160US
DJNZ R0,LOOP0 ;判断是否10 个脉冲发送结束
CJNE R1,#06,LOOP2 ;判断收到的脉冲个数是否大于6
LOOP2:JC LOOP3
SETB P1.0 ;Dl 亮表示有障碍物
SJMP MAIN
LOOP3:CLR P1.0 ;接收到的脉冲数小于6 个,没有障碍物,D1 灭
SJMP MAIN
DEL160US:…… ;延时160us 的延时子程序
END
思考:程序中的JC LOOP3 语句的作用使什么?
三、实验内容
1.正确安装并调试红外传感器的发射和接收模块,要求把发射模块接J9,接收模块
接J7。
2.根据图3-6 和示例程序编写障碍检测程序,当检测到有障碍时发光二极管D8 亮,
否则熄灭。
四、扩展内容
1.修改程序,在检测到障碍后使发光二极管D8 闪烁,没有障碍时熄灭。
2.示例程序中把接收到的脉冲数大于6 作为判断是否有障碍的依据,修改该数据(变
大或变小)看对正确检测障碍物有何影响?反复测试,找出最佳数据。
3.把实验程序修改为子程序,用调用的方式实现同样的功能。
五、思考题
1.为什么发射模块在起动和停止转换之间要插入160uS 的延时?
2.障碍物检测的作用距离受那些因素限制?要使作用距离更远,应如何调节?

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • 检测

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分