專注電子技術(shù)學(xué)習(xí)與研究
當前位置:單片機教程網(wǎng) >> Arduino >> 瀏覽文章

HC-SR04超聲波模塊的Arduino代碼

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月03日   【字體:

今天入手了HC-SR04超聲波模塊、飛思卡爾三軸加速器、人體紅外熱釋傳感器。

先來介紹HC-SR04超聲波模塊:


 

1、本模塊性能穩(wěn)定,測度距離精確:
能和國外的SRF05,SRF02等超聲波測距模塊相媲美。模塊高精度,盲區(qū)(2cm)超近,穩(wěn)定的測距是此產(chǎn)品成功走向市場的有力根據(jù)!

2、主要技術(shù)參數(shù):
1)使用電壓:DC5V
2)靜態(tài)電流:小于2mA
3)電平輸出:高5V
4)電平輸出:底0V
5)感應(yīng)角度:不大于15度
6)探測距離:2cm-450cm
7)高精度:可達0.3cm

3.接線方式:

VCC、trig(控制端)、 echo(接收端)、 GND

4.使用方法:
一個控制口發(fā)一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的周期測,就可以達到你移動測量的值了~~

5.模塊工作原理:
  (1)采用IO觸發(fā)測距,給至少10us的高電平信號;
(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;
  (3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是
超聲波從發(fā)射到返回的時間.測試距離=(高電平時間*聲速(340M/S))/2;

Arduino代碼:

// Trig接Arduino板的Digital 5口,觸發(fā)測距;Echo接Digital 4口,接收距離信號。

int inputPin=4; // 定義超聲波信號接收接口
int outputPin=5; // 定義超聲波信號發(fā)出接口
int ledpin=13;
void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
pinMode(inputPin, INPUT);
pinMode(outputPin, OUTPUT);
}
void loop()

{
digitalWrite(outputPin, LOW); // 使發(fā)出發(fā)出超聲波信號接口低電平2μs
delayMicroseconds(2);
digitalWrite(outputPin, HIGH); // 使發(fā)出發(fā)出超聲波信號接口高電平10μs,這里是至少10μs
delayMicroseconds(10);
digitalWrite(outputPin, LOW); // 保持發(fā)出超聲波信號接口低電平
int distance = pulseIn(inputPin, HIGH); // 讀出脈沖時間
distance= distance/58; // 將脈沖時間轉(zhuǎn)化為距離(單位:厘米)
Serial.println(distance); //輸出距離值
delay(50);
if (distance >=50)
{//如果距離大于50厘米小燈亮起
digitalWrite(ledpin,HIGH);
}//如果距離小于50厘米小燈熄滅
else
digitalWrite(ledpin,LOW);
}

 

關(guān)閉窗口

相關(guān)文章