前邊我們已經詳細的講解了樹莓派控制超聲波模組測距(和超聲波控制蜂鳴器模組發聲(
今天我們就來看看怎麼把兩個模組全都應用起來,做乙個防盜裝置。
先來看一下各個引腳的連線方式(需要七根母對母的杜邦線):
超聲波模組:
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赫茲的聲波稱為 超聲波 因其方向性好,穿透能力強,易於獲得較集中的聲能,在水中傳播距離遠,可用於測距 測速 清洗 焊接 碎石 殺菌消毒等。在醫學 軍事 工業 ...