如何用arduino制作超聲波測距模塊
超聲波測距是一種常見的測量方法,它通過發射超聲波,并依據回波時間計算出物體到探頭的距離。在arduino中,可以通過加一個超聲波測距模塊來實現測距,這樣可以知道一個東西移動了多少距離等。本文將為大家介
超聲波測距是一種常見的測量方法,它通過發射超聲波,并依據回波時間計算出物體到探頭的距離。在arduino中,可以通過加一個超聲波測距模塊來實現測距,這樣可以知道一個東西移動了多少距離等。本文將為大家介紹如何用arduino制作超聲波測距模塊。
一、超聲波測距模塊的選擇
超聲波測距模塊有很多種,本文選用的是US-100。US-100是一款小型的超聲波測距芯片,具有高精度、低功耗、高可靠性等優點。其引腳為左右兩端為正極與地,中間為信號引腳,因此有兩種出發方式:電平觸發和串口觸發。
二、連線步驟
將超聲波測距模塊的trig(觸發信號)和echo(輸出信號)接到arduino開發板的2、3口上,并將正極和地接到相應的位置上。下圖是實物連線3D圖:
三、程序編寫
1. 電平觸發方式
首先,需要將觸發端口設置為輸出OUTPUT,反饋端口設置為輸入INPUT,然后給電平即可。以下是電平觸發的完整代碼:
```
define EchoPin 3 // 設置輸出端口
define TrigPin 2 // 設置輸入端口
void setup()
{
(9600); // 設置串口速率為9600
pinMode(EchoPin, INPUT); // 將輸出端口設置為輸入模式
pinMode(TrigPin, OUTPUT); // 將輸入端口設置為輸出模式
}
void loop()
{
digitalWrite(TrigPin, LOW); // 向trig口發送低電平信號
delayMicroseconds(2); // 延時2us
digitalWrite(TrigPin, HIGH); // 向trig口發送高電平信號
delayMicroseconds(10); // 延時10us
digitalWrite(TrigPin, LOW); // 恢復低電平
float distance pulseIn(EchoPin, HIGH) / 58.00; // 計算距離
(distance); // 輸出距離值
(" cm"); // 輸出單位
delay(100); // 延時100ms
}
```
2. 串口觸發方式
使用串口觸發也可以實現超聲波測距。以下是部分代碼,可以自行編寫完整代碼:
```
const int trigPin 2;
const int echoPin 3;
void setup() {
(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, inches, cm;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration pulseIn(echoPin, HIGH);
inches microsecondsToInches(duration);
cm microsecondsToCentimeters(duration);
(inches);
("in, ");
(cm);
("cm");
();
delay(100);
}
long microsecondsToInches(long microseconds) {
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}
```
四、測試結果
將程序編譯上傳到板子上后,打開軟件右上端的串口工具,就可以在串口工具的輸出框中看到距離超聲波測距模塊之間的距離。可以用尺寸檢測是否正確。通過這種方法,我們可以輕松制作出一個簡單的超聲波測距模塊,用于測量各種距離。