A26-超聲波模塊實驗
HC-SR04模組應先插好在電路板上再通電,避免產生高電平的誤動作,如果產生了重新通電就可以恢復了。
※HC-SR04模組工作原理:
(1)使用用IO觸發測距,給至少10us的高電平信號
(2)模組自動發送8個40khz的方波,自動檢測是否有信號返回
(3)有信號返回時通過IO輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間
(5)測試距離=(高電平時間*聲速(340M/S))/2
(6)本產品使用方法簡單,一個控制口發一個10US以上的高電平,就可以在接收口等待高電平輸出,一有輸出就可以開定時器計時,當此口變為低電平時就可以讀定時器的值,此時就為此次測距的時間,方可算出距離,如此不斷的週期測試,就可以達到你移動測量的值了。
(7)偵測距離:輸入DC5V時、偵測距離2cm~450cm 接線方式:
HC-SR04超音波–>Arduino主控板,
VCC –> +5V
trig (控制端) –> 任意Digital Pin
echo(接收端) –> 任意Digital Pin
GND(接地端) –> GND
※trig引腳是內部上拉10K的電阻,用單片機的IO口拉低TRIP引腳,然後給一個10us以上的脈沖信號。
代碼: 選擇全部
//感測模組HC-SR04超音波模組
int trigPin=7; //第7腳接HC-SR04的Trig
int echoPin=8; //第8腳接HC-SR04的Echo
float duration,cm;//時間間隔,距離
//-------------------------------
void setup() {
Serial.begin(9600);//串列port
pinMode(trigPin,OUTPUT);//第7腳輸出模式
pinMode(echoPin,INPUT);//第8腳輸出模式
}
void loop() {
digitalWrite(trigPin,LOW);//初始設定
delayMicroseconds(5);
digitalWrite(trigPin,HIGH);//至少給觸發腳位7,10us高電位
delayMicroseconds(10);
digitalWrite(trigPin,LOW);//送出觸發訊號,模組會送8個40kHZ的方波
duration=pulseIn(echoPin,HIGH);//回收訊號
cm=(duration/2)/29.1;//換算成公分
Serial.print("距離;");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}