红外测距模块 51单片机_智能激光测距「建议收藏」

红外测距模块 51单片机_智能激光测距「建议收藏」编者按:本文转载于酷耍(http:/kooshua.com)一、设计目的超声波测距和激光测距是现在比较常见的两种测距方式。两种方式相对比而言,激光测距的优点是以极小的一束激光发射出去再返回,精度为毫米级,几乎不受干扰,弥补了超声波测距易受环境干扰、误差大的缺陷。因此,采用激光测距便更能完美的实现想要的结果。本设计不仅能对距离完成精确快速的测量,还可以对测量数据进行语音播报、编号存储,使数据记录更加…

大家好,又见面了,我是你们的朋友全栈君。

编者按:本文转载于酷耍(http:/kooshua.com)

一、设计目的

超声波测距和激光测距是现在比较常见的两种测距方式。两种方式相对比而言,激光测距的优点是以极小的一束激光发射出去再返回,精度为毫米级,几乎不受干扰,弥补了超声波测距易受环境干扰、误差大的缺陷。因此,采用激光测距便更能完美的实现想要的结果。本设计不仅能对距离完成精确快速的测量,还可以对测量数据进行语音播报、编号存储,使数据记录更加方便。大大提高了测量的准确性、时效性。

二、设计的硬件选择及选择原因

61144a7d942eef776de3a52a9ed4e82a.png

1.LDB6X743激光测距模块。该模块是核心模块,测量范围是在0.03-50m,测量精度是在正负1mm,测量时间是在0.3-3s,供电电压是在3.3v,工作的温度是在0-40摄氏度。它具有抗干扰(指测量是空气中的灰尘、水汽),户外环境仍然具有很高的测量精度和可靠性。此外,应用简单,功耗稳定,耗电量很小(小于1w)。

2.STC89C52单片机。这是一款很常用的单片机,价格也很便宜,某宝上3块钱就可以买下来。它的处理效率快,损耗低,抗干扰能力强。除此之外,开发设备的要求低,节约很多时间,其中最主要的就是它具有EEPROM存储功能,我们测量的数据就可以存到里面。

3.LCD1602液晶屏幕。它可以同时显示32个字符,有着优惠的价格,编程非常简单,可以可靠稳定的工作。LCD1602液晶屏是一种图形点阵显示器,它显示的原理是非常通俗的,很容易理解。其实就是液晶面板内部的液晶材料,发生了改变从而显示不同的字符,它是由许多点阵字符位组成。顾名思义,每一个字符的显示都是通过每一个对应的字符位产生的,其可以对数字和字母等进行显示。每个点在接收到信号之后,就会保持颜色和亮度,稳定地进行发光显示,不会出现闪烁的情况,质量很高。LCD1602液晶显示屏是数字式的,可以直接与单片机引脚连接,便于操作。虽然它共有16个管脚,但在实际使用时,最重要的无非只有三个,即数据命令选择端RS,读写选择端R/W,使能信号端E,主要用于执行初始化,写入命令和写入数据,编程时赋予这三个端口对应的值就可以了,十分简单。

4.XFS5152CE语音芯片。XFS5152CE是一款集成度很高而且工艺相当复杂的芯片,它有中文和英文的语音合成功能,此外还集成了语音编解功能,无论是录制还是播放效果都很好。它支持合成任意的中文text和英文text,支持多种控制命令。其次,选用这个芯片最主要的原因就是它可以对一些操作起到提示作用,还可以对测量所得到的数据进行播报。

5.按键模块。单片机上常使用的按键有独立按键和矩阵键盘,两者各有优缺点。每一个独立按键是需要单独连接一个IO端口的,这种情况下是每一个按键的操作是不会影响其他IO端口的状态。当手动按键时,相应IO端口的电平发生会改变(一般是变为低电平)。其优点是体积小巧,配置比较灵活,编程简单逻辑清晰。但是,当有许多按钮时,IO端口将会被浪费。4条IO线作为行线和4条IO线作为列线来组成矩阵键盘,按钮设置在每行和每列相交点上,那么键盘上的按键数就是4×4。行列键盘的优点是显而易见的,即可以有效提高单片机系统中IO口的利用率,但缺点是体积大,编程逻辑复杂。考虑到本设计的功能十分简单,主要是测量长度、存储数据、读取/重置数据,拟用3个按键实现功能,对IO口资源占用不大,所以采用更加简单灵活的独立按键。

6.电源模块(AMS1117-3.3稳压器)。由于测量仪的位置不是固定的,测量时要随着使用者需要测量的地方而伴随移动,如果采用电源线连接外部电源十分不便于测量。考虑到其一体性和便携性,必须把电源集成在测量仪上,所以采用最简单的方式:干电池串联供电。5.5V-3.3V 是标准的STC89C52RC单片机正常工作电压范围,4.5V的电源可以用三节1.5V的干电池串联形成。此外,由于激光模块LDB6X743和语音芯片XFS5152CE工作电压为3.3V,因此还要使用稳压器对4.5V的电源进行处理,使其降压到3.3V。这里选用了AMS1117-3.3。AMS1117系列的稳压器常用于电池供电和便携产品中,它有两个版本可以选择:可调节版和任意固定电压版,精度为1%。本次使用的AMS1117-3.3从命名就可以看出来,它是3.3V的固定电压版,可以把4.5V的输入电压降压至3.3V,再对上述的两个模块供电。

三、电路设计及其分析

5d867b32217a6988a622bbc5066ca77d.png

1单片机电路—-复位电路。复位电路非常简单,需要用的单片机的RST端,电路是通过一个10K的电阻R1、一个电源VCC、一个10uF的电容C1与单片机的RST端连接构成的,如图10所示。单片机上电启动后,电源VCC就开始对电容C1充电,直到C1两端的电压达到4.5V,此时电阻R1两端的电压几乎为0,RST端自然处于一个低电平状态,系统保持正常运行。当按下按钮时,随着开关闭合,C1被短路放电,RST从低电平转变为高电平,触发了单片机系统的复位。

2.单片机电路—-晶振电路。单片机内部是没有晶体振荡器的,所以外部的晶振是每个单片机所必要的,单片机的工作信号脉冲就是来自于这个外部晶振的,也可以简单地理解为是单片机的工作速度。由于晶体振荡器YTAL引脚组成的振荡电路中存在轻微的谐波,虽然该波对电路并不会造成什么严重的影响,但为了确保电路的稳定性,一般都加上两个22pf电容,分别连接到晶振Y1的两个引脚并接地,这样做可以减小谐波对电路稳定性的影响。

3.单片机电路—-按键电路。按键电路也是单片机中非常基础的电路之一。按键没有被按下时,单片机内部的I/O口是存在一个上拉电阻的,所以默认就是高电平。当按下某个键时,相应的I/O端口从高电平转换成为低电平。只要用循环程序监测I/O端口高低电平的变化,就知道哪个键被按下了。

4.显示模块电路。VO端通过分得电压的高低来调节液晶显示屏的对比度,实际使用时一般是接10K的电位器以便调节。RS端是用来进行寄存器选择的,高电平时对数据寄存器进行操作,低电平时对指令寄存器进行操作,R/W端是读/写信号线,高电平执行读取操作,低电平执行写入操作。E端是使能端,当E端从高电平跳到低电平时,液晶模块执行命令。D0~D7端是8位双向数据线,可直接与单片机连接,这里接入10k的排阻以防止单片机驱动电流不足。BGVCC端和BGGND端分别是LCD1602液晶屏幕背光电源的正极和负极。

5.激光模块电路。激光测距传感器是使用串口向单片机传输数据的。串口是一种通讯协议,用来进行串行通信,它的特点是数据是以每一位为单位进行传输,和并行传输数据相比,肯定速度上不占优势,但是需要用到的数据线少,成本也很低。串行通讯又分同步通讯和异步通讯,这里也采用异步通讯,要连接单片机的TXD脚和RXD脚,同时要进行3.3V供电和接地。

6.语音模块电路。语音芯片XFS5152CE是通过I2C总线协议与单片机进行通信的,I2C是单片机中常用的通信协议,它只需要两条总线:SDA(串行数据线)和SCL(串行时钟线)。 当SCL处于高电平时,SDA从高电平切换到低电平表示开始,从低电平切换到高电平表示停止;而当进行数据传输时相反,SDA在SCL的高电平期间必须保持稳定,只有在SCL是低电平时才允许SDA发生高低电平的改变。数据合成语音后通过喇叭播报。语音芯片也需要使用3.3V的电源。

四、焊接、烧录、调试

3a4f0d9ad09190b0a1073e027a47c71a.png

准备好硬件之后,买一块洞洞板,把各个模块按电路图进行连接,然后用焊接固定。在连接过程中需要注意的是,一定按照电路图中的端口连接,避免错误,会增加后期调试的工作难度,根据各个模块的工作程序进行编程,运用Keil uVision4进行编程。首先建立项目工程 new uVision project,项目工程建立完成之后,接着就是创建源文件,然后把创建好的源文件加到工程中去,最后就可以采用C语言进行编程。程序写好之后,保存目标文件和库文件,选择options for target,然后,在output菜单中,确认是否勾选了创建HEX文件的选项,然后进行编译。最后一步就是使用单片机烧写软件,将编译之后形成的HEX文件烧入到单片机中就可以查看功能实现的效果了。

五、温馨提示

1.具体的相关程序代码(个别代码附有解释说明)和电路图工程文件我会放在附录里面,需要的可以下载参考学习。

2.具体的操作说明和功能讲解,我会录制一个视频,在视频中我会详细说明。

3.感谢您的阅读,希望可以对你有所帮助,如果有什么不懂得,欢迎留言咨询。谢谢支持。

关于智能激光测距就分享到这里啦,想进一步了解相关专业知识,请搜索-酷耍(http:/kooshua.com)

微信公众号:酷耍实验室

微信小程序:酷耍实验室

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137869.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • XXE漏洞原理[通俗易懂]

    XXE漏洞原理[通俗易懂]XXE漏洞是XML外部实体注入漏洞,那什么是外部实体呢?XMLDTD1、文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。2、DTD可被成行地声明于XML文档中,也可作为一个外部引用。Ps:第二条是重点,也是XXE漏洞产生的原因,DTD可以定义外部实体并引用DTD语法若DTD要在XML文档中使用,他需要包含在·DOCTYPE声明…

    2022年5月10日
    44
  • Socket

    Socket

    2021年3月12日
    143
  • 微信小程序—图片色彩分析(拾取图片的配色方案)「建议收藏」

    微信小程序—图片色彩分析(拾取图片的配色方案)「建议收藏」这是一款图分析图片配色方案demo,图片色彩分析或许可以应用在智能分析色彩领域,比如穿衣搭配、家装等设计或生活领域,但需要大量数据的支持,希望技术能够更好的被应用

    2022年6月29日
    72
  • Java继承

    Java继承一:继承的概述1.继承的定义继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。–注:父类又称为超类或者基类。子类又称为派生类!2.继承的格式通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:class父类{…}class子类extends父类{…}二、关于继承之后的成员变量1.当成员变量不重名如果子类父类中出现不重名的成员变量,这时的访问是没有影

    2022年7月7日
    18
  • Elasticlunr.js 简单介绍

    Elasticlunr.js 简单介绍

    2022年1月29日
    261
  • 无证书签名简介[通俗易懂]

    无证书签名简介[通俗易懂]前言为什么要提出无证书签名防止公钥替换攻击防止密钥托管问题相关工作方案结构和安全模型方案结构参考:AnEfficientProvably-SecureCertificatelessSignatureSchemeforInternet-of-ThingsDeployment大致分为:Setup、Extract、KeyGen、Sign、Verify安全模型Al-Riyami2003Certificatelesspublickeycryptography提出的

    2022年4月30日
    109

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号