樹莓派編寫超聲波模組程式

2021-09-26 13:21:21 字數 1689 閱讀 4348

初始化

在程式的開始的時候需要呼叫上面的任意的函式來對wiringpi 進行初始化,否則你的程式不能正常工作。

int wiringpisetup(void);
設定引腳電平

void pinmode(int pin,int mode)

引數說明:

pin:引腳編號(根據wiringpi的引腳說明圖找到各個引腳的編號)

mode:電平設定-input(輸入電平)、output(輸出電平)

給指定引腳寫入電平

void digitalwrite(int pin,int value)

引數說明:

pin:引腳編號

value:高低電平-high(高電平)、low(低電平)

讀取指定引腳編號

digitalread(int pin);
首先學會掌握以上的函式,我們就可以簡單實現超聲波模組程式的編寫

超聲波模組的如何測距?

1、向 trig 腳傳送乙個持續 10us 的脈衝訊號。

2. 接收到樹莓派傳送的脈衝訊號,開始傳送超聲波 ,並把 echo置為高電平。 然後準備接收返回的超聲波。

3. 當接收到返回的超聲波時,把 echo 置為低電平。

計算距離公式=聲波速度x時間間隔(聲波速度:340m/s)

#include #include #include #define echo 2 //將超聲波模組的echo接到引腳2

#define trig 3 //將超聲波模組的echo接到引腳3

void chaoshengbo_init()

void get_distance()

int main()

return 0;

}

補充:c語言如何獲取時間

標頭檔案:#include

time() 獲取當前時間(以秒數表示)

struct tmgmtime(const time_ttimep); 獲取當前時間和日期

int gettimeofday ( struct timeval * tv , struct timezone * tz ) 獲取當前時間

char *ctime(const time_t *timep); 將時間日期以字串格式表示

struct tm *localtime(const time_t * timep); 獲取當前時間和日期並轉換為本地時間

time_t mktime(strcut tm * timeptr); 將時間轉換成經過的秒數

int settimeofday ( const struct timeval *tv,const struct timezone *tz); 設定當前時間戳

time_t 是乙個長整型數

tm 結構體型別

timeval 包含秒和微秒的結構體

樹莓派wiringpi中的延遲函式

void delay (unsigned int howlong)

void delaymicroseconds (unsigned int howlong)//延時微秒

樹莓派io口 樹莓派 超聲波模組基礎應用

hc sr04超聲波模組的優勢及應用領域 hc sr04效能穩定,測度距離精確,模組高精度,盲區小。常應用領域於 機械人避障 物體測距 液位檢測 公共安防 停車場檢測等。超聲波測距模組工作原理 採用 io 口 trig 觸發測距,給最少 10us 的高電平信呈。模組自動傳送 8 個 40khz 的方...

超聲波模組驅動

思路哈 我打算程式執行一次傳送一次觸發訊號,在程式開頭,就不精確延時幾個指令週期,然後用外部中斷 來個中斷圖 使用中斷0吧 再看看定時器,打算用定時器4 stc創新的,嘿嘿看看靠不靠譜 我說呢,stc15w4k32s4不是單時鐘週期嗎,定時11.0592m晶振怎麼弄,原來這裡可以控制系統時鐘分頻。最...

超聲波模組應用

超聲波原理 超聲波是利用反射的原理測量距離的,被測距離一端為超聲波感測器,另一端必須有能反射超聲波的物體。測量距離時,將超聲波感測器對準反射物發射超聲波,並開始計時,超聲波在空氣中傳播到達障礙物後被反射回來,感測器接收到反射脈衝後立即停止計時,然後根據超聲波的傳播速度和計時時間就能計算出兩端的距離。...