今天入手了HC-SR04超聲波模塊、飛思卡爾三軸加速器、人體紅外熱釋傳感器。
先來介紹HC-SR04超聲波模塊:
1、本模塊性能穩定,測度距離精確:
能和國外的SRF05,SRF02等超聲波測距模塊相媲美。模塊高精度,盲區(2cm)超近,穩定的測距是此產品成功走向市場的有力根據!
2、主要技術參數:
1)使用電壓:DC5V
2)靜態電流:小于2mA
3)電平輸出:高5V
4)電平輸出:底0V
5)感應角度:不大于15度
6)探測距離:2cm-450cm
7)高精度:可達0.3cm
3.接線方式:
VCC、trig(控制端)、 echo(接收端)、 GND
4.使用方法:
一個控制口發一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變為低電平時就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的周期測,就可以達到你移動測量的值了~~
5.模塊工作原理:
(1)采用IO觸發測距,給至少10us的高電平信號;
(2)模塊自動發送8個40khz的方波,自動檢測是否有信號返回;
(3)有信號返回,通過IO輸出一高電平,高電平持續的時間就是
超聲波從發射到返回的時間.測試距離=(高電平時間*聲速(340M/S))/2;
Arduino代碼:
// Trig接Arduino板的Digital 5口,觸發測距;Echo接Digital 4口,接收距離信號。
int inputPin=4; // 定義超聲波信號接收接口
int outputPin=5; // 定義超聲波信號發出接口
int ledpin=13;
void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
pinMode(inputPin, INPUT);
pinMode(outputPin, OUTPUT);
}
void loop()
{
digitalWrite(outputPin, LOW); // 使發出發出超聲波信號接口低電平2μs
delayMicroseconds(2);
digitalWrite(outputPin, HIGH); // 使發出發出超聲波信號接口高電平10μs,這里是至少10μs
delayMicroseconds(10);
digitalWrite(outputPin, LOW); // 保持發出超聲波信號接口低電平
int distance = pulseIn(inputPin, HIGH); // 讀出脈沖時間
distance= distance/58; // 將脈沖時間轉化為距離(單位:厘米)
Serial.println(distance); //輸出距離值
delay(50);
if (distance >=50)
{//如果距離大于50厘米小燈亮起
digitalWrite(ledpin,HIGH);
}//如果距離小于50厘米小燈熄滅
else
digitalWrite(ledpin,LOW);
}