回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

Arduino轻松学Mixly编程第9课 超声波测距仪 简单

头像 ASH腻 2019.04.26 2693 0

Arduino轻松学Lesson 9 超声波测距仪

1. 课程简介

本节课以超声波测距仪为例,为大家讲解超声波测距的原理及基于IIC通讯协议的LCD液晶屏的使用。本节课所需硬件:Arduino UNO、IO扩展板、LCD显示器、超声波测距模块

project-image


2. 本节知识点设备初始化LCD液晶显示器使用*脉冲宽度检测


3. Mixly模块初始化

project-image

模块位置:“控制”栏模块功能:初始化设备及变量。该模块对应的Arduino程序的setup()函数,该函数内的命令在设备通电启动后仅执行一次,所以通常在此函数内进行设备初始化、串口通讯频率、端口模式等设定操作。变量声明虽然可以放到该模块内,但在实际的Arduino代码,变量声明语句并不在setup()函数内。具体内容会在慕课最后一节中讲解。


LCD初始化

project-image

模块位置:“显示器”栏模块功能:设定显示器类型,初始化LCD,建立IIC通讯。1602:课程套件中所用的显示器类型,两行显示,每行16个字符。除此之外还有2004型,即4行显示,每行20字符。ArduinoUNO板的时钟总线为A5端口,数据总线为A4端口,不可更改。0x20为课程所用套件的LCD液晶屏IIC地址,第三方的IIC协议LCD液晶屏地址默认为0x27,可以通过短接屏幕背面接口板上的A0、A1、A2接口调整IIC地址。


液晶显示屏功能设置

project-image

模块位置:“显示器”栏模块功能:设置液晶显示屏的功能,如屏幕开、关、光标显示、背光闪烁、清屏等操作。


液晶屏内容显示

project-image

模块位置:“显示器”栏模块作用:设定显示的内容及内容首字母的行、列位置。行数自下而上数,列数为自左向右数。               


超声波测距

project-image

模块位置:“传感器”栏模块功能:测量超声波测距模块返回的脉冲长度信号并换算成对应距离。


文本连字符

project-image

模块位置:“文本”栏模块功能:将左右两侧的字符串连接成一个字符串。Distance为浮点型(Mixly中描述为小数类型)变量,转变为字符串,转换后的结果无法直接进行数字运算。即数字5≠字符5,符号相同,意义不同。


*脉冲宽度检测

project-image

所处位置:“输入输出”栏模块作用:检测对应管脚返回高电平的持续时间。


4. 程序及流程图程序图

project-image


流程图

project-image


5.关联知识讲解IIC协议

IIC是飞利浦公司研发的一种总线通讯协议,每条IIC总线上有一台主机,7位寻址IIC总线的最多可以同时接入127台从机,设备各自对应独立的地址信息。主机与从机通过时钟总线和数据总线通信。Arduino UNO板的时钟总线为A5端口,数据总线为A4端口,不可更改。

超声波测距原理

套件中所使用的HC-SR04超声波测距模块可提供2cm-400cm的距离感测,测距精度可达3mm。测量过程首先向Trig端口输入持续时间10μs的高电平信号,随后拉低电平信号,测距模块会发出1组8个40KHz的脉冲信号,脉冲信号遇到障碍物后反弹,测距模块一旦接受到返回的信号,则会在Echo端口输出长度与所测距离成正比的脉冲信号,我们通过脉冲长度检测获取到信号长度,乘以声速再除以2,即可得到距离数值。

project-image


distance=time×340m/s÷2


*脉冲宽度检测按照上述的测距流程,程序中的距离测量也可用右侧的程序实现。两者等效。

project-image


6.课堂练习

结合纸模,制作一个测距仪。


7.作业及挑战

由于显示频率,课程中的案例闪烁过快,如何实现如下稳定显示效果?完成程序并上传程序截图及效果视频。

课程简介
《Arduino轻松学》是科技学堂制作的在线系列创客教学视频之一。《轻松学》是一套Arduino开发的基础入门课程,适合还没有过硬件开发和编程经验的人群做入门学习使用。本课程中,每节课带你制作一个趣味小项目,在学到技术的同时,也开动想象发挥创造。

课程案例

《轻松学》课程中使用非常适合初学者的DFRobot的米思齐(Mixly)编程积木入门套装,软件选用图形化编程的Mixly。课程以视频+图文的呈现形式,深入浅出。既有操作演示,又方便学习者自主观看查询,轻松完成Arduino的入门学习。


下一课:Arduino轻松学Lesson10 红外报警装置

评论

user-avatar