樹莓派超聲波測距 蜂鳴器(c語言)

2021-10-08 03:54:27 字數 1830 閱讀 8212

前邊我們已經詳細的講解了樹莓派控制超聲波模組測距(和超聲波控制蜂鳴器模組發聲(

今天我們就來看看怎麼把兩個模組全都應用起來,做乙個防盜裝置。

先來看一下各個引腳的連線方式(需要七根母對母的杜邦線):

超聲波模組:

1.vcc:接5v電源(接1號引腳)

2.trig:輸出埠(接16號引腳)

3.echo:輸入埠(接18號埠)

4.gnd:接地端(接6號埠)

蜂鳴器模組

1.gnd 接地引腳(接樹莓派14號引腳)

2.i/o     輸入輸出引腳(接樹莓派11號引腳——gpio.0)

3.vcc  接電源引腳(接樹莓派4號引腳)

接下來附上c語言**:

#include #include #include #define trig 4

#define echo 5

#define voice 0

void ultrainit(void)

float dismeasure(void)

*/struct timeval tv2;

long start=0,stop=0;

digitalwrite(vdice,low);

digitalwrite(trig,low);

delaymicroseconds(2);

digitalwrite(trig,high);

delaymicroseconds(10);

digitalwrite(trig,low);

while(!(digitalread(echo) == 1));

gettimeofday(&tv1,null);

while(!(digitalread(echo) == 0));

gettimeofday(&tv2,null);

start = tv1.tv_sec * 1000000 + tv1.tv_usec;

stop = tv2.tv_sec * 1000000 + tv2.tv_usec;

return (float)(stop - start) / 1000000*34000 / 2;

}void dovoice(void)

}int main()

ultrainit();

while(1)else

olddis=dis;

}delay(1000);

} return 0;

}

我們這個程式的思想為利用超聲波測距,記錄上一次超聲波測距的距離,和本次超聲波測距的距離比較,如果距離相差在30cm以上,則蜂鳴器報警。思想和程式設計都相對簡單。

如果大家在閱讀程式的過程中發現有的函式不清楚效果,請移步部落格:

本次實驗是在乙個新的領域的第一次嘗試,以前從來沒有接觸過基於樹莓派的程式開發。剛開始時遇到了許多的問題:

1.樹莓派系統燒錄錯誤,當時搞了很長時間。

2.實驗器材的選擇,對於我來說選擇強迫症真是乙個可怕的東西,買了一大堆沒用的東西回來,包括但不限於3.5寸螢幕、樹莓派引腳擴充套件板、170孔麵包板(太小了)、搖桿模組、4*4薄膜鍵盤、溫度感測器、一路繼電器、電風扇。開始之前心很大,想做一些了不起的東西,到最後時間不夠了才反應過來還是從簡單的做起吧

3.公對公、母對母,公對母的杜邦線各40條……根本用不上這麼多,qwq,難受

4.c語言的**以及教程是真的難找,好不容易找到一篇介紹wiringpi的部落格,頓時如獲至寶,現在市面上的樹莓派教材基本是基於python的,python是一門很好用的語言,但是老師要求使用c語言我也沒有辦法呀

5.github很有用,但是你要會用。學會合理且優雅的移植**是乙個程式猿的必修課。

樹莓派C語言超聲波感測器測距

分享乙個樹莓派超聲波測距教程。非常基礎的小製作,可以激發一下樹莓派或其它基礎嵌入式開發興趣。首先準備乙個超聲波感測器 這裡是hc hr04型 樹莓派及連線排線。參考對照表將感測器引腳與樹莓派連線,連線方式不唯一,一定仔細連線。感測器vcc引腳連線樹莓派5v引腳,gnd連線0v接地引腳,trig ec...

超聲波測距程式

利用51微控制器實現超聲波測距,也是大二做得,當時沒有照相機,無法提供 比較遺憾,這個程式,有很多問題,但是還是實現了測距,誤差兩厘公尺,範圍從20cm 500cm include define uchar unsigned char define uint unsigned int define ...

超聲波測距初識

人類耳朵能聽到的聲波頻率為20hz 20khz。當聲波的振動頻率大於20khz或小於20hz時,我們便聽不見了。因此,我們把頻率高於20000赫茲的聲波稱為 超聲波 因其方向性好,穿透能力強,易於獲得較集中的聲能,在水中傳播距離遠,可用於測距 測速 清洗 焊接 碎石 殺菌消毒等。在醫學 軍事 工業 ...