文档详情

红外线测距系统

hs****ma
实名认证
店铺
DOCX
168.51KB
约22页
文档ID:483678871
红外线测距系统_第1页
1/22

红外线测距系统试验方案专业: 电子1201组员:刘强(2012010527) 朱钰(2012010950)时间: 2014, 6, 9指导老师: 常志强摘要红外测距的探测距离较短,一般在几十厘米之内,本文介绍一种基于AT89C 52单片机设计的红外测距仪,可以测量距离,以及计算出被测物体的面积或体 积首先,在绪论中,介绍了红外线及红外传感器的分类和应用、AT89C52单片 机的应用与说明以及ADC0804芯片的简介其次,阐述了与红外测距的工作原理 基本结构,对红外测距的发射与接收器件也做了详细说明再次,介绍了红外测 距的硬件设计和软件设计在硬件设计中,介绍了红外测距实现的构想,给出红 外测距硬件电路原理图,并说明了红外发射驱动电路、红外接收驱动电路、键盘、 A/D转换电路、LCD显示电路工作原理及AT89C52单片机的管脚分配在软件设 计中,说明了整个程序流程及各程序设计函数最后,是对整个设计的结论,说 明了红外测距的可行性关键字:红外线 单片机ADC0804i目录一.红外测距的工作原理与基本结构 41.1红外线发射器件的结构与分类 41.2红外线测距的工作原理 51.3红外测距系统的基本结构 5二・红外测距的硬件设计 62.1红外测距的实现构想 62.2系统硬件结构电路图 62.3各硬件电路设计 7三. 红外测距的软件设计 93.1系统软件结构框图 93.2误差分析 19四. 实验心得 20参考文献 21附录 21红外测距的工作原理与基本结构1.1红外线发射器件的结构与分类红外线发射器件是最长用的为红外发光二极管,它与普通发光二极管的结 构原理以及制作工艺基本相同,是只有一个PN结的半导体器件,只是所有的材 料不同,制造红外发光二极管神化钾,神铝钾等,其中应用最多的是神化钾。

红外发光二极管一般采用环氧树脂,玻璃,塑料等封装,除白色透明材料封装外, 还可见到用蓝色透明材料封装的,红外发光二极管按发光功率的大小,可分为 小功率,中功率,大功率三种另外,红外发光二极管除顶面发光型外,还有侧 面发光型小功率管一般采用全塑封装,也有部分是采用陶瓷底座,顶端用玻璃 或环氧树脂透镜封装的,中大功率管一般采用带螺纹金属底座,以便安装散热片 随着发光功率得提高,相应体积的管子也增大1.1.1红外发光二极管测试方法用万用表R X 1K档测量,正向电阻在30KQ左右,反向电阻在200KQ以上 的管子是好的反向电阻越大,漏电流越小,质量越好若反向电阻只有几十K 说明管子质量不好,但可使用若管子的正向的反向电阻都为无穷大或为零, 说明管子是废品,不能使用;还可以先把红外发光二极管接到电路中,接通电源 后再用的摄像头对准红外发光管可以看到管子发出淡粉色的光,则红外发 光二极管好使1.1.2红外光敏二极管原理与分类我们知道半导体具有光电效应,即用光照半导体,可使半导体的电阻率发生 变化利用半导体的光电效应可以制成光电二极管,不同的半导体材料对不同波 长的入射光的响应是不同的光敏二极管有顶面受光和侧面受光两种形式。

它也是采用塑料、玻璃、环氧树脂 等材料封装1.1.3光敏二极管的简单测试一般用万用表R X 1K档,光敏二极管的正向电阻较普通二极管大些,约十几 KQ左右,反向电阻随光照变化无光照时(用物体将管子挡住,不让光照射), 反向电阻接近无穷大,说明漏电流大管子的反向电阻至少应在500KQ以上, 有光照射时(在较强日光或灯光下),反向电阻越小越好,一般应在20KQ以下若有光照射时反向电阻为穷大或为零,说明管子是坏的光敏二极管的引线较长 的一根是正极1.2红外线测距的工作原理对某一特定物体距离的测量是光学仪器领域的热门课题之一红外传感器的 测距基本原理为红外发射电路的红外发光管发出红外光,由红外接收电路的光敏 接收管接收发射光根据发射光的强弱可以判断所测的距离,由于接收管接收的 光强是随与发光管的距离变化而变化的,因而,距离近则接收光强,距离远则接 收光弱因为红外线是介于可见光和微波之间的一种电磁波,因此,它不仅具有可见 光直线传播、反射、折射等特性,还具有微波的某些特性,如较强的穿透能力和 能贯穿某些不透明物质等红外传感器包括红外发射器件和红外接收器件自然 界的所有物体只要温度高于绝对零度都会辐射红外线,因而,红外传感器须具有 更强的发射和接收能力。

1.3红外测距系统的基本结构该系统主要由红外发射电路、红外接收电路、A/D转换电路,AT89C52芯片、 键盘接口电路及LCD显示电路等组成其组成框图如图2所示:图2其工作原理为:单片机上电发射红外信号,由键盘控制红外接收电路以及A/D转换电路的工作,将转换结果通过单片机处理后送到LCD显示屏,显示被测距离如有需要,也可通过键盘控制测量被测物体的长于宽,从而计算出被测物体的 面积或体积,最后将结果显示到LCD显示屏上红外测距的硬件设计2.1红外测距的实现构想为了实现红外测距,在硬件设计中,我们可以使红外发射驱动电路驱动发射 头的红外二极管发出红外光,当红外光由红外接收驱动电路驱动红外接收头的光 敏二极管接收到,并通过电压转换,将其转换为可测量的电压值,因为红外光的 强度会随距离的缩小而增强,红外接收电路转化的电压值会随之增强又因为电 压与距离成比例,通过对转换的电压的计算,我们可以知道红外发射模块与接收 模块的距离我们采用LCD显示屏动态显示变化中的距离,LCD显示器与AT89C52芯片的P0 口与P2.0-2.2接口相接,在红外接收模块运动过程,AT89C52芯片内部会将电 压模拟量通过A/D转换将其转化为可显示的数字量,然后通过LCD显示器显示出。

键盘与AT89C52芯片的P3.4、P3.5、P3.6、P3.7引脚相接,通过键盘接口可以 实现距离的测量与面积的计算2.2系统硬件结构电路图整个红外测距系统由AT89C52芯片、红外发射驱动电路、红外接收驱动电路、2.3各硬件电路设计2.3.1红外发射电路(1)电路组成:红外发射驱动电路是由一个简单的共射放大电路和一个作为开关 的三极管电路组成的模块电路原理如图4所示:(2)电路工作原理:在共射放大电路中,红外发光二极管TLN205接于共射放大电路的集电极,与基极和发射极相接的二极管起温度补偿作用控制管脚Vin 与At89C52芯片管脚P3.3相接当控制管脚Vin有信号输入时,控制电路的三极 管导通,同时整个电路导通,红外发光二极管TLN205发射出红外光2.3.2红外接收电路(1)电路组成:红外接收驱动电路是由红外接收管TPS708和两个电压串联负反馈模拟运算放大电路组成的模块红外接收驱动电路设计为两极放大是因为在许多情况下,输入信号是很微弱的, 要把这样微弱的信号放大到足以带动负载,仅用一级电路放大定是做不到的,必 须经多级放大,以满足放大倍数和其他性能方面的要求并且,根据信号源和负 载性质的不同,对各级电路有不同要求,输入级一般要求有尽可能高的输入电阻 和较低的静态工作电流。

电路图如图5所示:(2)电路工作原理:红外发光管TLN205发射出的红外光,由红外接收管TPS708接收,此时TPS708 会产生一个与光强相对应的电流电流经由LM358两级放大后,在输出端可以得 到一个约为0〜3.52V的模拟电压,作ADC0804的VIN 口模拟输入量,进行A/ D 转换,重复等待与检查转换完成标志值是否已为零,最后将转换结果在LCD上显 示出来2.3.3 A/D转换电路A/D转换电路如图6所示,由于PROTUES仿真软件不能仿真红外线的发射与 接收,故在A/D0804的输入端加一滑变电阻器,来代替红外接收电路产生的0〜 3.52V模拟电压,经过A/D转换后送到单片机的P1 口,从而实现电路的仿真2.3.4 LCD显示电路LCD与单片机的接口电路如图7所示,单片机通过P0 口向LCD输送数据, 显示测得的距离值得注意的是,P0 口要接上拉电阻来保证对LCD的成功驱动2.3.5键盘接口电路该系统由4个按键控制对距离的测量,如图8所示,按键分别接单片机的P 3.4-P3.7 口,低电平有效,分别实现长、宽、高的测量以及面积或体积的计算三.红外测距的软件设计3.1系统软件结构在整个系统运行过程中。

当红外系统被启动后,首先,对AT89C52单片机进 行初始化然后,当AT89C52单片机接收到红外接收电路传输的电压信号后,经 A/D转换程序,将片外的模拟信号转换为单片机可识别的数字信号,并经电压一 距离转换子程序,将变化的电压转换为距离最后,在动态扫描LCD显示器上显 示出来主程序流程图如图9所示LrOffiWiK图9单片机程序如下:#include #include #define uchar unsigned char#define uint unsigned int #define ulong unsigned longsbit RS=P2"0; //LCD 命令/数据端sbit RW=P2"1; //LCD 读/写端sbit LCDE=P2"2; //LCD 使能端sbit MCP_CS=P2"3; //MCP3001 与 AT89S52 的管脚接线定义sbit MCP_DO=P2"4;sbit MCP_CLK=P2"5;uint measure;uchar flag; //Busy 标志uchar code dis□={"Measure Start"}; //显示uchar code dis1[]{"Distance:"}; //显示表头uchar code dis2[] = {〃0123456789.cm〃}; //显示代码uchar code dis3□={"Out Measure!"}; //显示uchar dis_buf[6]; //显示缓冲区void L_delay(void); //短延时void delay_ms(uint n); //延时函数uint read_MCP(void); //读 MCP3001void init_1602(void); //1602 初始化函数void busy(void); //LCD忙标志判断函数void dat_wrt(uchar dat); //写数据子函数void cmd_wrt(uchar cmd); //写命令子函数uint distance(void); //距离计算函数void lcd_start(uchar start); //设定显示位置函数void LCD_Clear(void); //LCD 清屏函数uchar dat_adj(uint dat1); //显示数据调整函数void print(uchar *str); //字符串显示函数void disp(uint dat); //显示子函数uint average(void); //算术平均滤波程序**************************** ************************main(){init_1602();print(dis); //显示测量开始delay_ms(1000);while(1)(measure二distance。

disp(measure); //显示高度delay_ms(100);}}/***************。

下载提示
相似文档
正为您匹配相似的精品文档