超聲波是振動頻率高于20KHz的機(jī)械波,它具有頻率高、波長短、繞射現(xiàn)象小、方向性好、能夠成為射線而定向傳播等特點,在工業(yè)、國防、生物醫(yī)學(xué)等方面有廣泛應(yīng)用,本篇介紹利用超聲波進(jìn)行測距。
1. 測距原理
超聲波傳感器的發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。根據(jù)計時器記錄的時間t,聲波在空氣中的傳播速度為340m/s,就可以計算出發(fā)射點距障礙物的距離s,即:s=340m/s × t / 2 。這就是所謂的時間差測距法。
2. 超聲波傳感器介紹
超聲波傳感器是將超聲波信號轉(zhuǎn)換成其他能量信號「通常是電信號」的傳感器。HC-SR04是比較常用的超聲波傳感器模塊,廣泛應(yīng)用于機(jī)器人測距、小車避障等場合。
主要參數(shù)
使用說明
- 采用Trig引腳觸發(fā)測距,給至少10us的高電平信號。
- 模塊自動發(fā)送8個40KHz的方波,自動檢測是否有信號返回。
- 有信號返回后,通過Echo引腳輸出高電平,通過高電平持續(xù)時間獲取到時間量。
3. 實驗材料
- Uno R3開發(fā)板
- 配套USB數(shù)據(jù)線
- 面包板及配套連接線
- HC-SR04超聲波傳感器模塊
4. 實驗步驟
1. 根據(jù)原理圖搭建電路圖。
超聲波傳感器模塊的VCC、GND分別連接到開發(fā)板的5V、GND。傳感器的Trig引腳、Echo引腳分別連接到開發(fā)板的數(shù)字引腳2、3。
2. 新建sketch,拷貝如下代碼替換自動生成的代碼并進(jìn)行保存。
1#define TrigPin 2
2#define EchoPin 3
3
4float Value_cm;
5
6void setup() {
7 Serial.begin(9600);
8 pinMode(TrigPin, OUTPUT);
9 pinMode(EchoPin, INPUT);
10}
11
12void loop() {
13 digitalWrite(TrigPin, LOW); //低高低電平發(fā)一個短時間脈沖去TrigPin
14 delayMicroseconds(2);
15 digitalWrite(TrigPin, HIGH);
16 delayMicroseconds(10);
17 digitalWrite(TrigPin, LOW);
18 Value_cm = float( pulseIn(EchoPin, HIGH) * 17 ) / 1000;
19 //讀取一個引腳的脈沖(HIGH或LOW)。例如,如果value是HIGH,pulseIn()會等待引腳變?yōu)镠IGH,開始計時,再等待引腳變?yōu)長OW并停止計時。
20 //接收到的高電平的時間(us)*340m/s/2=接收到高電平的時間(us)*17000cm/1000000us = 接收到高電平的時間*17/1000(cm)
21 Serial.print(Value_cm);
22 Serial.println("cm");
23 delay(1000);
24}
3. 連接開發(fā)板,設(shè)置好對應(yīng)端口號和開發(fā)板類型,進(jìn)行程序下載。
程序下載
5. 實驗現(xiàn)象
打開串口監(jiān)視器,波特率設(shè)置成與程序中相一致的9600。改變超聲波傳感器與遮擋物的距離,監(jiān)視器中將顯示對應(yīng)的距離。
實驗現(xiàn)象
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28109瀏覽量
205863 -
接收機(jī)
+關(guān)注
關(guān)注
8文章
1178瀏覽量
53377 -
電信號
+關(guān)注
關(guān)注
1文章
784瀏覽量
20511 -
超聲波傳感器
+關(guān)注
關(guān)注
18文章
574瀏覽量
35874 -
GND
+關(guān)注
關(guān)注
2文章
528瀏覽量
38633
發(fā)布評論請先 登錄
相關(guān)推薦
評論