天天看點

【Arduino基礎教程】HC-SR04超音波測距子產品

【Arduino基礎教程】HC-SR04超音波測距子產品

HC-SR04超音波測距子產品

超音波測距原理:通過超音波發射裝置發出超音波,根據接收器接到超音波時的時間差就可以知道距離。

子產品特征

HC-SR04超音波測距子產品具有測距距離精确,能和SRF05,SRF02等超音波測距相媲美,測量距離 ** 2cm~450cm (小編實測:10cm~300cm)。

工作原理

1.采用IO觸發測距,給至少10us的高電平信号。

2.子產品自動發送8個40KHz的方波,自動檢測是否有信号傳回。

3.有信号傳回,通過IO輸出一高電平,高電平持續時間就是超音波從發射到傳回的時間

測試距離=(高電平時間*聲速(340m/s)/2)
           

準備材料

  • Arduino Uno *1
  • HC-SR04超音波測距子產品 *1
  • 面包闆 *1
  • 跳線 *4

子產品接線

【Arduino基礎教程】HC-SR04超音波測距子產品

接線示意圖

HC-SR04 Arduino
TRIG -> 12
ECHO 11
VCC 5V
GND

加載庫檔案

到這裡

https://bitbucket.org/teckel12/arduino-new-ping/downloads

下載下傳

NewPing_v1.7.zip

,在Arduino IDE中,選擇

項目

加載庫

添加一個.zip庫

,選擇下載下傳好的

NewPing_v1.7.zip

檔案即可添加成功。

示例程式

#include<NewPing.h>
#define TRIGGER_PIN 12//12端口
#define ECHO_PIN 11//11端口
#define MAX_DISTANCE 200//最大距離是400-500cm,我們需要可以設定200cm

NewPing sonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE);//設定端口和最大距離
void setup(){ 
  Serial.begin(9600); 
}

void loop(){ 
  delay(100);//間隔50ms掃描一次(大約20次/秒).29ms是掃描最短的時間間隔 
  unsigned int uS=sonar.ping();//把掃描時間轉化成us 
  int dis=uS/US_ROUNDTRIP_CM;//轉成距離     
  Serial.print(">>>>>>>>>>>"); 
  Serial.print(uS);
  Serial.println("cm") 
} 

           

參考文獻

  1. http://www.voidcn.com/blog/qq5132834/article/p-3347951.html
  2. http://blog.xuite.net/lwchafter30/blog/328792563-Arduino+%E8%B6%85%E9%9F%B3%E6%B3%A2+%E8%B6%85%E8%81%B2%E6%B3%A2%E6%84%9F%E6%B8%AC%E5%99%A8%E7%9A%84%E5%AF%A6%E4%BD%9C%EF%BC%8C%E4%B8%8D%E8%A6%81%E5%86%8D%E7%94%A8%E5%88%B0%E9%81%8E%E6%99%82%E7%9A%84%E7%AF%84%E4%BE%8B