⑤、超声波测距,串口打印数据
以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块内部将 发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。 回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号 时间间隔可以计算得到距离。公式:uS/58=厘米或者 uS/148=英寸;或是:距离= 高电平时间*声速(340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对 回响信号的影响。
通过以上信息可以得出以下结论:TRIG端是触发信号,此端口连接单片机的IO口只需控制输出,而ECHO端是回响信号,IO口只用配置为输入模式即可。而ECHO端回响的高电平的时间是与距离成正比,因此可以通过stm32中的基本定时器对ECHO的回响信号进行计时,从而得到我们想要的距离信息。
为了实现此功能,需要写一个有返回值的函数,返回值限制为8位二进制,单位CM,也就是说程序限制了它的测距只有255CM;
具体函数实体如下:
关于定时器的配置如下:
为了方便连线,左超声波用的IO口是PA6 PA11
右超声波用的是PA13 PA14
串口的配置如下
波特率设置为115200
8为数据,1个停止位,无奇偶校验
值得一提的是,Nucleo板卡用的是串口2接到ST-link上,不是串口1。配置的时候需要注意。
把这个勾上,并且在主函数里包含“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点阵,手动取模也无所谓,自己想要什么图形就自己设计什么图形吧 ^_^
⑦、JQ6500语音模块简介
该语音模块集成度较高,更是好用的一批;该语音模块的资料提供了大量的教程;对于这个模块的控制可以用串口控制,也可以用IO口高低电平控制,在这里如果为了方便(懒省事),也可以直接用了IO口控制高低电平进行一些基础控制。两个IO口对应两种不同的音频,控制其音频切换的正好是超声波测距的距离。JQ6500语音模块使用说明书V1.4.pdf
接下来,我们将要对(硬件部分)模块和板卡的连线进行详细的介绍。
本篇视频教程:http://v.youku.com/v_show/id_XMzgyMjA5NTU1Ng==.html?spm=a2hzp.8244740.0.0