US-016超声波测距传感器移植至CW32F030C8T6开发板上能够判断前方障碍物距离的功能实例

2024-12-05 武汉芯源(CW32生态社区公众号)
开发板,CW32F030C8T6,武汉芯源 开发板,CW32F030C8T6,武汉芯源 开发板,CW32F030C8T6,武汉芯源 开发板,CW32F030C8T6,武汉芯源

US-016是市场上唯有的一款模拟量输出的超声波测距模块,输出的模拟电压和距离值成正比,可以方便的和其他系统相连,US-016工作稳定可靠。


US-016超声波测距模块可实现2cm~3m的非接触测距功能,供电电压为5V,工作电流为3.8mA,支持模拟电压输出,工作稳定可靠。本模块根据不同应用场景可设置成不同的量程(大测量距离分别为1m和3m);当Range管脚悬空时,量程为3m。US-016能将测量距离转化为模拟电压输出,输出电压值与测量距离成正比。


一 模块来源

模块实物展示:



资料下载链接:

http://pan.baidu.com/s/1c08JuBQ


二 规格参数

工作电压:3.3V-5V

工作电流:3.8MA

感应角度:小于15度

探测距离:2CM-300CM

探测精度:0.3CM+1%

输出方式: 模拟电压

管脚数量:4 Pin

以上信息见厂家资料文件


三移植过程

我们的目标是将例程移植至CW32F030C8T6开发板上【能够判断前方障碍物距离的功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。


3.1查看资料

模块上电后,系统首先判断 Range 引脚的输入电平,根据输入电平状态来设置不同的量程。当 Range 引脚为高电平时,量程为 3m,当 Range 管脚为低电平时,量程为 1m。然后,系统开始连续测距,同时将测距结果通过模拟电压在 Out 管脚输出。当距离变化时,模拟电压也会随之进行变化。模拟电压与测量距离成正比,模拟电压的输出范围是0~Vcc。

当系统量程为 1m 时,测量距离为:L = 1024*Vout/Vcc(mm)。当输出电压为 0V 对应距离为 0m,输出 Vcc 对应为 1.024m。

当系统量程为 3m 时,测量距离为:L = 3096*Vout/Vcc(mm)。 当输出电压为 0V 对应距离为 0m,输出 Vcc 对应为 3.072m。


3.2引脚选择

想要使用ADC,需要确定使用的引脚是否有ADC外设功能。可以通过手册进行查看。在用户手册439页。

这里选择使用PA5的附加ADC功能。



3.3移植至工程

模块工程参考入门手册工程模板

移植步骤中的导入.c和.h文件与【CW32模块使用】DHT11温湿度传感器相同,只是将.c和.h文件更改为bsp_US016.c与bsp_US016.h。这里不再过多讲述,移植完成后面修改相关代码。

在文件bsp_US016.c中,编写如下代码。



/* * Change Logs: * Date           Author       Notes * 2024-06-20     LCKFB-LP    first version */#include "bsp_US016.h"#include "stdio.h"

//超声波量程 Range接地量程为1  Range接VCC量程为3  浮空量程为3//测试时,Range浮空,故量程为3

#define RANGE   0       //=0则量程为3米  =1则量程为1米
/****************************************************************** * 函 数 名 称:US016_GPIO_Init * 函 数 说 明:US016超声波模块引脚初始化 * 函 数 形 参:无 * 函 数 返 回:无 * 作       者:LC * 备       注:******************************************************************/void US016_GPIO_Init(void){    RCC_OUT_ENABLE();                // 使能GPIO时钟    RCC_OUT_ADC_ENABLE();        // 使能ADC时钟
   ANALOG_GPIO_ENABLE();        // PA05设定为模拟输入
   /* ADC配置 */    ADC_InitTypeDef ADC_InitStructure;                   // ADC初始化结构体    ADC_WdtTypeDef ADC_WdtStructure;                     // ADC看门狗结构体    ADC_SingleChTypeDef ADC_SingleChStructure;           // ADC单通道转换结构体
   // 配置ADC初始化结构体    ADC_InitStructure.ADC_OpMode = ADC_SingleChOneMode;  //单通道单次转换模式    ADC_InitStructure.ADC_ClkDiv = ADC_Clk_Div4;         // 时钟频率 = PCLK / 4 = 64MHz / 4 = 16MHz    ADC_InitStructure.ADC_SampleTime = ADC_SampTime5Clk; //5个ADC时钟周期    ADC_InitStructure.ADC_VrefSel = ADC_Vref_VDDA;       //VDDA参考电压    ADC_InitStructure.ADC_InBufEn = ADC_BufDisable;      //关闭跟随器    ADC_InitStructure.ADC_TsEn = ADC_TsDisable;          //关闭内置温度传感器    ADC_InitStructure.ADC_DMAEn = ADC_DmaDisable;        //不触发DMA    ADC_InitStructure.ADC_Align = ADC_AlignRight;        //ADC转换结果右对齐    ADC_InitStructure.ADC_AccEn = ADC_AccDisable;        //转换结果累加不使能
   //ADC模拟看门狗通道初始化    ADC_WdtInit(&ADC_WdtStructure);
   //配置单通道转换模式    ADC_SingleChStructure.ADC_DiscardEn = ADC_DiscardNull;      // 单通道ADC转换结果溢出保存    ADC_SingleChStructure.ADC_Chmux = CHANNEL_OUT_ADC;                         // 选择ADC转换通道,AIN5:PA05    ADC_SingleChStructure.ADC_InitStruct = ADC_InitStructure;   // ADC初始化结构体    ADC_SingleChStructure.ADC_WdtStruct = ADC_WdtStructure;     // ADC看门狗结构体
   ADC_SingleChOneModeCfg(&ADC_SingleChStructure);             // 初始化配置
   ADC_Enable(); //ADC使能
   ADC_SoftwareStartConvCmd(ENABLE);    //启动ADC转换
}
/********************************************************** * 函 数 名 称:ADC_GET * 函 数 功 能:读取一次ADC值 * 传 入 参 数:无 * 函 数 返 回:测量到的值 * 作       者:LCKFB * 备       注:**********************************************************/uint32_t ADC_GET(void){    ADC_SoftwareStartConvCmd(ENABLE);    //启动ADC转换
   uint32_t adcValue = ADC_GetConversionValue(); // 获取数据
   return adcValue;}
/****************************************************************** * 函 数 名 称:Get_ADC_Value * 函 数 说 明:对ADC值进行平均值计算后输出 * 函 数 形 参:num采集次数 * 函 数 返 回:对应扫描的ADC值 * 作       者:LC * 备       注:无******************************************************************/unsigned int Get_ADC_Value(unsigned int num){    unsigned int Data=0;    int i = 0;    for( i = 0; i < num; i++ )    {        /* 读取ADC常规组数据寄存器 */        Data += ADC_GET();    }
   Data = Data / num;
   return Data;}/****************************************************************** * 函 数 名 称:Get_distance * 函 数 说 明:读取测距距离 * 函 数 形 参:无 * 函 数 返 回:浮点型的测距的距离 * 作       者:LC * 备       注:量程为3米时距离公式为:L = (A*3072/4096)*(Vref/Vcc)量程为1米时距离公式为:L = (A*1024/4096)*(Vref/Vcc)                      Vref 为 ADC 的参考电压,Vcc 为 US-016 的电源电压******************************************************************/float Get_distance(void){    float distance = 0;    unsigned int d = Get_ADC_Value(50);    #if !RANGE        distance = d * 0.75;    #else        distance = d * 0.25;    #endif    return distance;}


在文件bsp_US016.h中,编写如下代码。



/*
* Change Logs: * Date           Author       Notes * 2024-06-20     LCKFB-LP    first version */#ifndef _BSP_US016_H_#define _BSP_US016_H_
#include "board.h"

#define RCC_OUT_ENABLE()          __RCC_GPIOA_CLK_ENABLE()#define RCC_OUT_ADC_ENABLE()      __RCC_ADC_CLK_ENABLE()
#define ANALOG_GPIO_ENABLE()      PA05_ANALOG_ENABLE()
#define CHANNEL_OUT_ADC           ADC_ExInputCH5
//采样次数#define SAMPLES         30
void US016_GPIO_Init(void);float Get_distance(void);#endif


四移植验证

在自己工程中的main主函数中,编写如下。



/* * Change Logs: * Date           Author       Notes * 2024-06-20     LCKFB-LP    first version */#include "board.h"#include "stdio.h"#include "bsp_uart.h"#include "bsp_US016.h"
int32_t main(void){    board_init();        // 开发板初始化
   uart1_init(115200);        // 串口1波特率115200
   US016_GPIO_Init();    printf("Demo Start\r\n");    while(1)    {        printf("距离障碍物 = %.2fCM\r\n\n",Get_distance() / 10 );        delay_ms(500);    }}


移植现象:距离20CM处摆放障碍物,输出换算后的实际距离。



模块移植成功案例代码:

链接:https://pan.baidu.com/s/13U2OqyPx4QOsL0W3Sq4bMg?pwd=LCKF

提取码:LCKF

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由唯独你没懂转载自武汉芯源(CW32生态社区公众号),原文标题为:【CW32模块使用】US-016超声波测距传感器,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

先楫半导体HPM 16 位ADC+ENET开发案例:以2MSPS进行采样,通过ENET LWIP TCP方式发送到上位机

本文以先楫半导体 HPM6300 开发板为例介绍以 2MSPS 采样率进行 16 位 ADC 采样并将采样数据通过 ENET LWIP TCP 的方式发送到上位机的应用,ADC 采样使用抢占转换模式、PWM 触发的方式,ENET LWIP TCP 每次发送 1024 个 16 位采样数据。在HPM6300EVK 上进行测试验证,验证结果表明该方案是可行的。

2023-12-06 -  设计经验 代理服务 技术支持 批量订货

基于CW32F030C8T6开发板的MQ-2烟雾检测传感器例程移植案例

MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。本文的目标是将例程移植至CW32F030C8T6开发板上【判断当前环境状况的功能】。

2024-12-07 -  设计经验 代理服务 技术支持 批量订货

基于CW32F030C8T6芯片通过智能控制技术完成智能小车项目代码和功能说明

本文介绍了使用CW32F030C8T6芯片完成的全国电子竞赛H题智能小车项目。项目核心是利用CW32F030C8T6芯片的强大处理能力和丰富外设支持实现智能控制。硬件方面,包括PWM电机控制、五路循迹模块、OLED显示和角度传感器。软件部分采用结构化编程,涵盖底层驱动、外设控制和主程序逻辑。主程序包含变量定义、任务执行、硬件初始化等,支持模式切换以应对不同竞赛场景。

2024-08-27 -  设计经验 代理服务 技术支持 批量订货

【应用】基于国产32位MCU芯片CW32F030C8T6的智能门锁方案,主频64MHz,具备低功耗多功能优势

智能门锁集成3D识别算法、接近检测、指纹输入模块,低功耗计算芯片等于一体,解锁快、功耗低、续航久,现武汉芯源推出一款MCU芯片CW32F030C8T6助力于智能门锁设计。

2023-03-14 -  应用方案 代理服务 技术支持 批量订货

RK3588核心板怎么选?为项目挑选合适核心板的八大建议

在信息爆炸的互联网海洋中,面对琳琅满目的RK3588核心板产品,您是否也曾感到眼花缭乱,难以抉择?究竟哪一款能够完美契合您的智能设备开发项目,让您在最短时间内找到最合适的伙伴,减少研发试错,加速产品验证、批量生产和上市进程?

2024-07-03 -  设计经验 代理服务 技术支持 批量订货

DHT11温湿度传感器基于CW32F030C8T6开发板上实现读取温湿度的功能操作示例

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。本文的目标是在CW32F030C8T6开发板上实现读取温湿度的功能。

2024-12-07 -  设计经验 代理服务 技术支持 批量订货

【经验】CW32F030C8T6单片机如何通过看手册配置时钟树

本章简单展示了如何查找手册来配置寄存器,且再次强调库函数的本质就是操作寄存器。单片机都会有一个时钟树,时钟树的图可以在编程手册(不是数据表和内核手册)中找到。部分单片机想要工作在高工作频率下,需要设置flash等待时间并打开缓存和预取指令使能。

2023-10-02 -  设计经验 代理服务 技术支持 批量订货

安信可星闪开发板与西门子PLC通信的应用探索

星闪技术作为一项中国原生的、具有竞争力的近距离无线通信技术,通过技术创新和标准体系建设,打破了传统蓝牙和Wi-Fi在特定应用领域的一些局限性,为物联网、车联网、工业互联网等场景带来了更高性能、更安全、更具成本效益的无线连接解决方案。随着相关产品的不断推出和生态系统的持续完善,星闪技术有望在全球范围内产生深远影响,成为未来短距离无线通信领域的重要力量。

2024-06-24 -  设计经验 代理服务 技术支持 批量订货

【CW32模块使用】雨滴传感器

文章介绍了雨滴传感器的工作原理和在汽车智能灯光系统、自动雨刷系统、智能车窗系统中的应用。传感器通过检测水滴的导电性来判断是否下雨,利用电极间的电导性变化来测量水滴存在。文章还提供了传感器模块的移植过程和代码示例,展示了如何将传感器数据读取和处理集成到CW32F030C8T6开发板上。

2024-12-04 -  设计经验 代理服务 技术支持 批量订货

【经验】基于CW32的超声波模块的应用

C-SR04超声波模块是一种常用的测距模块,其通过发射超声波并接收其反射信号来实现测距功能。具有成本低、精度高、使用简便等特点。本实验用到了CW32F030C8T6小蓝板、0.96寸OLED显示屏、HC-SR04超声波模块及Keil5开发环境。

2023-09-26 -  设计经验 代理服务 技术支持 批量订货

基于CW32的无刷直流空心杯电机无感方波控制驱动方案

本方案采用CW32F030C8T6作为主控芯片,采用无感方波控制算法控制无刷直流空心杯电机。CW32F030C8T6是一款高性能、低功耗的32位微控制器,具有丰富的片上外设资源,可以适合用于电机控制。无感方波控制算法是一种简单有效的电机控制算法,不需要使用霍尔传感器,可以降低硬件成本。

2024-04-23 -  应用方案 代理服务 技术支持 批量订货

先楫半导体HPM APPS v1.7.0上线啦!

先楫半导体发布了HPM APPS v1.7.0,包含多项更新和新功能,如HPM双网口环网通信方案、Ethercat主站应用方案、I2S DMA CHAIN应用方案、hpm_monitor服务、SPI控制器操作Nor flash应用案例等。这些更新旨在提升微控制器性能,简化开发过程,并加速程序开发。

2024-11-28 -  设计经验 代理服务 技术支持 批量订货

【经验】基于武汉芯源半导体CW32F030C8T6和启英泰伦CI-C22GS02制作的智能语音分类垃圾桶的配置教程

简介:基于武汉芯源半导体CW32F030C8T6和启英泰伦CI-C22GS02制作的智能语音分类垃圾桶,能够实现识别语音来判断垃圾种类,同时打开相应的垃圾桶,可外接普通按键或者触摸按键,也可以外接红外接近传感器来打开对应的垃圾桶。

2023-08-05 -  设计经验

低成本搭建网络,远距离传输达4.8km的LoRaWAN模块

安信可科技推出了Ra-08/Ra-08H系列LoRaWAN模组,具备低功耗、远距离传输等特性,适用于物联网应用。这些模组基于ASR6601CB芯片,内置128KB Flash和16KB SRAM,支持多种调制模式和接口,简化了开发流程。然而,Ra-08需通过LoRaWAN网关进行数据传输,且不支持Arduino开发。

2024-07-13 -  设计经验 代理服务 技术支持 批量订货

CW32F030C8T6 from Wuhan Core Source is Used in Combustible Gas Detector, Ensures Safe Operation in Harsh Electromagnetic Interference Environments

With the advancement of electronic science and technology, the combustible gas detector has become an essential tool for safety protection. This detector converts the concentration of leaked combustible gases into electrical signals and issues alarm signals to remind staff to take safety measures. The CW32F030C8T6, as the main control chip, provides excellent system protection with its high-precision ADC, fast conversion speed, high reliability, strong ESD protection, and strong anti-interference characteristics, ensuring safe operation in harsh electromagnetic interference environments.

2024-11-26 -  应用方案 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:华芯微特

品类:开发板

价格:¥225.0000

现货: 1,000

品牌:华芯微特

品类:开发板

价格:¥225.0000

现货: 1,000

品牌:广芯微电子

品类:模块

价格:¥13.0000

现货: 305

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥65.0000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:开发板

价格:¥259.1316

现货:48

品牌:RENESAS

品类:开发板

价格:¥4,100.0000

现货:20

品牌:迅为

品类:开发板

价格:¥378.2000

现货:15

品牌:RENESAS

品类:开发板

价格:¥9,093.1765

现货:8

品牌:RENESAS

品类:EVALUATION BOARD

价格:¥20,004.9883

现货:7

品牌:RENESAS

品类:开发工具

价格:¥234.0000

现货:7

品牌:RENESAS

品类:DEMO BOARD

价格:¥2,134.9768

现货:7

品牌:华普微电子

品类:开发板

价格:¥200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥2,200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥4,000.0000

现货:5

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

FR4/高频高速PCB加工

可加工PCB板层数1~40,最小线宽/间距内层: 2.5/3mil (H/H OZ base copper);最小线宽/间距外层: 3/3mil (H/H OZ base copper);成品交货尺寸范围:10 * 10mm~570 * 1200mm。板厚范围:0.4mm-10mm。支持通孔板、HDI板、柔性板、刚柔结合板打样、小批量及批量生产。

最小起订量: 1 提交需求>

PCB快板打样定制

可加工PCB层数:1-30层;板材类型:FR4板/铝基板/铜基板/刚扰结合板/FPC板/高精密板/Rogers高频板;成品尺寸:5*5mm~53*84cm;板厚:0.1~5.0mm。

最小起订量: 1 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面