RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

如何使用超聲波模塊

lhl545545 ? 來源:FPGA之旅 ? 作者:FPGA之旅 ? 2022-09-26 09:59 ? 次閱讀

一. 簡介

本例為FPGA之旅設(shè)計99例中的第十五例,本例將介紹如何使用超聲波模塊,進行測距。這個模塊在智能小車中使用的比較多,使用起來比較方便,僅需四個引腳即可驅(qū)動。

二. 超聲波測距方法

先來了解一下模塊的四個引腳

VCC:接3.3V - 5V 供電

GND:接地

Trig:控制超聲波進行測距引腳,默認為高電平,當(dāng)其拉高后,模塊啟動超聲波測距。

Echo:用于表示超聲波發(fā)送到接收到的時間,默認為低電平,高電平表示超聲波在空氣中傳播的時間。

從圖中,可以很清

f4c34b12-3bfb-11ed-9e49-dac502259ad0.png

楚地看到模塊的工作原理

首先,F(xiàn)PGA先將Trig引腳拉高10us,通知模塊啟動超聲波測距。然后模塊內(nèi)部發(fā)出8個40khz的脈沖,即發(fā)送超聲波,這個FPGA是不需要管的。發(fā)送完成之后,Echo就拉高,直到接收到返回到的超聲波,拉高時間表示離物體的距離。通過下面格式可以轉(zhuǎn)換到CM。

D =(拉高時間 * 聲速(340M/S)) /2

除以二是以為從發(fā)送到接收,一個來回。

三. 代碼實現(xiàn)

通過上面的工作原理圖可以看出,狀態(tài)機一共可以分為以下幾個狀態(tài)

空閑態(tài) : 沒有測距請求時,所處的狀態(tài)

trig態(tài) : 當(dāng)測距請求到來時,所處的狀態(tài),這個狀態(tài)中,會將trig信號拉高

echo態(tài): 當(dāng)trig態(tài)結(jié)束的時候,轉(zhuǎn)入echo態(tài),這個狀態(tài)中,將會檢測echo信號高電平的持續(xù)時間

結(jié)束態(tài) :echo信號變?yōu)榈碗娖降臅r候,進入結(jié)束態(tài),并且根據(jù)echo高電平的持續(xù)時間,計算距離

localparam  S_IDLE      = 'd0;localparamS_SEND_Trig='d1;localparam  S_WATI_Echo   = 'd2;localparamS_END='d3;

主要代碼是狀態(tài)的轉(zhuǎn)移以及trig態(tài)的計數(shù)和echo高電平計數(shù),代碼如下。

always@(posedge sys_clk or negedge rst_n)begin if( rst_n == 1'b0)  trig_cnt <= 'd0; ?else if (state == S_SEND_Trig) ? ?trig_cnt <= trig_cnt + 1'b1; ?else ? ?trig_cnt <= 'd0;end
always@(posedge sys_clk or negedge rst_n)begin ?if( rst_n == 1'b0) ? ?echo_cnt <= 'd0; ?else if(state == S_WATI_Echo && echo == 1'b1) ? ?echo_cnt <= echo_cnt + 1'b1; ?else if(state == S_END) ? ?echo_cnt <= echo_cnt; ?else ? ?echo_cnt <= 'd0;end

這基本上完成了全部驅(qū)動代碼的編寫,模塊比較簡單,下面通過signal tap抓取一下波形圖

f4eb04fe-3bfb-11ed-9e49-dac502259ad0.png

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1193

    瀏覽量

    50409
  • 高電平
    +關(guān)注

    關(guān)注

    6

    文章

    148

    瀏覽量

    21366
  • 超聲波模塊
    +關(guān)注

    關(guān)注

    1

    文章

    21

    瀏覽量

    13500

原文標(biāo)題:FPGA實現(xiàn)超聲波測距

文章出處:【微信號:FPGA之旅,微信公眾號:FPGA之旅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    超聲波模塊參考

    說明: DYP-ME007超聲波模塊AVRmega16程序 DYP-ME007 超聲波模塊DYP-ME007和89c51的數(shù)據(jù)資料 超聲波模塊參考
    發(fā)表于 08-12 10:27

    超聲波模塊參考

    超聲波模塊參考
    發(fā)表于 08-20 23:31

    超聲波模塊參考

    超聲波模塊參考
    發(fā)表于 07-22 20:33

    超聲波模塊的原理

    最近在造小車 需要用到超聲波模塊 現(xiàn)將調(diào)試時用到的代碼分享出來。所用超聲波模塊為HC-SR04單片機開發(fā)板是吳鑒鷹的先理解超聲波模塊的原理,它有四個接口 Vcc Trig Echo Gnd 。Vcc
    發(fā)表于 07-21 08:54

    有關(guān)超聲波模塊的基本知識總結(jié)

    什么是超聲波模塊?超聲波模塊的連接問題有哪些?超聲波模塊編程思路有哪些步驟?
    發(fā)表于 08-06 06:34

    常見的超聲波模塊有哪些

    常用模塊程序詳解——超聲波模塊HC-SR04前言超聲波模塊小介紹原理和兩種程序原理程序前言首先,來說說大伙常見的超聲波模塊,一般就倆,HC-SR04和HY-SRF05,這兩種
    發(fā)表于 12-06 07:24

    超聲波模塊測量距離防碰撞分析

    超聲波模塊測量距離防碰撞1.超聲波測距:原理:超聲測距其實就是通過單片機控制超聲波模塊發(fā)出一系列超聲波,當(dāng)
    發(fā)表于 01-05 06:02

    怎么使用STM32F1驅(qū)動超聲波模塊

    STM32驅(qū)動超聲波模塊實驗開篇閑篇:耀風(fēng)(鄙人)是一個STM32才入門的小白所以文章寫的不是很嚴謹,如果有錯誤歡迎大家指正。我寫這篇文章的目的有兩個:第一,記錄本次實驗方便自己以后查看(畢竟卡了我
    發(fā)表于 01-17 07:32

    超聲波模塊的相關(guān)資料分享

    340m/s)推算距離(注意:一來一回是兩次的距離)。在編寫程序前首先要了解超聲波模塊在CT107D上的驅(qū)動方式:向超聲波模塊發(fā)送8次脈沖藍橋板子上的探頭需要的為40KHZ的脈沖(由原理...
    發(fā)表于 01-21 07:35

    超聲波模塊的編程資料分享

    歷年的省賽都沒有考到超聲波模塊,但是超聲波模塊還是非常重要的一個模塊,還有就是既然很久沒有考過,那么突然考一波也是很有可能的喔。還不抓緊學(xué)起來。其實呢超聲波模塊的編程并不難,其實非常的
    發(fā)表于 02-23 07:05

    超聲波模塊為什么測距不準?

    超聲波模塊為什么測距不準,只有在拿一本書靠近模塊時,測得比較準,但是測到人的距離就不怎么準
    發(fā)表于 10-31 07:23

    HC-SRF04超聲波模塊

    超聲波模塊簡單用法,用于diy小制作,包括c程序
    發(fā)表于 05-13 16:06 ?0次下載

    超聲波模塊

    超聲波模塊的資料,在使用的或者學(xué)習(xí)的燒友可以來看看。
    發(fā)表于 06-17 16:33 ?32次下載

    超聲波模塊電路工作原理圖

    超聲波模塊電路工作原理圖
    發(fā)表于 03-10 09:38 ?55次下載
    <b class='flag-5'>超聲波模塊</b>電路工作原理圖

    基于CW32的超聲波模塊的應(yīng)用

    C-SR04超聲波模塊是一種常用的測距模塊,其通過發(fā)射超聲波并接收其反射信號來實現(xiàn)測距功能。
    的頭像 發(fā)表于 09-06 09:13 ?974次閱讀
    RM新时代网站-首页