这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 活动中心» 板卡试用» UltrasonicEyes 项目制作教程 三

共2条 1/1 1 跳转至

UltrasonicEyes 项目制作教程 三

菜鸟
2018-09-18 15:36:39 打赏

⑤、超声波测距,串口打印数据

发的噶大概.jpg发生的高速.png

以上时序图表明你只需要提供一个10uS以上脉冲触发信号,该模块内部将发出840kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。

通过以上信息可以得出以下结论:TRIG端是触发信号,此端口连接单片机的IO口只需控制输出,而ECHO端是回响信号,IO口只用配置为输入模式即可。而ECHO端回响的高电平的时间是与距离成正比,因此可以通过stm32中的基本定时器对ECHO的回响信号进行计时,从而得到我们想要的距离信息。

为了实现此功能,需要写一个有返回值的函数,返回值限制为8位二进制,单位CM,也就是说程序限制了它的测距只有255CM

具体函数实体如下:

发的噶.png

关于定时器的配置如下:

发的噶好.png

为了方便连线,左超声波用的IO口是PA6 PA11

右超声波用的是PA13 PA14

画的跟.jpg

串口的配置如下

发地方噶的风格.png

波特率设置为115200

8为数据,1个停止位,无奇偶校验

值得一提的是,Nucleo板卡用的是串口2接到ST-link上,不是串口1。配置的时候需要注意。

个人哈多人热感应.png

把这个勾上,并且在主函数里包含“stdio.h”,这样,我们就可以用printf这个函数打印数据了。

main.c里包含相关文件,定义变量,因为使用的是两个超声波。因此测距函数写两套,用一个定时器即可。具体操作也不用多说了,这是实验的结果。在这里测距的单位是CM,从实验现象来看,基本也就完成了。

⑥、MAX7219 led点阵

该点阵的驱动较为简单,具体操作与点亮发光二极管无异;值得一提的是MAX7219 led点阵集成了一些操作指令,可以对将要显示的图形进行控制。具体指令请参考MAX7219点阵的资料,在这里,我们仅仅用了如下指令作为初始化:

Write_Max7219(0x09, 0x00); //译码方式:BCD

Write_Max7219(0x0a, 0x01); //亮度

Write_Max7219(0x0b, 0x07); //扫描界限;8个数码管显示

Write_Max7219(0x0c, 0x01); //掉电模式:0,普通模式:1

Write_Max7219(0x0f, 0x00); //显示测试:1;测试结束,正常显示:0

取模的话,由于是8×8点阵,手动取模也无所谓,自己想要什么图形就自己设计什么图形吧^_^

MAX7219中文.pdf


⑦、JQ6500语音模块简介

该语音模块集成度较高,更是好用的一批;该语音模块的资料提供了大量的教程;对于这个模块的控制可以用串口控制,也可以用IO口高低电平控制,在这里如果为了方便(懒省事),也可以直接用了IO口控制高低电平进行一些基础控制。两个IO口对应两种不同的音频,控制其音频切换的正好是超声波测距的距离。JQ6500语音模块使用说明书V1.4.pdf


接下来,我们将要对(硬件部分)模块和板卡的连线进行详细的介绍。


本篇视频教程:http://v.youku.com/v_show/id_XMzgyMjA5NTU1Ng==.html?spm=a2hzp.8244740.0.0



院士
2018-09-27 13:07:47 打赏
2楼

矩阵LED的点亮使用了驱动芯片,这样操作就简单的多了


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]