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

共2条 1/1 1 跳转至

UltrasonicEyes 项目制作教程 三

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

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

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

以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块内部将 发出 8 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。 回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号 时间间隔可以计算得到距离。公式: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 跳转至

回复

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