HCSR04超聲波感測器驅動

2022-07-05 16:00:14 字數 2285 閱讀 9919

hc_sr04

是一款使用較為廣泛的超聲波測距模組

,模組圖如下

該模組具有四個引腳

,分別為

vcc gnd trig echo,

其中vcc

gnd為供電腳

trig

為測距觸發引腳

,echo

為測距輸入引腳

該模組的驅動模式為

控制口發乙個

10us

以上的高電平

,就可以在接收口等待高電平輸出

.一有輸出就可以開定時器計時

,當此口變為低電平時就可以讀定時器的值

,此時就為此次測距的時間

,方可算出距離

.如此不斷的週期測

,就可以達到你移動測量的值了

模組工作原理如下

(1)採用

io觸發測距,給至少

10us

的高電平訊號

;(2)

模組自動傳送8個

40khz

的方波,自動檢測是否有訊號返回;

(3)有訊號返回,通過

io輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間

(4計算測試距離測試距離

=(高電平時間*聲速

(340m/s))/2;

根據工作原理

,我們可以選擇兩種模式驅動

1.       採用中斷

+定時器方式,將

echo

定義為上公升沿下降沿都能觸發中斷

,trig

觸發之後

,echo

高電平進中斷開啟定時器

,echo

低電平關閉定時器並統計定時器計數值

2.       採用普通

io+定時器模式

,觸發之後等待

echo響應,

響應時開啟定時器,直到

echo

恢復低關閉定時器

,獲取時間

1:此模組不宜帶電連線,如果要帶電連線,則先讓模組的

gnd端先連線。否則會影響

模組工作。

2:測距時,被測物體的面積不少於

0.5平方公尺且要盡量平整。否則會影響測試結果。

詳細驅動**如下所示

hcsr04.c

#include "hcsr04.h"

#define hcsr04_port gpiob

#define hcsr04_clk rcc_apb2periph_gpiob

#define hcsr04_trig gpio_pin_5

#define hcsr04_echo gpio_pin_6

#define trig_send pbout(5)

#define echo_reci pbin(6)

u16 mshccount = 0;//ms計數

void hcsr04init(u32 nvic_prioritygroup,u32 preemptionpriority,u32 subpriority)

static void opentimerforhc() //開啟定時器

static void closetimerforhc() //關閉定時器

//定時器6中斷服務程式

void tim6_irqhandler(void) //tim3中斷

}u32 getechotimer(void)

//一次獲取超聲波測距資料 兩次測距之間需要相隔一段時間,隔斷迴響訊號

void hcsr04getlength(u32* length)

hcsr04.h

#ifndef __hcsr04_h

#define __hcsr04_h

#include "stm32f10x.h"

#include "delay.h"

#include "ioremap.h"

#include "common.h"

//超聲波模組初始化

void hcsr04init(u32 nvic_prioritygroup,u32 preemptionpriority,u32 subpriority);

//超聲波模組一次距離獲取

//返回0 成功

//返回1 失敗

void hcsr04getlength(u32* length);

#endif

超聲波測距感測器初識之HC SR04

hc sr04超聲波測距模組可提供2cm 400cm的非接觸式距離感測功能,測距精度可達高到3mm 模組包括超聲波發射器 接收器和控制電路。其基本工作原理採用io口trig觸發測距,給至少10us的高電平訊號 模組自動傳送8個40khz的方波,自動檢測是否有訊號返回 有訊號返回,通過io口echo輸...

STM32f407驅動hc sr04超聲波測距模組

最近完了一下測距模組,本想挺簡單的乙個東西,卻折騰了好長時間。總算弄好了,貼到這裡和大家分享一下!hc sr04超聲波測距模組是一種被用爛了的感測器,它的優點是成本低,控制容易,但是掌握不好時序,還是會弄的人一頭霧水。本模組用使用方法如下 一.5v直流電壓供電,一般的微控制器上自帶的vcc都能驅動 ...

超聲波感測器 單介紹超聲波

超聲波是聲波的一部分,是人耳聽不見 頻率高於20khz的聲波,它和聲波有共同之處,即都是由物質振動而產生的,並且只能在介質中傳播 同時,它也廣泛地存在於自然界,許多動物都能發射和接收超聲波,其中以蝙蝠最為突出,它能利用微弱的超聲回波在黑暗中飛行並捕捉食物。但超聲還有它的特殊性質 如具有較高的頻率與較...