2024-09-01
售卖作品
00

目录

1 原理
2 MSP430G2553读取的代码
3 MSP430F5529读取超声波的代码
4 串口发送
5 模块必须是3.3V供电,不然有单片机烧毁风险
用超声波模块做倒车雷达
帮助、问询

1 原理

在这里插入图片描述

测距原理:

tirg平时都给低电平,当测距时,给trig输入10us以上的高电平,模块就会被激发。模块上的发射口向外发射8个40khz的声波信号。并开始计时。

声波遇到障碍物反射回来,模块的接收口收到这组声波后,会在echo引脚输出一段时间的高电平。高电平持续的时间刚好就是从开始计时到接受声波这2个事件所经历的时间。也即是声波从发出到被接受往返距离所用时间。

所以:

往返距离=echo高电平时间*声速

单程距离=超声波到障碍物距离=echo高电平时间*声速/2

测距注意:精准测量距离需要超声波模块和障碍物墙面严格平行。

编程:

单片机需要测定echo高电平时间。一般的单片机都可以用定时器去读取时间,MSP430 G2553 可以依靠捕获功能,捕获上升沿到下降沿的时间,从而得到距离。

2 MSP430G2553读取的代码

代码:https://github.com/xddun/blog_code_search

MSP430G2553:

在这里插入图片描述

这段代码是一个基于MSP430微控制器的超声波测距程序。主要使用了MSP430的定时器和IO口控制。

代码中的宏定义部分定义了一些常量和函数,如CPU时钟频率、延时函数等。

在main()函数中,初始化了MSP430的基本时钟系统(BCSplus_init),初始化了OLED显示屏,并设置了TRIG和ECHO引脚的方向和选择模式。然后通过一个无限循环开始测距和显示距离的操作。

在测距过程中,首先打开定时器计数功能并设置触发方式为上升沿捕获。然后通过设置TRIG引脚产生一个短时间的高电平信号来触发超声波模块发送出去。接着进入低功耗模式(LPM0)等待超声波发射并接收返回的回波信号。

当超声波模块发送回波信号后,通过定时器的中断处理程序进行捕获。根据定时器的计数值和捕获时间,计算出距离,并显示在OLED屏上。最后退出低功耗模式,回到主循环继续进行下一次测距操作。

在代码末尾的BCSplus_init()函数中,对MSP430的基本时钟系统进行了设置,使得MCLK和SMCLK的时钟频率为16MHz。

总体来说,这段代码实现了超声波测距功能,并通过OLED显示距离结果。

3 MSP430F5529读取超声波的代码

代码:https://github.com/xddun/blog_code_search

MSP430F5529:

在这里插入图片描述

这段代码实现了一个超声波测距仪的功能。具体解释如下:

包含了头文件 "OLED.h" 和 <msp430.h>,用于调用相应的函数和库。

定义了一些常量和函数。

CPU_F 表示外部高频晶振的频率,这里设置为8MHz。

delay_us(x) 和 delay_ms(x) 是延时函数,用于延时指定的微秒和毫秒数。

Send_Byte(char data) 函数用于发送一个字节的数据。

Print_Str(char *s) 函数用于发送一个字符串。

声明了一些全局变量,包括 END_Date、STA_Date、over_flag、cap_fail_count 和 distance。

main() 函数是程序的入口。

首先停止看门狗计时器(WDT)。

设置时钟频率为8MHz。

初始化串口通信(UART)。

配置IO口和定时器,用于控制超声波传感器和测距。

初始化OLED显示屏。

启用中断并进入主循环。

激发超声波信号,并开始测距。

计算得到的时间差转换为距离,并进行显示。

延时一段时间后继续下一次测距。

TIMER0_A1_VECTOR 是定时器0通道1中断的中断处理函数。

判断捕获模式,如果是高电平,则保存开始时间;如果是低电平,则保存结束时间并设置标志位。

以上就是这段代码的主要功能和逻辑。它使用MSP430微控制器实现超声波测距功能,并通过OLED显示屏显示测距结果。

4 串口发送

串口发送

在这里插入图片描述

5 模块必须是3.3V供电,不然有单片机烧毁风险

超声波模块有的只能5V供电才能工作!有的兼容3.3V~5V都能正常供电。买的时候得注意。

如果是3.3V的单片机,推荐购买下图这种超声波模块:

在这里插入图片描述

在这里插入图片描述

或者下图这种HC-SR04+ (左下角型号里有个+号)

在这里插入图片描述

用超声波模块做倒车雷达

https://blog.csdn.net/x1131230123/article/details/109649680

代码:

https://github.com/xddun/blog_code_search

帮助、问询

csharp
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!