實驗現象
在串口監視器實時顯示超聲波模塊所測距離。
理論學習
超聲波模塊控制口發一個 10US 以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變爲低電平時就可以讀定時器的值,此時就爲此次測距的時間,方可算出距離.如此不斷的週期測,就可以達到你移動測量的值了。
實驗準備
arduino主板-1
麪包板-1
數據線-1
超聲波模塊-1
跳線若干
連接電路
引腳說明
接線說明
超聲波模塊 | Arduino主板 |
---|---|
Trig | 11 |
Echo | 12 |
VCC | 5V |
GND | GND |
實物連接
實驗代碼
// 設定SR04連接的Arduino引腳
const int TrigPin = 11;
const int EchoPin = 12;
unsigned long distance;
void setup()
{ // 初始化串口通信及連接SR04的引腳
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
// 要檢測引腳上輸入的脈衝寬度,需要先設置爲輸入狀態
pinMode(EchoPin, INPUT);
Serial.println("Ultrasonic sensor:");
}
void loop()
{
// 產生一個10us的高脈衝去觸發TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 檢測脈衝寬度,並計算出距離
//delayMicroseconds(2);
distance = pulseIn(EchoPin, HIGH) / 58.00;
Serial.print(distance);
Serial.print("cm");
Serial.println();
delay(1000);
}
實現效果