1 基于CW32的超声波模块的应用-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CW32的超声波模块的应用

jf_qE49KoVBr8 来源:武汉芯源半导体 2023-09-06 09:13 次阅读

一、简介

1. C-SR04超声波模块是一种常用的测距模块,其通过发射超声波并接收其反射信号来实现测距功能。因其成本低、精度高、使用简便等特点,被广泛应用于以下场景:

(1)避障机器人:HC-SR04超声波模块可以用于避障机器人的距离测量,通过检测障碍物与机器人的距离,实现避障控制。

(2)智能家居:HC-SR04超声波模块可用于智能家居中的人体检测和距离测量。例如,在门口安装超声波模块,可以检测人的接近并触发开门动作,或者用于室内的距离测量和触发自动照明等。

2. 本实验用到了CW32F030C8T6小蓝板、0.96寸OLED显示屏、HC-SR04超声波模块及Keil5开发环境。

二、超声波模块测距的使用方法

使用流程 连接电源 将VCC引脚连接到+5V,GND引脚连接到GND。

连接触发引脚

将Trig引脚连接到单片机的数字输出引脚。

连接回波引脚

将Echo引脚连接到单片机的数字输入引脚。

发送信号

通过向Trig引脚发送一个至少10微秒的高电平触发信号来启动测距过程

接收信号

模块发送触发信号后,自动发射超声波,并等待接收反射信号。当接收到反射信号时,Echo引脚会输出一个高电平信号,持续时间与超声波的往返时间成正比。

计算距离

通过测量Echo引脚输出高电平信号的持续时间,可以计算得到距离,一般使用以下公式计算:

距离= 高电平持续时间 × 声波在空气中传播的速度 / 2。

重复测量

根据需要可定时测量距离,以实现连续的距离监测。

需要注意的是,HC-SR04超声波模块的测距精度受到多种因素的影响,如温度、超声波传播介质等。在使用过程中,需要结合具体的应用场景和需求进行参数调整和校准,以获得准确的距离测量结果。

三、核心代码

HC_SR04.c:
#include "HC_SR04.h"


extern unsigned int time;


void HC_GPIO_Init(void)  
{
  __RCC_GPIOB_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct; 
  GPIO_InitStruct.IT=GPIO_IT_NONE;
  GPIO_InitStruct.Mode=GPIO_MODE_INPUT_PULLDOWN;//下拉输入
  GPIO_InitStruct.Pins=GPIO_PIN_8;               //Echo
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
  GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;     //推挽输出
  GPIO_InitStruct.Pins=GPIO_PIN_9;               //Trig 
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  PB09_SETLOW();   //Trig拉低,为输出脉冲触发信号做准备
}


unsigned int Measure_Distance(void) //测距
{
  unsigned int distance=0;
  
  SetTrig();     //10us的脉冲触发信号
  Delay_us(10);
  ResetTrig();
  while(ReadEcho()==0); //等待Echo输出高电平
  time=0;               //开始记录回波信号脉宽
  while(ReadEcho()==1); //等待Echo输出低电平     
  distance=time*1.7;//根据声速和时间计算距离,即distance=time*340/2/100
  /*
      关于分辨力(mm):
          定时器每次对time加1是10us,10us=0.01ms,340m/s=340mm/ms
          计算距离时,最小分辨力为:0.01(ms) * 340(mm/ms) / 2 = 1.7(mm)
          小于模块标准精度3mm,故测距结果十分精准
  */
  return distance; //返回距离,单位mm
}
main.c:
#include "HC_SR04.h"


extern unsigned int time;


void HC_GPIO_Init(void)  
{
  __RCC_GPIOB_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct; 
  GPIO_InitStruct.IT=GPIO_IT_NONE;
  GPIO_InitStruct.Mode=GPIO_MODE_INPUT_PULLDOWN;//下拉输入
  GPIO_InitStruct.Pins=GPIO_PIN_8;               //Echo
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
  GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;     //推挽输出
  GPIO_InitStruct.Pins=GPIO_PIN_9;               //Trig 
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  PB09_SETLOW();   //Trig拉低,为输出脉冲触发信号做准备
}


unsigned int Measure_Distance(void) //测距
{
  unsigned int distance=0;
  
  SetTrig();     //10us的脉冲触发信号
  Delay_us(10);
  ResetTrig();
  while(ReadEcho()==0); //等待Echo输出高电平
  time=0;               //开始记录回波信号脉宽
  while(ReadEcho()==1); //等待Echo输出低电平     
  distance=time*1.7;//根据声速和时间计算距离,即distance=time*340/2/100
  /*
      关于分辨力(mm):
          定时器每次对time加1是10us,10us=0.01ms,340m/s=340mm/ms
          计算距离时,最小分辨力为:0.01(ms) * 340(mm/ms) / 2 = 1.7(mm)
          小于模块标准精度3mm,故测距结果十分精准
  */
  return distance; //返回距离,单位mm
}





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED显示屏
    +关注

    关注

    6

    文章

    217

    浏览量

    30675
  • GND
    GND
    +关注

    关注

    2

    文章

    539

    浏览量

    38696
  • 避障机器人
    +关注

    关注

    0

    文章

    18

    浏览量

    7695
  • 超声波模块
    +关注

    关注

    1

    文章

    21

    浏览量

    13500
  • CW32
    +关注

    关注

    1

    文章

    203

    浏览量

    626

原文标题:【CW32优秀项目展示】基于CW32的超声波模块的应用

文章出处:【微信号:武汉芯源半导体,微信公众号:武汉芯源半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CW32模块使用】US-016超声波测距传感器

    US-016是市场上唯有的一款模拟量输出的超声波测距模块,输出的模拟电压和距离值成正比,可以方便的和其他系统相连,US-016工作稳定可靠。 US-016超声波测距模块可实现2cm~3
    的头像 发表于 11-28 12:02 854次阅读
    【<b class='flag-5'>CW32</b><b class='flag-5'>模块</b>使用】US-016<b class='flag-5'>超声波</b>测距传感器

    超声波液位计的工作原理 超声波液位计与其他液位计的比较

    超声波液位计是一种利用超声波信号来测量液体高度的仪器。其工作原理基于超声波在介质中的传播特性。以下是超声波液位计的基本工作原理: 发射超声波
    的头像 发表于 11-23 10:28 314次阅读

    超声波和次声波的频率范围和应用

    超声波和次声波是两种不同频率的声波,它们在许多领域都有广泛的应用。以下是关于超声波和次声波的频率范围和应用的介绍:
    的头像 发表于 09-19 16:42 2349次阅读

    PGA460超声波模块硬件和软件优化

    德赢Vwin官网 网站提供《PGA460超声波模块硬件和软件优化.pdf》资料免费下载
    发表于 08-27 11:16 0次下载
    PGA460<b class='flag-5'>超声波模块</b>硬件和软件优化

    超声波测速的原理、方法及应用

    超声波测速是一种利用超声波在介质中的传播速度来测量物体速度的技术。它广泛应用于工业、医疗、交通等领域。 一、超声波测速的原理 超声波的定义 超声波
    的头像 发表于 08-16 10:36 4043次阅读

    AFE5812超声波模拟前端数据表

    德赢Vwin官网 网站提供《AFE5812超声波模拟前端数据表.pdf》资料免费下载
    发表于 07-29 09:37 0次下载
    AFE5812<b class='flag-5'>超声波模</b>拟前端数据表

    AFE5818 16通道超声波模拟前端数据表

    德赢Vwin官网 网站提供《AFE5818 16通道超声波模拟前端数据表.pdf》资料免费下载
    发表于 07-29 09:29 2次下载
    AFE5818 16通道<b class='flag-5'>超声波模</b>拟前端数据表

    超声波无损检测原理及应用

    超声波无损检测(Ultrasonic Non-Destructive Testing,简称UT)是一种利用超声波在材料内部传播的特性,检测材料内部缺陷和结构的无损检测技术。本文将详细介绍超声波无损
    的头像 发表于 05-24 16:48 5400次阅读

    超声波连接示波器问题

    我买了一只中心频率2.5Mhz的超声波探头,当我连接到示波器上的时候就有信号在显示屏上。 我想问的是示波器上的信号到底是接收的环境中的超声波信号? 还是当探头接到示波器上 探头就会自动的发射超声波然后再接收自己发射的
    发表于 05-04 14:46

    51单片机制作舵机控制超声波模块

    我用定时器0控制舵机旋转,定时器2控制超声波模块,但是二者只能实现一个功能,有没有大神帮忙解决一下,求求了
    发表于 04-20 20:55

    基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料

    设计要求 1.设计一个以51单片机为核心的超声波倒车雷达系统; 2.超声波测量范围在2cm~4m,测量精度3mm; 3.扩展DS18B20温度测量模块,读取环境温度和补偿超声波测距声速
    发表于 03-19 14:17

    15K超声波模具20K超音波模具制作

    15KHZ超声波模具20KHZ超音波模具 15KHZ超声波模具20KHZ超音波模具深圳市宏大电子设备有限公司都选用进口铝镁合金7075.频率好硬度高,经久耐用!
    发表于 02-16 15:30

    超声波传感器的工作模式有哪些

    自动化、汽车、航空航天、医疗、消费电子等领域。 超声波传感器的工作模式主要有脉冲回声模式、连续波模式。 脉冲回声模式(Pulse-Echo Mode):这是最常见的超声波传感器工作模式。在这种模式下,传感器首先发射一个短暂的
    的头像 发表于 02-16 10:21 1140次阅读

    用pwm去控制超声波模块时,自动装载模式下,超声波的噪音很大是为什么?

    用pwm去控制超声波模块时,借鉴的程序中:pwm的技术工作模式是one shot,每次去获取超声波模块返回的值,都是一样,肯定是cnt没有变。但如果设置为自动装载mode,能连续获取不同的值。查看
    发表于 01-17 08:32

    超声波发生器的原理

    超声波发生器又称超声波驱动电源、电子箱、超声波控制器,是大功率超声波系统的重要组成部分。超声波发生器的作用是将市电转换为与
    的头像 发表于 12-24 10:46 1760次阅读
    <b class='flag-5'>超声波</b>发生器的原理