你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HC-SR04超声波测距模块调试

[复制链接]
贺工 发布时间:2017-10-22 18:53
1:HC-SR04超声波测距原理
超声波模块.PNG
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用IO口TRIG触发测距,给最少10us的高电平信号。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2


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


3:软件控制HC-SR04超声波模块
01:硬件说明
超声波模块测距触发引脚Trig--->PC6
超声波模块测距信号返回引脚Echo--->PC7

02:软件实现
实现方法:20ms触发一次测距,在定时器100us的中断里面计模块Echo返回信号高电平的时间,然后通过高电平时间*声速(340m/S)/2计算出距离,并串口打印显示。
注意:20ms触发一次测距,说明最远只能测3.4m。
主要函数说明:
//控制引脚初始化
void ULsonicGPIO_Init(void);
//测距使能控制
void ULsonic_Start(void);
//测距函数
void ULsonic_Measure(void);
具体源代码:
main.c文件
main.PNG


ultrasonic.h文件
u_头文件.PNG


ultrasonic.c文件
u_1.PNG
u_2.PNG


time.c文件
t2_1.PNG
t2_2.PNG


3:实验测试
01:实验平台:
pt.PNG
02:测试结果:

测试结果.PNG


更多精彩内容请微信扫码关注
001206kzn4bs9bi2znatb2.png
之前发过的帖子
03:轻松搞定串口通信隔离
04:STM32中断优先级管理

05:STM32单片机SWJ口引脚释放
06:真的明白Code、RO-data、RW-data和ZI-data吗?


收藏 3 评论7 发布时间:2017-10-22 18:53

举报

7个回答
anywill 回答时间:2017-10-23 10:58:39
本帖最后由 anywill 于 2017-10-23 14:05 编辑

//nucleo+HC-SR04超声波模块
01:硬件说明上的
#include "mbed.h"
#include "ultrasonic.h"

void dist(int distance)
{
    //put code here to happen when the distance is changed
    printf("Distance changed to %dmm\r\n", distance);
}

ultrasonic mu(D8, D9, .1, 1, &dist);    //Set the trigger pin to D8 and the echo pin to D9
                                        //have updates every .1 seconds and a timeout after 1
                                        //second, and call dist when the distance changes

int main()
{
    mu.startUpdates();//start mesuring the distance
    while(1)
    {
        //Do something else here
        mu.checkDistance();     //call checkDistance() as much as possible, as this is where
                                //the class checks if dist needs to be called.
    }
}


贺工 回答时间:2017-10-23 11:56:24
anywill 发表于 2017-10-23 10:58
//nucleo+HC-SR04超声波模块
01:硬件说明上的
#include "mbed.h"

各有各的写法吧
贺工 回答时间:2017-10-23 12:30:31
还有一种控制方法:
定时器一路PWM控制触发以及触发周期,超声波返回信号高电平时间用定时器通道捕捉功能获取
五哥1 回答时间:2017-10-24 12:19:31
实际上有三种方法
贺工 回答时间:2017-10-25 09:22:53
五哥1 发表于 2017-10-24 12:19
实际上有三种方法

会好一种就好了
sh97 回答时间:2018-7-29 22:20:28
请问Task20ms_Flg在哪里定义
a2450317232 回答时间:2018-10-29 19:22:21
萌新请教下,pbdata.h是直接用就行了是吗?这里没详细内容额,求解答,感激

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版