基于单片机的红外测距系统设计

合集下载

基于51单片机的红外测仪

基于51单片机的红外测仪

基于51单片机的红外测仪【摘要】本系统是基于51单片机的一款测量精度为0.1毫米红外测距仪。

本系统采用能量测距原理,通过红外接收模块将采集的光信号转化成电信号,再经信号放大,A/D采样将信号转化为数字信号输入单片机中,通过编写相应的程序实现自动测量功能,通过显示电路显示出结果。

并在超出系统测试范围时进行警报。

【关键词】红外测距当前主流测距方法主要有三种:传统测量、激光测量、红外测量、超声波测量。

传统测量方法需要话费大量人力时间,且精度和范围都无法达到高标准要求。

激光测距虽在测量范围和时间上有一定优势,但对操所人员的技能要求较高容易出现安全事故,且制做的难度较大,成本较高。

超声波测距误差较大环境温度、湿度、海拔高度等都可能对其造成影响。

红外线是介于可见光和微波之间的一种电磁波,因此,它不仅具有可见光直线传播、反射、折射等特性,还具有微波的某些特性,如较强的穿透能力和能贯穿某些不透明物质等。

故在未来的发展中红外测距技术必将拥有广阔的应用前景。

本文提供一种用51单片机解决短距高精度红外测距的方法。

此系统精度高电路简单,用51c编程易懂且方便移植。

降低了调试难度且增加了初学者的可操作性。

1 方案论证与比较目前在红外测距领域中,主要有应用一下三种测距法:时间差测距法、放射能测距法和相位测距法。

这三测距法原理如下1.1 时间差测距法原理红外线发射器发射出有频率的红外线,经障碍物反射,红外线接收器接收到反射波信号,并将其转变为电信号。

测出发射波与接收到反射波的时间差,即可求出距离s,但是经过计算这个方法并不合理,红外线的传播速度为310 m/s,单片机要想反应的过来的话,处理速度至少在GHz以上,很显然是不可能的,所以是无法根据时间测出距离的。

1.2 反射能量法原理反射能量法:仪器发射一束光(通常是近红外光)照射到被障碍物表面,同时红外接收管接收障碍物的反射光能量,传播距离越远,光强就越弱,所以根据接收到的反射光能量来判断被测物体的距离。

基于单片机红外线测距的51程序

基于单片机红外线测距的51程序

#include <reg51.h>#include <intrins.h>#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);}}/**************************延时函数**************************/void delay_ms(uint n){uint j;while(n--){for(j=0;j<125;j++);}}/***************************短延时****************************/void L_delay(void){uchar i;for(i=0;i<5;i++)_nop_();}/************************读MCP3001函数*************************/uint read_MCP(void){uchar i;uint temp=0;MCP_CS=1;L_delay();MCP_CS=0; //CS置低,开始采样数据for(i=0;i<13;i++) //读转换的10位数据{MCP_CLK=0;L_delay();MCP_CLK=1;temp<<=1;if(MCP_DO==1)temp|=0x01;}MCP_CS=1;temp&=0x03ff; //获取有效转换值return(temp);}/************************LCD忙标志判断函数*******************/void busy(void){flag=0x80; //赋初值高位为1 禁止while (flag&0x80) //读写操作使能位禁止时等待继续检测{P0=0xff;RS=0; //指向地址计数器RW=1; //读LCDE=1; //信号下降沿有效flag=P0; //读状态位高位为状态LCDE=0;}}/************************写数据子函数************************/void dat_wrt(uchar dat){busy(); //检测读写操作使能吗LCDE=0;RS=1; //指向数据寄存器RW=0; //写P0=dat; //写数据LCDE=1; //高电平有效LCDE=0;}/*************************写命令子函数************************/ void cmd_wrt(uchar cmd){LCDE=0;busy(); //检测读写操作使能吗P0=cmd; //命令RS=0; //指向命令计数器RW=0; //写LCDE=1; //高电平有效LCDE=0;}/***********************距离计算函数***************************/ uint distance(void){uint temp1;temp1=average();if((temp1>160)&(temp1<960)) //在正常测量范围?{temp1=13569/(temp1+7)-4; //转换测量数据}else{temp1=0x00ff; //超出测量范围,返回错误标志}return(temp1);}/************************算术平均滤波程序**********************/uint average(void){uchar i;uint av_dat;ulong ave=0;for(i=0;i<10;i++) //连续读取10个数据值{ave+=read_MCP(); //读转换数据L_delay();}av_dat=(uint)(ave/10); //求平均值return(av_dat);}/*************************1602初始化函数************************/void init_1602(void){cmd_wrt(0x01); //清屏cmd_wrt(0x0c); //开显示,不显示光标,不闪烁cmd_wrt(0x06); //完成一个字符码传送后,光标左移,显示不发生移位cmd_wrt(0x38); //16×2显示,5×7点阵,8位数据接口}/************************设定显示位置函数************************/void lcd_start(uchar start){cmd_wrt(start|0x80);}/************************LCD清屏函数****************************/void LCD_Clear(void){cmd_wrt(0x01); //写入清屏指令delay_ms(1);}/************************显示数据调整函数************************/uchar dat_adj(uint dat1){uchar i;dis_buf[0]=(uchar)(dat1/10); //十位dis_buf[1]=(uchar)(dat1%10); //个位dis_buf[2]=11;dis_buf[3]=12;if(dis_buf[0]==0)i=1;return(i);}/**************************字符串显示函数**************************/ void print(uchar *str){while(*str!='\0') //直到字符串结束{dat_wrt(*str);str++; //指向下一个字符}}/***************************显示子函数****************************/ void disp(uint dat){uchar temp,j;if(dat!=0x00ff){temp=dat_adj(dat);LCD_Clear();lcd_start(0x00);print(dis1); //显示文字lcd_start(0x45+temp); //确定显示起始位置for(j=temp;j<4;j++) //写显示数据dat_wrt(dis2[dis_buf[j]]);}else{LCD_Clear();lcd_start(0x42+temp); //确定显示起始位置print(dis3);}}。

基于单片机的测距系统设计

基于单片机的测距系统设计

第1章课题及功能分析本系统是基于单片机的测距系统设计。

在本系统的设计当中,主要是应用单片机AT89C52控制超声波发射与接收,运用压电式超声波技术来实现基本测距的功能。

1.1 题目来源本次毕业设计的题目是基于单片机的测距系统设计。

在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。

测距电路在人们的日常生活及工作中都有广泛的应用,可谓是源于生活,贴近生活,是和生活密不可分的。

而在本测距系统的设计中主要应用超声波技术来实现测距的功能,我们知道,超声波是指频率大于20kHz的在弹性介质中产生的机械振荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距,如测距仪和物位测量仪等都可以通过超声波来实现。

超声波测距是一种非接触式的检测方式。

与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。

对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。

因此在液位测量、机械手控制、车辆自动导航、物体识别等方面有广泛应用。

特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法高;而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。

由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,所以将此技术应用到生活中可以节省很多人力、物力等资源,而且利用超声波检测距离,设计比较方便,计算处理也较简单,在测量精度方面能达到日常使用的要求,大大提高了产品的性能及质量。

此外超声波测量在实时、精度、价格也能得到很好的折衷。

1.2 主要任务本次毕业设计的任务比较明确,主要是测量超声波到反射物的距离,此设计中最关键的是计算从超声波发出到途中遇到障碍物反射回来的往返时间,然后利用有关参数根据距离计算公式算出所测距离,要求测距的范围是0.5到10米,所测到距离要能够实时显示,如果距离小于0.5米,将采用声光报警来提示用户。

基于单片机的红外遥控系统设计毕业设计

基于单片机的红外遥控系统设计毕业设计

本科生毕业设计(论文)论文题目:基于单片机的红外遥控系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:本设计是基于单片机的红外遥控系统设计,设计内容包括了红外接收,红外解码和步进电机控制三大块。

如今红外遥控技术已经得到了广泛的应用;其利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强。

我们日常生活中的电视机,洗衣机,空调,航天飞机,工业现场设备等都运用了红外遥控的技术。

本设计中发射端采用专用的发射芯片来实现红外遥控码的发射,且遥控码格式是NEC标准。

接收端采用市面上流行的1838一体化红外接收头,接收到的红外信号经由1838接收头完成光/电转化和解调的工作,然后把33位的完整码发送到解码芯片中去完成解码工作。

本设计中的主芯片是STC89C52单片机,主芯片和解码芯片之间进行串行通讯。

系统启动后,解码芯片将解码后得到的8位数据码串行发送到主芯片中,然后通过主芯片来控制步进电机的正转,反转,加速,减速。

本设计中的被控对象是步进电机,步进电机最适合做数字控制。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

基于单片机的红外无线测距仪

基于单片机的红外无线测距仪

• 183•因为红外测距是一种非接触检测技术,它受到影响的因素少,相比于其他的测距仪有较大的优势;更能应对恶劣环境,功能也更加的可靠。

因此可广泛应用于各种工业设计中。

1.概述随着科学技术的快速发展,研究出了多种新型测距仪器。

系统进行近距离高精度的距离测量,因此采用了红外无线测距模块最为测距传感器。

此外系统采用了单片机作为中央处理器,LCD12864作为显示距离的屏幕。

同时拥有距离超过预设值报警功能。

系统在保证安全可靠的前提下可以进行高精度近距离的测距功能。

基于单片机的红外无线测距仪具有相对与其他测距仪精度更高但距离也更近。

因此可以用于近距离高精度的测距需求当中。

与此同时红外测距仪的响应速度极快,相对于其他类型的传感器,更加迅速的反应也使得红外测距传感器可以应用于相对复杂的场景。

2.系统方案框图设计本设计由单片机红外测距模块是由12864液晶显示电路、按键电路、报警电路和电源电路组成。

(1)通过红外测距模块检测距离(测距范围10-80cm),通过PCF8591将红外模块的模拟数值转化为数字数值,然后传给单片机处理。

(2)LCD12864液晶第一行实时显示距离,第二行显示设置的阈值。

(3)阈值可以通过2个按键调节。

(4)超过阈值后,蜂鸣器鸣叫报警。

3.系统具体模块方案确定本设计采用了单片机、显示模块、测距模块以及按键电路和报警电路几部分组成,来实现系统的功能。

3.1 单片机芯片的选择采用STC89C51单片机来作为系统的核心处理器,相比于其他的单片机51单片机的性能更加可靠,价格低廉,编程相对简单。

而且可以满足系统的设计需求。

通过对系统的相关程序的编写,调试最后再烧进单片机内来实现功能。

3.2 声音报警方案的选择系统通过蜂鸣器来实现报警。

蜂鸣器接入系统电路中,当距离超过设定的报警值时,蜂鸣器通过蜂鸣来发出警报。

通过报警可以提醒用户距离超过先前的设定范围。

这样不进了以降低成本还可以达到系统的需求。

3.3 显示方案的选择基于单片机的红外无线测距仪采用了LCD12864来进行显示距离,以及设置的报警值。

基于STM32的红外测距系统设计

基于STM32的红外测距系统设计

基于STM32的红外测距系统设计摘要随着现代科学技术的发展,出现了很多新的领域,为了实现对物体近距离、高精度的无线测量,本论文对红外测距领域进行了研究。

本论文采用单片机作为处理器,编写A/D转换程序及LCD显示程序,红外传感器作为工作模块,完成一套高精度显示、实时测量的红外测距系统。

本系统结构简单、体积小、测量精度高、成本低、方便使用.本论文所介绍的是一种基于STM32单片机并运用日本夏普公司型号为GP2Y0A21的红外传感器所设计的红外测距系统。

首先,介绍红外线及红外传感器的分类及应用、STM32单片机的简介与功能;其次,阐述红外测距系统工作原理及基本结构并对单片机、红外传感器、LCD液晶显示屏的工作电路做了介绍;再次,对系统进行了整体设计构想,先后对系统硬件及软件进行设计,并对整个系统的功能进行了调试。

最后对整个设计进行总结,说明红外测距系统实现的可行性。

关键词红外测距;单片机;A/D转换;LCDSTM32—based infrared ranging system designAbstractWith the development of modern science and technology, there are many new areas,in order to achieve the object close range, high—precision wireless measurement,this topic of infrared ranging is studied. This topic using SCM as the processor, to write A/D converter and LCD display program, an infrared sensor as a working module,complete set of precision display, real—time measurement of infrared ranging system. This system has the advantages of simple structure,small size and high accuracy, low cost and convenient use.This paper introduced is based STM32 microcontroller and use of Japan’s Sharp Corporation model GP2Y0A21 infrared sensor designed infrared ranging system。

基于单片机的机器人用红外测距仪系统设计


# 13#
1. 3 声光报警电路 1. 3. 1 蜂鸣器报警电路
声音报警是非常有效的报警方式. 本电路采用 的是最为简单实用的蜂鸣器实现报警. 蜂鸣器报警 硬件实现简单, 工作 十分可靠, 编程也非常容 易实 现. 当接收到控制器发过来的报警信号 ( P 2. 2 口输 出变为低电平并维持 1 s) 时, 蜂鸣器导通发声. 1. 3. 2 指示灯报警电路
第 37卷第 4期 2010年 4月




Applied Sc ience and T echno logy
do :i 10. 3969 / .j issn. 1009- 671X. 2010. 04. 003
V o.l 37, l . 4 A pr. 2010
基于单片机的机器人用红外测距仪系统设计
唐秦崴, 瞿哲奕, 朱熀秋
( 江苏大学 电气信息工程学院, 江苏 镇江 212013)
摘 要: 针对机器人智能倒车防护的问题, 提出 了以单片机 AT 89S52为控制 核心, 采 用红外测 距技术设 计机器
人用红外测距仪系统, 由单片机处理环境信息, 红外测距仪发出停 车提示或 直接执 行停车, 不需 要驾驶 员亲自
[ 3]曾德怀, 谢存禧, 张 铁, 等. 行走 机器 人的 超声 波测 距 系统的研究 [ J]. 机械 科学 与技术, 2004, 23( 5) : 61361 6.
[ 4]孙牵宇, 童 峰, 许肖梅. 一种大 角度范 围的高 精度超 声 波测 距 处 理 方 法 [ J] . 厦 门 大 学 学 报: 自 然 科 学 版, 2006, 45( 4): 513-517.
机器人智能倒车防护有利于机器人安全可靠运 行. 目前投入应用的机器人智能倒车防护技术主要 有 2种: 一种是车载雷达 (超声波技术 ) 测距倒车防 护 [ 1- 4] ; 一种是摄像头视觉防护 [ 5- 6] . 车载雷达测距 十分精确, 智能化程度较高, 但造价较为昂贵; 摄像 头视觉防护虽然可以让驾驶员实时获取身后的环境 信息, 但对距离的测量则仍需要外加其他设备的辅 助, 驾驶员仍然需要亲自通过肉眼判断身后的情况, 智能化有所不足. 基于红外管以及单片机技术的机 器人用测距仪采用单片机独立处理环境信息并发出

stm32红外测距课程设计

stm32红外测距课程设计一、课程目标知识目标:1. 理解STM32的硬件结构和基本编程方法。

2. 掌握红外测距的原理及其在STM32上的应用。

3. 学习使用传感器进行距离检测,并能够通过STM32处理传感器数据。

技能目标:1. 能够正确使用万用表、示波器等工具进行电路调试。

2. 培养学生动手实践能力,独立完成STM32与红外传感器的接线与程序编写。

3. 培养学生分析问题、解决问题的能力,对红外测距数据进行处理和应用。

情感态度价值观目标:1. 培养学生热爱科学,对电子技术和编程产生浓厚兴趣。

2. 培养学生团队协作意识,学会分享、交流学习经验。

3. 培养学生创新思维,敢于尝试新方法,勇于面对挑战。

课程性质:本课程为实践性课程,结合理论知识与动手操作,让学生在实践中掌握STM32红外测距技术。

学生特点:本课程针对高中年级学生,具备一定的电子基础和编程能力,对新鲜事物充满好奇。

教学要求:以学生为主体,注重理论与实践相结合,关注学生个体差异,提高学生的动手实践能力和创新能力。

通过本课程学习,使学生在知识、技能和情感态度价值观方面得到全面提升。

二、教学内容1. 理论知识:- STM32微控制器的基本架构与编程环境介绍。

- 红外测距原理,包括红外发射、接收及信号处理方法。

- 数字信号处理基础,包括滤波算法和距离计算方法。

2. 实践操作:- 使用红外传感器模块进行距离测量。

- STM32与红外传感器的硬件连接与接口配置。

- 编写程序读取传感器数据,并实现距离显示和报警功能。

3. 教学大纲:- 第一阶段:STM32基础知识和编程环境熟悉(1课时)。

- 第二阶段:红外测距原理学习及传感器特性分析(1课时)。

- 第三阶段:实践操作,包括硬件接线、程序编写及调试(2课时)。

- 第四阶段:成果展示与问题讨论,学生相互评价,教师总结(1课时)。

4. 教材关联:- 《单片机原理与应用》中关于STM32的章节。

- 《传感器技术与应用》中关于红外传感器的章节。

红外测距的基本结构及系统设计 红外测距的常用方法和原理是什么

红外测距的基本结构及系统设计红外测距的常用方法和原理是什么随着科学技术的不断发展,在测距领域也先后出现了激光测距、(微波)雷达测距、超声波测距及(红外)线测距等方式。

作为一种应用广泛、测量精度高的测量方式,红外测距利用红外线传播时不扩散、折射率小的特性,根据红外线从发射模块发出到被物体反射回来被接受模块接受所需要的时间,采用相应的测距公式来实现对物体距离的测量。

红外测距最早出现于上世纪60年代,是一种以红外线作为传输介质的测量方法。

红外测距的研究有着非比寻常的意义,其本身具有其他测距方式没有的特点,技术难度相对不大,系统构成成本较低、性能良好、使用方便、简单,对各行各业均有着不可或缺的贡献,因而其市场需求量更大,发展空间更广。

红外测距仪是指用调制的红外光进行精密的距离测量,测量范围一般为1-5公里。

红外线测距(传感器)有它的几个特点,远距离测量,在无反光板和反射率低的情况下能测量较远的距离;有同步输入端,可多个传感器同步测量;测量范围广,响应时间短;外形设计紧凑,易于安装,便于操作;所以它的应用价值比较高。

红外测距的常用方法和原理时间差法测距原理时间差法测距原理是将红外测距传感器的红外发射端发送(信号)与接收端接受信号的时间差t写入(单片机)中,通过光传播距离公式来计算出传播距离L。

式中c是光的传播速度为。

反射能量法测距原理反射能量法是由发射(控制电路)控制发光元件发出信号(通常为红外线)射向目标物体,经物体反射后传回系统的接收端,通过光电转换器接收的光能量大小进而计算出目标物体的距离L。

式中P为接收端接收到的能量,K为常数,其大小由发射系统输出功率、转换效率决定,d为被测目标漫反射率。

相位法测距原理相位测距法是利用无线电波段的频率,对红外激光束进行幅度调制并测定调制光往返一次所产生的相位延迟,再根据调制光的波长,换算出此相位延迟所代表的距离D,此方式测量精度非常之高,相对误差可以保持在百分之一以内,但要求被测目标必须能主动发出无线电波产生相应的相位值。

基于单片机的红外测距系统设计 PPT


实物图
武汉大学珞珈学院本科毕业论文答辩
各位老师的支持!
谢谢
三、本课题设计
• 4.4 AT89C52单片机最小系统 • 对接收到数据按照输入程序进行计算并将得出结 果交给显示模块显示出来 • AT89C52单片机属于AT89C51单片机的增强型 • 单片机和时钟电路,复位电路构成最小的单片机 系统
三、本课题设计
• 时钟电路 • 时钟电路为单片机提供运行时钟,如果运行时钟 为0,单片机就不工作,时钟电路控制着单片机的 工作步骤。 • 复位电路 • 按钮按下,使单片机复位。
基于单片机的红外测距系统设计
姓 名 : 钱源 指导教师: 崔黎 专 业 : 通信工程 学校:武汉大
一、课题研究的背景和意义 二、本课题研究的目的 三、本课题设计 四、总结
一、课题研究的背景和意义
• 红外测距一般具有精确度和分辨率高、抗干扰能 力强、体积小、重量轻等优点,因而应用领域广、 行业需求众多,市场需求空间大。
二、本课题研究的目的
• 我们所做的课题便是做一个简易的,精确的,近 距离的距离检测仪,系统的认识单片机,了解AD 转换和红外收发模块,尽可能地提高精确度,减 弱环境影响,增强红外线测距的能力,使红外测 距的更广泛的在生活中应用。
三、本课题设计
• 反射能量法:此方案是用 红外线在空气中传播会发 生规律的能量衰减的原理, 红外模块发射并接收信号, 将接收的信号强度经过AD 转换,在单片机中根据电 压记录关系函数转换为距 离,并在LED中显示出来。
图3.1 反射能量法原理图
三、本课题设计
• 红外测距系统的基 本结构 • 该系统主要由红外 测距传感器、A/D转 换电路,AT89C52芯 片、复位电路,时 钟电路和LCD显示电 路等组成。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档