超声波模块应用
超聲波原理:
超聲波是利用反射的原理測(cè)量距離的,被測(cè)距離一端為超聲波傳感器,另一端必須有能反射超聲波的物體。測(cè)量距離時(shí),將超聲波傳感器對(duì)準(zhǔn)反射物發(fā)射超聲波,并開始計(jì)時(shí),超聲波在空氣中傳播到達(dá)障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計(jì)時(shí),然后根據(jù)超聲波的傳播速度和計(jì)時(shí)時(shí)間就能計(jì)算出兩端的距離。
超聲波測(cè)距模塊:
超聲波測(cè)距模塊有好多種類型,目前比較常用的有URM37超聲波傳感器默認(rèn)是232接口,可以調(diào)為TTL接口,URM05大功率超聲波傳感器測(cè)試距離能到10米,算是目前來說測(cè)試距離比較遠(yuǎn)的一款了,另外還有比較常用的國(guó)外的幾款SRF系列的超聲波模塊,目前的超聲波模塊精度能到1cm
超聲波初始化部分代碼:
sbit Trig = P1^1; //給trig和echo分配接口 sbit Echo = P1^0;void InitUlartsonic(){ //初始化超聲波,讓trig置0,再置1產(chǎn)生超聲波,最后再置0Trig = 0;Trig = 1;delay10us(); //定義了一個(gè)函數(shù)讓高電平時(shí)間延遲10usTrig = 0; }void Stime(){ //開始計(jì)時(shí)TH0=0;TL0=0;TR0=1; }void Etime(){ //關(guān)閉計(jì)時(shí)TR0=0; }main函數(shù)中的部分代碼:
while(1){InitUlartsonic();while(Echo != 1); //echo等于1時(shí),退出,開始計(jì)時(shí)Stime();while(Echo != 0); //echo等于0時(shí),退出,結(jié)束計(jì)時(shí)Etime();time =GetUT(); //用time接收超聲波的時(shí)間dis = GetDis(); //用dis接收超聲波的距離總結(jié)
- 上一篇: 金山U盘卫士V1.5 绿色版
- 下一篇: php 猴子补丁,如何解决Compose