轻松学Lesson9超声波测距仪
1.课程简介
本节课以超声波测距仪为例,为大家讲解超声波测距的原理及基于IIC通讯协议的LCD液晶屏的使用。
本节课所需硬件:Arduino UNO、IO扩展板、LCD显示器、超声波测距模块
Lesson-9.png (143.02 KB, 下载次数: 12)
2019-4-29 17:12 上传
2.本节知识点
设备初始化
LCD液晶显示器使用
*脉冲宽度检测
3. Mixly模块
初始化
3.1 初始化.png (10.21 KB, 下载次数: 7)
2019-4-29 17:12 上传
模块位置:“控制”栏
模块功能:初始化设备及变量。
该模块对应的Arduino程序的setup()函数,该函数内的命令在设备通电启动后仅执行一次,所以通常在此函数内进行设备初始化、串口通讯频率、端口模式等设定操作。
变量声明虽然可以放到该模块内,但在实际的Arduino代码,变量声明语句并不在setup()函数内。具体内容会在慕课最后一节中讲解。
LCD初始化
3.2 LCD初始化.png (34.53 KB, 下载次数: 7)
2019-4-29 17:12 上传
模块位置:“显示器”栏
模块功能:设定显示器类型,初始化LCD,建立IIC通讯。
1602:课程套件中所用的显示器类型,两行显示,每行16个字符。除此之外还有2004型,即4行显示,每行20字符。
ArduinoUNO板的时钟总线为A5端口,数据总线为A4端口,不可更改。
0x20为课程所用套件的LCD液晶屏IIC地址,第三方的IIC协议LCD液晶屏地址默认为0x27,可以通过短接屏幕背面接口板上的A0、A1、A2接口调整IIC地址。
液晶显示屏功能设置
3.3 液晶屏设置.png (7.83 KB, 下载次数: 6)
2019-4-29 17:12 上传
模块位置:“显示器”栏
模块功能:设置液晶显示屏的功能,如屏幕开、关、光标显示、背光闪烁、清屏等操作。
液晶屏内容显示
3.4 内容显示.png (15.31 KB, 下载次数: 7)
2019-4-29 17:11 上传
模块位置:“显示器”栏
模块作用:设定显示的内容及内容首字母的行、列位置。行数自下而上数,列数为自左向右数。
超声波测距
3.5 超声波测距.png (14.75 KB, 下载次数: 8)
2019-4-29 17:11 上传
模块位置:“传感器”栏
模块功能:测量超声波测距模块返回的脉冲长度信号并换算成对应距离。
文本连字符
3.6 文本连接.png (5.21 KB, 下载次数: 33)
2017-4-13 18:53 上传
模块位置:“文本”栏
模块功能:将左右两侧的字符串连接成一个字符串。
Distance为浮点型(Mixly中描述为小数类型)变量,转变为字符串,转换后的结果无法直接进行数字运算。即数字5≠字符5,符号相同,意义不同。
*脉冲宽度检测
3.7 脉冲宽度检测.png (2.89 KB, 下载次数: 37)
2017-4-13 18:53 上传
所处位置:“输入输出”栏
模块作用:检测对应管脚返回高电平的持续时间。
4.程序及流程图
程序图
4. 程序图.png (192.82 KB, 下载次数: 79)
2017-4-13 18:53 上传
流程图
4.1 流程图.jpg (21.01 KB, 下载次数: 10)
2019-4-29 17:11 上传
5.关联知识讲解
IIC协议
IIC是飞利浦公司研发的一种总线通讯协议,每条IIC总线上有一台主机,7位寻址IIC总线的最多可以同时接入127台从机,设备各自对应独立的地址信息。
主机与从机通过时钟总线和数据总线通信。Arduino UNO板的时钟总线为A5端口,数据总线为A4端口,不可更改。
超声波测距原理
套件中所使用的HC-SR04超声波测距模块可提供2cm-400cm的距离感测,测距精度可达3mm。测量过程首先向Trig端口输入持续时间10μs的高电平信号,随后拉低电平信号,测距模块会发出1组8个40KHz的脉冲信号,脉冲信号遇到障碍物后反弹,测距模块一旦接受到返回的信号,则会在Echo端口输出长度与所测距离成正比的脉冲信号,我们通过脉冲长度检测获取到信号长度,乘以声速再除以2,即可得到距离数值。
5. 测距原理.png (116.15 KB, 下载次数: 6)
2019-4-29 17:10 上传
distance=time×340m/s÷2
*脉冲宽度检测
按照上述的测距流程,程序中的距离测量也可用右侧的程序实现。两者等效。
5.2 脉冲宽度检测.png (83.58 KB, 下载次数: 9)
2019-4-29 17:10 上传
6.课堂练习
结合纸模,制作一个测距仪。
7.作业及挑战
由于显示频率,课程中的案例闪烁过快,如何实现如下稳定显示效果?
完成程序并上传程序截图及效果视频。
课程简介
《Arduino轻松学》是科技学堂制作的在线系列创客教学视频之一。《轻松学》是一套Arduino开发的基础入门课程,适合还没有过硬件开发和编程经验的人群做入门学习使用。本课程中,每节课带你制作一个趣味小项目,在学到技术的同时,也开动想象发挥创造。课程案例
《轻松学》课程中使用非常适合初学者的DFRobot的米思齐(Mixly)编程积木入门套装,软件选用图形化编程的Mixly。课程以视频+图文的呈现形式,深入浅出。既有操作演示,又方便学习者自主观看查询,轻松完成Arduino的入门学习。