(SKU:RB-02S001A)RB URF02超聲波傳感器

來自ALSROBOT WiKi
2015年12月9日 (三) 09:53Arduino77討論 | 貢獻的版本

跳轉(zhuǎn)至: 導航、 搜索
02S001A01.png

目錄

產(chǎn)品概述

最新推出的RB URF02超聲波傳感器是RB URF v1.1超聲波傳感器的升級產(chǎn)品,在保留原有功能的基礎(chǔ)上,使用防插反接頭并新增加模式選擇功能,有兩種模式可選擇:單線模式只需要一根信號線,大大減少IO口資源;雙線模式與原有功能一樣,需要一根輸入和輸出信號線。偵測距離和精度也有較大提高,可達1cm到500cm,其在有效探測范圍內(nèi)自動標定,無需任何人工調(diào)整就可以獲得障礙物準確的距離。令你的機器人像蝙蝠一樣通過聲納來感知周圍的環(huán)境,你只需要在單片機、Arduino微控制器中編寫一小段程序,就可以根據(jù)障礙物的距離精確的控制機器人的電機運行,從而使你的機器人輕松地避開障礙物,因此其是機器人領(lǐng)域最常用的測距避障模塊。

規(guī)格參數(shù)

  1. 工作電壓 :+5v
  2. 工作電流 :<20mA
  3. 工作頻率 :40KHz
  4. 工作溫度范圍:-10℃~+70℃
  5. 探測有效距離:1cm~500cm
  6. 探測分辨率:0.5cm
  7. 探測誤差:±0.5%
  8. 靈敏度:大于1.8m外可以探測到直徑2cm物體
  9. 接口類型:TTL(單線模式和雙線模式可切換)
  10. 方向性偵測范圍:定向式(水平/垂直)65度圓錐
  11. 尺寸大?。?120mm x 115mm
  12. 重量大小:7g

工作原理

超聲波是指頻率高于20KHz的機械波,超聲波測距的原理是通過測量聲波在發(fā)射后遇到障礙物反射回來的時間差計算出發(fā)射點到障礙物的實距離。 測距公式為:L = V * (T2-T1)/2 公式說明:

  • L 為測量的距離長度
  • V 為超聲波在空氣中的傳播速度(在20℃時為344m/s)
  • t1 為測量距離的起始時間
  • t2 為收到回波的時間

速度乘以時間差等于來回的距離,除以2可以得到實際的距離。

接口定義

傳感器引腳的定義是 OUTPUT:響應信號輸入 INPUT:觸發(fā)控制信號輸入

  • +:電源(VCC)
  • -:地(GND)
Chaoshengbo01.jpg

使用方法

編程原理

使用RB URF02超聲波傳感器雙線時,首先拉低觸發(fā)控制信號輸入(input)端口,然后至少給10us的高電平信號來觸發(fā)模塊,在觸發(fā)后,模塊會自動發(fā)射8個40KHz的方波,并自動檢測是否有信號返回;如果有信號返回,通過響應信號輸出(output)一個高電平,高電平持續(xù)的時間便是超聲波從發(fā)射到接收的時間,該模塊工作時序圖如下,所以測試距離的計算公式為:測試距離 = 高電平持續(xù)時間 * 340(m/s)*0.5
使用RB URF02超聲波傳感器單線時,原理同雙線模式,只是通過一個觸發(fā)控制信號輸入(input)端口進行超聲波控制器的信號收發(fā)。

P-2.jpg

雙線模式接線圖

  • INPUT、OUTPUT端口如圖所示接到控制器的I/O口。5V 和GND分別接到電源的+5V和GND。

注:在使用雙線模式時模式選擇開關(guān)(Mode)撥到數(shù)字2側(cè)。

Chaoshengboshuangxian01.jpg

雙線模式例子程序

硬件連接如圖所示,數(shù)字口4 接超聲波的OUTPUT 、數(shù)字口5 接超聲波INPUT ,將開關(guān)撥到數(shù)字2 一側(cè)超聲波進入雙線模式。

int inputPin=4;   //  接超聲波的 output 引腳到數(shù)字D4腳 
int outputPin=5;  //  接超聲波的 input 引腳到數(shù)字D5腳 
int ledpin=13;    // 定義 ledPin 引腳為D13腳
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ā)出超聲波信號接口低電平 
  float distance = pulseIn(inputPin, HIGH);  //  讀出接收脈沖的時間 
  distance= distance/58;       // 將脈沖時間轉(zhuǎn)化為距離(單位:厘米) 
  distance = (int(distance * 100.0)) / 100.0; //保留兩位小數(shù) 
  Serial.println(distance);   // 輸出距離值                  
  delay(50);    
  if (distance >=50) 
  {  
     digitalWrite(ledpin,HIGH); //如果距離大于50厘米小燈亮起
  }  
  else                          
     digitalWrite(ledpin,LOW); //如果距離小于50厘米小燈熄滅
} 

單線模式接線圖

Chaoshengbodanxian.jpg
  • INPUT端口如圖所示接到控制器的I/O口。5V 和GND分別接到電源的+5V和GND。

注:在使用單線模式時模式選擇開關(guān)(Mode)撥到數(shù)字1側(cè)。

單線模式例子程序

硬件連接如圖所示,數(shù)字口2 接超聲波的INPUT ,將開關(guān)撥到數(shù)字1 一側(cè)超聲波進入單線模式。

int duration;                           //變量duration 用來存儲脈沖時間 
int distance;                           //變量distance 用來存儲距離 
int srfPin = 2;                          //定義srfPin 引腳為 2  
void setup() 
{ 
Serial.begin(9600); 
} 
void loop() 
{ 
  pinMode(srfPin, OUTPUT); 
  digitalWrite(srfPin, LOW);            
  delayMicroseconds(2); 
  digitalWrite(srfPin, HIGH);           
  delayMicroseconds(10); 
  digitalWrite(srfPin, LOW);            
  pinMode(srfPin, INPUT); 
  duration = pulseIn(srfPin, HIGH);         
  distance = duration/58;        // 將脈沖時間轉(zhuǎn)化為距離(單位:厘米) 
  Serial.println(distance);       // 輸出距離值 
  delay(50);                             
} 

程序效果

  1. 打開串口助手可以觀察到輸出的距離值,如下圖所示。
  2. 打開串口助手可以觀察到距離值,如果距離小于 50厘米數(shù)字口13的LED 小燈熄滅,距離大于50厘米數(shù)字口13的LED 小燈亮起同時串口打印處距離數(shù)據(jù)。
02S001A02.png

視頻演示

Chao sheng bo 01.png
Chao sheng bo 02.png


產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品購買地址

RB URF02超聲波傳感器

周邊產(chǎn)品推薦

超聲波傳感器支架
PING))) 超聲波傳感器

相關(guān)問題解答

超聲波測距傳感器為什么一直輸出零?

相關(guān)學習資料

視頻:Arduino-2WD輕量型移動機器人超聲波旋轉(zhuǎn)偵測演示
超聲波測距LED輸出小裝置制作
Arduino學習筆記- Arduino連接超聲波傳感器測距
奧松機器人技術(shù)論壇