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