|
注:方法已經(jīng)過(guò)時(shí),新方法使用timer去計(jì)時(shí),請(qǐng)看https://code.google.com/p/arduino-new-ping/
超聲波傳感器適用于對(duì)大幅的平面進(jìn)行靜止測(cè)距。普通的超聲波傳感器測(cè)距范圍大概是2cm~450cm,分辨率3mm(淘寶賣(mài)家說(shuō)的,筆者測(cè)試環(huán)境沒(méi)那么好,個(gè)人實(shí)測(cè)比較穩(wěn)定的距離10cm~2m左右,超過(guò)此距離就經(jīng)常有偶然不準(zhǔn)確的情況發(fā)生了,當(dāng)然不排除筆者技術(shù)問(wèn)題。)
測(cè)試對(duì)象是淘寶上面最便宜的SRF-04超聲波傳感器,有四個(gè)腳:5v電源腳(Vcc),觸發(fā)控制端(Trig),接收端(Echo),地端(GND)
附:SRF系列超聲波傳感器參數(shù)比較
http://www.acroname.com/robotics/info/articles/devantech/srf.html
012929fin9fr8q8q2i2iik.jpg (23.65 KB, 下載次數(shù): 102)
下載附件
2016-4-14 04:11 上傳
模塊工作原理:
- 采用IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào);
- 模塊自動(dòng)發(fā)送8個(gè)40KHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;
- 有信號(hào)返回,通過(guò)IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間.測(cè)試距離=(高電平時(shí)間*聲速(340m/s))/2;
電路連接方法:
012930bu230wfvkzf23ogv.gif (20 KB, 下載次數(shù): 99)
下載附件
2016-4-14 04:11 上傳
Arduino程序例子:
const int TrigPin = 2;
const int EchoPin = 3;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低電平發(fā)一個(gè)短時(shí)間脈沖去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH) / 58.0; //將回波時(shí)間換算成cm
cm = (int(cm * 100.0)) / 100.0; //保留兩位小數(shù)
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
}
172919oymwkpkq3c747ew3.jpg (19.5 KB, 下載次數(shù): 102)
下載附件
2016-4-14 04:11 上傳
支持,正好找了一個(gè)傳感器,用手水平轉(zhuǎn)了一圈掃的數(shù)據(jù)~~
150143zs77y8qphi68s28q.jpg (28.25 KB, 下載次數(shù): 101)
下載附件
2016-4-14 04:11 上傳
右上的平面是電腦的屏幕,旁邊突出來(lái)的是熱水壺,右下應(yīng)該是本人(那個(gè)尖尖是啥玩意),左下的平面是座位的隔板,左邊的突出是我的包。左上是空檔,超過(guò)100cm的都按100算了。
這種方式可以用來(lái)做為智能車(chē)判斷路徑的依據(jù)哎,一邊走一邊分析數(shù)據(jù),就像即時(shí)戰(zhàn)略游戲的戰(zhàn)爭(zhēng)黑霧設(shè)計(jì)一樣,我們的小車(chē)就是一個(gè)探路兵。
|
|