Arduino超聲波傳感器教程 (Ultrasonic Sensor)

視頻教程:?【Arduino超聲波傳感器HC-SR04教程】?

什么是超聲傳感器HC-SR04?
超聲傳感器的英文是Ultrasonic Sensor。它有如下特點:
* 利用聲納(SONAR)來測量物體的距離,?測量角度<15°。
*?準確度高、性價比高、讀數(shù)穩(wěn)定、且便于使用。
* 可應(yīng)用于非接觸范圍檢測, 檢測范圍是2厘米-400厘米(+/-3毫米偏差)。
* 雖然它的操作很少受陽光或黑色材料的影響,但是柔軟的材料(如布料等)可能較難檢測到。
* 傳感器有四個引腳:
·?????? VCC 接到5V電源;
·?????? Trig 接到任何數(shù)字口;
·?????? Echo接到任何數(shù)字口;
·?????? GND 接到地。
測距的工作原理?
1)????? 傳感器會朝某一方向發(fā)射40K赫茲的超聲波,同時開始計時。
2)????? 聲波會在空氣中傳播,一旦遇到障礙物,聲波就會立刻返回。
3)????? 傳感器一旦接收到反射波就立刻停止計時。
4)????? 已知聲波在空氣中的傳播速度為340米/秒=34K厘米 / 秒= 0.034厘米/微秒。根據(jù)計時器的時間t, 我們可以計算出,從發(fā)射點到障礙物的距離為= 0.034厘米/微秒 * t超秒/2
?
超聲波傳感器的工作原理?
1) 利用 Arduino 的數(shù)字引腳給超聲波傳感器的 Trig 引腳至少 10 微秒的高電平信號,這會讓HC-SR04 超聲波測距模塊發(fā)射出8個40K赫茲的超聲波脈沖(ultrasonic burst)。
2) 8個超聲波脈沖發(fā)出后,echo引腳會輸出高電平。假如沒有聲波返回,echo引腳會在38微秒后輸出低電平。假如有聲波返回,echo引腳會進入低電平狀態(tài)。
3)? ? Echo輸出高電平的時間就是超聲波從發(fā)射到返回的時間。

材料清單
-?超聲傳感器HC-SR04 x1
- 面包板 x1
- 面包線(雙公頭) x4 - 面包線顏色不影響結(jié)果,但有助于理解教程
- Arduino Uno 開發(fā)板 x1
- USB接線 x1
- 裝有Arduino IDE/集成開發(fā)環(huán)境的電腦 x1?
電路圖

接線細節(jié)

代碼
const int trigPin = 3;? ? ?// 傳感器trig引腳連接到開發(fā)板模擬口3
const int echoPin = 2; // 傳感器Echo引腳連接到開發(fā)板模擬口2
long duration, distance;
void setup() {
? ?Serial.begin(9600); ? ? ? ?// 開始 Serial Terminal 串口監(jiān)視器
? ?pinMode(trigPin, OUTPUT);? // 將trigPin設(shè)置為輸出
? ?pinMode(echoPin, INPUT);? //將echoPin設(shè)置為輸入
}
void loop() {
? ?digitalWrite(trigPin, LOW); ?// 先將trigPin設(shè)置為低電平狀態(tài)2微秒
? ?delayMicroseconds(2); ? ? ?
? ?digitalWrite(trigPin, HIGH); //再將trigPin設(shè)置為高電平狀態(tài)10微秒
? ?delayMicroseconds(10);
? ?digitalWrite(trigPin, LOW);
? ?duration = pulseIn(echoPin, HIGH); //計算echoPin在高電平狀態(tài)的時長?
? ?distance = duration * 0.034 / 2; ?// 計算傳感器跟物體之間的距離
? ?
? ?Serial.print(distance);????????//在串口監(jiān)視器打印出距離
? ?Serial.print("cm");
? ?Serial.println();
? ?delay(1000);
}
如何上傳代碼?
a)? ? ? ?雙擊Arduino圖標, 一個Sketch會跳出來
b)????? 點擊文件(F) 新建項目, 打開一個新的Sketch
c)?????? 復(fù)制粘貼提供的代碼
d)????? 點擊工具>>開發(fā)板>>Arduino AVR Boards>>選擇Arduino Uno 開發(fā)板
e)????? 點擊工具>>選擇端口 (不一定是6, 由電腦分配)
f)??????? 點擊?檢查驗證/編譯代碼
g)?????? 點擊→上傳代碼
h)????? 點擊工具>>打開串口監(jiān)視器
恭喜,又完成一個教程了。
愿如風有信,所學有成~