Arduino系列之超聲波測距模塊代碼(一)
這裏我將簡單介紹超聲波測距模塊
SR04超聲波傳感器:
是利用超聲波特性檢測距離的傳感器,其帶有兩個超聲波探頭,分別用作於發射和接收超聲波。範圍在3-450cm。
工作原理:
超聲波發射器向某一方向發射超聲波,在發射的同時開始計時;
超聲波在空氣中傳播,途中遇到障礙物則立即返回,超聲波接收器收到反射波則立即停止計時。
聲波在空氣中傳播速度為340m/s,根據計時器記錄時間t,即可算出發射點距離障礙物的距離S,
即S=340m/s*t/2,這就是所謂的時間差測距法。
超聲波模塊的使用及時序圖:
使用Arduino的數字引腳給SR04模塊的Trig引腳至少10us的高電平信號,觸發SR04模塊的測距功能。
觸發測距功能後,模塊會自動發送八個40khz的超聲波脈沖,並自動檢測是否有信號返回。
若有信號返回,則Echo引腳會輸出高電平,高電平持續的時間就是超聲波從發射到返回的時間。
此時可以使用pluseIn()函數獲取測距結果,並計算出據被測物體的實際距離。
代碼:
const int ting=2; //設定SR04連接到Arduino引腳
const int echo=3; //設定SR04連接到Arduino引腳
float distance; //定義一個浮點型的變量
void setup()
{
Serial.begin(9600); //設置波特率
pinMode(ting,OUTPUT); //連接SR04的引腳
pinMode(echo,INPUT); //設置輸入狀態
Serial.println("ultrasonic sensor"); //
}
void loop()
{
digitalWrite(ting,LOW); //產生一個10US的高脈沖去觸發Trigpin
delayMicroseconds(2);
delayMicroseconds(10);
digitalWrite(ting,LOW);
distance=pluseIn(echo,HIGH)/58.00; //檢測脈沖寬度,並計算出距離
Serial.print(distance); //打印
Serial.print("cm"); //打印
serial.println(); //打印
delay(1000);
}
Arduino系列之超聲波測距模塊代碼(一)