2017-4-14 17:26:21 [显示全部楼层]
46455浏览
查看: 46455|回复: 8

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

[复制链接]
Arduino轻松学Lesson 9 超声波测距仪


1. 课程简介
本节课以超声波测距仪为例,为大家讲解超声波测距的原理及基于IIC通讯协议的LCD液晶屏的使用。
本节课所需硬件:Arduino UNO、IO扩展板、LCD显示器、超声波测距模块
Lesson-9.png
2. 本节知识点
设备初始化
LCD液晶显示器使用
*脉冲宽度检测

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

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

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

液晶屏内容显示
WedJune-202106309653..png
模块位置:“显示器”栏
模块作用:设定显示的内容及内容首字母的行、列位置。行数自下而上数,列数为自左向右数。
               
超声波测距
WedJune-202106302749..png
模块位置:“传感器”栏
模块功能:测量超声波测距模块返回的脉冲长度信号并换算成对应距离。

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

*脉冲宽度检测
WedJune-202106302689..png
所处位置:“输入输出”栏
模块作用:检测对应管脚返回高电平的持续时间。

4. 程序及流程图
程序图
WedJune-202106305035..png
流程图
ThuSeptember-202109236672..png
5.关联知识讲解

IIC协议
IIC是飞利浦公司研发的一种总线通讯协议,每条IIC总线上有一台主机,7位寻址IIC总线的最多可以同时接入127台从机,设备各自对应独立的地址信息。
主机与从机通过时钟总线和数据总线通信。Arduino UNO板的时钟总线为A5端口,数据总线为A4端口,不可更改。
超声波测距原理
套件中所使用的HC-SR04超声波测距模块可提供2cm-400cm的距离感测,测距精度可达3mm。测量过程首先向Trig端口输入持续时间10μs的高电平信号,随后拉低电平信号,测距模块会发出1组8个40KHz的脉冲信号,脉冲信号遇到障碍物后反弹,测距模块一旦接受到返回的信号,则会在Echo端口输出长度与所测距离成正比的脉冲信号,我们通过脉冲长度检测获取到信号长度,乘以声速再除以2,即可得到距离数值。
ThuSeptember-202109236792..png

distance=time×340m/s÷2

*脉冲宽度检测
按照上述的测距流程,程序中的距离测量也可用右侧的程序实现。两者等效。
WedJune-202106304685..png
6.课堂练习
结合纸模,制作一个测距仪。
测距仪机器人-纸模.pdf.pdf (396.26 KB, 下载次数: 263)

rom222  学徒

发表于 2017-4-29 11:25:10

不错
回复

使用道具 举报

创客多多  见习技师

发表于 2017-7-21 22:21:06

我的是Mixly 0.995版本,初始化显示器没有后面sclPin#和sdaPin#这两项,所以设置不了这两个参数,请老师给予指导,谢谢!
回复

使用道具 举报

Angelo  初级技匠

发表于 2017-7-26 15:53:47

创客多多 发表于 2017-7-21 22:21
我的是Mixly 0.995版本,初始化显示器没有后面sclPin#和sdaPin#这两项,所以设置不了这两个参数,请老师给 ...

Hi, 这个液晶显示屏用的IIC接口的. 一般只能接在A5和A4引脚上, 可能是由于更新了Mixly的版本, 去掉了这两个选项. 你可以试试看, 只要地址对了,应该不影响功能的.
回复

使用道具 举报

fish  学徒

发表于 2017-11-7 22:57:19

创客多多 发表于 2017-7-21 22:21
我的是Mixly 0.995版本,初始化显示器没有后面sclPin#和sdaPin#这两项,所以设置不了这两个参数,请老师给 ...

QQ图片20171107225553.png 切换到高级视图就有了
回复

使用道具 举报

ldsgrh  见习技师

发表于 2017-11-29 23:25:32

刚刚接触这些东西,喜欢!
回复

使用道具 举报

罗小丙  学徒

发表于 2018-1-25 09:53:58

非常棒的项目!
回复

使用道具 举报

DFBkbkyaRlQ  学徒

发表于 2018-6-14 00:09:20

学习中
回复

使用道具 举报

 学徒

发表于 2018-10-13 00:22:59

谢谢老师 已经成功!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail