色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【CW32模塊使用】US-016超聲波測距傳感器

CW32生態社區 ? 2024-11-28 12:02 ? 次閱讀

US-016是市場上唯有的一款模擬量輸出的超聲波測距模塊,輸出的模擬電壓和距離值成正比,可以方便的和其他系統相連,US-016工作穩定可靠。

US-016超聲波測距模塊可實現2cm~3m的非接觸測距功能,供電電壓為5V,工作電流為3.8mA,支持模擬電壓輸出,工作穩定可靠。本模塊根據不同應用場景可設置成不同的量程(大測量距離分別為1m和3m);當Range管腳懸空時,量程為3m。US-016能將測量距離轉化為模擬電壓輸出,輸出電壓值與測量距離成正比。

一、模塊來源

模塊實物展示:

wKgZPGdH602AfIZLAAAuAFA24Bs131.jpg


資料下載鏈接:
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功能。

wKgZO2dH602AMZBJAACDZm9JaKk124.jpg

有ADC功能的引腳

wKgZPGdH606AenzlAAELyJhjS-g296.jpg

接線表

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 Startrn");
    while(1)
    {
        printf("距離障礙物 = %.2fCMrnn",Get_distance() / 10 );
        delay_ms(500);
    }
}

移植現象:距離20CM處擺放障礙物,輸出換算后的實際距離。

wKgZO2dH60-ADr5PAAD3qllF1RU892.jpg

模塊移植成功案例代碼:

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

提取碼:LCKF

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2550

    文章

    51035

    瀏覽量

    753063
  • 超聲波傳感器

    關注

    18

    文章

    583

    瀏覽量

    35927
  • 超聲波測距模塊

    關注

    1

    文章

    8

    瀏覽量

    5002
  • CW32
    +關注

    關注

    1

    文章

    203

    瀏覽量

    626
收藏 人收藏

    評論

    相關推薦

    超聲波傳感器測距電路

    超聲波傳感器測距電路超聲波測距電路原理圖本系統的特點是利用單片機控制超聲波的發射和對
    發表于 10-20 08:43

    基于超聲波傳感器測距系統設計

    公司生產的Polaroid 6500系列超聲波距離模塊和600系列傳感器,微處理采用了ATMEL公司的AT89C51。本文對此超聲波
    發表于 12-15 10:20

    超聲波測距原理

    為此,文中嘗試以單片機AT89S52為核心,利用一對40 kHz壓電超聲傳感器設計一款體積較小、價格低廉、精度較高、具有溫度補償、實時LCD顯示和報警的超聲波測距儀。1
    發表于 04-25 11:32

    基于STM32超聲波測距設計的合集

    和TFTLCD顯示距離等參數。US-100帶有溫度傳感器,對超聲波的聲速進行補償,提高測量精度。超聲波測距是一種典型的非接測量方式。
    發表于 09-05 16:13

    超聲波傳感器測距系統如何設計

    超聲波測距主要應用于非接觸測量領域。目前測距專用超聲波系統由于成本高等的原因,在一些中小規模的應用領域中難以廣泛應用。隨著汽車智能化的發展,需要研制出能夠以更高的精度
    發表于 04-23 07:34

    超聲波測距原理

    1.超聲波測距原理超聲波是利用反射的原理測量距離的,被測距離一端為超聲波傳感器,另一端必須有能反
    發表于 07-21 07:01

    HC-SR04超聲波測距模塊原理

    、HC-SR04超聲波測距模塊原理1.模塊簡介HC-SR04超聲波模塊常用于機器人避障、物體測距
    發表于 12-06 07:14

    超聲波傳感器測距方法詳解

    Hagisonic 超聲波測距傳感器模塊 - HG-C40U。??超聲波測距
    的頭像 發表于 03-29 08:27 ?3.5w次閱讀
    <b class='flag-5'>超聲波</b><b class='flag-5'>傳感器</b><b class='flag-5'>測距</b>方法詳解

    US-100超聲波傳感器的電氣參數和進行測距的代碼免費下載

    本文檔的主要內容詳細介紹的設計US-100超聲波傳感器的電氣參數和進行測距的代碼免費下載。
    發表于 04-17 17:28 ?10次下載
    <b class='flag-5'>US</b>-100<b class='flag-5'>超聲波</b><b class='flag-5'>傳感器</b>的電氣參數和進行<b class='flag-5'>測距</b>的代碼免費下載

    US-100 超聲波測距模塊

    US-100 超聲波測距模塊
    發表于 11-15 18:02 ?13次下載

    收發一體超聲波測距傳感器模塊_空氣中70KHZ超聲波換能器傳感器探頭DYA-70-03A測距探頭3米量程...

    稱,HY-SRF05超聲波模塊 超聲波測距模塊 超聲波傳感器,HC-SR04
    發表于 11-23 18:07 ?23次下載
    收發一體<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>離<b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b>_空氣中70KHZ<b class='flag-5'>超聲波</b>換能器<b class='flag-5'>傳感器</b>探頭DYA-70-03A<b class='flag-5'>測距</b>探頭3米量程...

    樹莓派連接超聲波測距傳感器

    今天我們來玩超聲波測距傳感器。我購買的是型號是US-015,長得是下面這個樣子。
    的頭像 發表于 07-02 15:14 ?1704次閱讀
    樹莓派連接<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>傳感器</b>

    基于CW32超聲波模塊的應用

    C-SR04超聲波模塊是一種常用的測距模塊,其通過發射超聲波并接收其反射信號來實現測距功能。
    的頭像 發表于 09-06 09:13 ?974次閱讀

    超聲波傳感器的工作原理 超聲波傳感器的應用

    超聲波傳感器是一種基于超聲波的無接觸式測距傳感器,可以廣泛應用于工業、醫療、軍事等領域。本文將詳細介紹
    的頭像 發表于 01-18 14:04 ?1696次閱讀

    超聲波測距原理 超聲波測距傳感器接線方法

    超聲波測距是一種常用的測距方法,通過發射超聲波脈沖,利用其在空氣中傳播速度較快的特點,測量出從傳感器到目標物體的時間差,并進而計算出距離。
    的頭像 發表于 01-22 15:22 ?2391次閱讀
    主站蜘蛛池模板: 男生互捏jiji的故事| www亚洲欲色成人久久精品| 无码99久热只有精品视频在线| 女人被弄到高潮叫床免| 老师你狠狂| 口内射精颜射极品合集| 久久观看视频| 久久伦理影院| 久久婷婷久久一区二区三区| 久久88综合| 久久婷婷色一区二区三区| 久久综合中文字幕佐佐木希| 久久久性色精品国产免费观看| 久久久无码AV精品亚洲A片软件| 久久精品国产亚洲AV未满十八| 狠狠久久免费视频在线| 娇小老少配xxxxx| 久久精品国产福利电影网| 久久国产高清字幕中文| 久久综合色一综合色88| 免费无码又爽又黄又刺激网站 | 亚洲人精品午夜射精日韩| 亚洲国产av| 伊人久久精品午夜| 最新国产亚洲亚洲精品视频| 97国产精品人妻无码免费| chinese耄耋70老太性| 成人在免费视频手机观看网站 | 野花韩国高清完整版在线| 伊人国产视频| 97视频免费观看2区| 凹凸精品视频分类视频| 国产成人高清在线观看播放| 国产人妻精品无码AV在线五十路| 花蝴蝶在线高清视频观看免费播放| 久久电影午夜| 欧美z000z猪| 特级淫片大乳女子高清视频| 亚洲国产成人综合| 最新国产麻豆精品| 动漫美女喷水|