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