Lab10

Ultrasonic Sensor 超音波測距感測器 HC-SR04

[材料]

Arduino主板 x 1

麵包板 x 1

HC-SR04超音波感測器 x 1

LCD(含有i2c的晶片) x 1

[HC-SR04腳位]

Vcc --> 5V

Trig --> pin 9

Echo --> pin 10

Gnd --> GND

程式碼

/*  Lab10 Ultrasonic Sensor 程式碼*/


/*  Ultrasonic Sensor接線方式

Vcc --> 5V

Trig --> pin 9

Echo --> pin 10

Gnd --> GND

*/



int trigPin = 9; 

int echoPin = 10;


void setup() { 

 pinMode(trigPin, OUTPUT); 

 pinMode(echoPin, INPUT); 

 Serial.begin(9600); 


void loop() { 

 digitalWrite(trigPin, LOW); 

 delayMicroseconds(2); 

 digitalWrite(trigPin, HIGH);                       //trigPin發出訊號

 delayMicroseconds(10); 

 digitalWrite(trigPin, LOW);

 float duration = pulseIn(echoPin, HIGH);           //echoPin多久之後才接收訊號的時間,單位microsecond

 float distance = (duration/1000000 * 347)/2 *100;  //來回距離=(時間*速度),聲速V=331+0.6T

 Serial.print("Distance="); 

 Serial.println(distance); 


 delay(100); 


[基本問題]

1.  距離所測量出來的單位是?


2.  聲音的速度和溫度的關係:V=331+0.6T,請計算  

    27℃時,聲速=?    

    20℃時,聲速=?


3.  請改寫程式,以避免過大的錯誤數據。

    提示:可參考Lab4的「if」語法,只顯示正確範圍的數據。


4.  將資料顯示在LCD上:第一行顯示 Dis=     


5.  比較用尺量測的長度,和超音波偵測的長度是否相符?有多少誤差? 



[挑戰問題]

1.  能偵測的"最短""最遠距離"大約是多少?


2.  能偵測的"最小解析角度"是多少?