(SKU:RB-02S003)Mini紅外避障傳感器

來自ALSROBOT WiKi
2015年6月23日 (二) 21:27Arduino77討論 | 貢獻的版本

跳轉至: 導航搜索


Mini紅外避障傳感器01.jpg

目錄

概述

Mini IR Dectector是機器人基地專為輪式機器人設計的一款距離可調(diào)式避障傳感器。此傳感器對環(huán)境光線適應能力強、精度高,其具有一對紅外線發(fā)射與接收管,發(fā)射管發(fā)射出一定頻率的紅外線,當檢測方向遇到障礙物(反射面)時,紅外線反射回來被接收管接收,此時指示燈亮起,經(jīng)過電路處理后,信號輸出接口輸出數(shù)字信號,可通過電位器旋鈕調(diào)節(jié)檢測距離,有效距離3~35cm,工作電壓為3.3V-5V,由于工作電壓范圍寬泛,在電源電壓波動比較大的情況下仍能穩(wěn)定工作,適合多種單片機、Arduino控制器、BS2控制器使用,安裝到機器人上即可感測周圍環(huán)境的變化。

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

1. 工作電壓:DC 3.3V~5V
2. 工作電流:≥20mA
2. 工作溫度:-10℃ ~ +50℃
4. 檢測距離:2~40cm
5. IO接口:4線制接口(-/+/S/EN)
6. 輸出信號:TTL電平(有障礙物低電平,無障礙物高電平)
7. 調(diào)節(jié)方式:多圈電阻式調(diào)節(jié)
8. 有效角度:35°
9. 模塊尺寸:28mm×23mm
10.模塊重量:9g

使用方法及例子程序

引腳示意圖

  • EN(傳感器使能):置高,傳感器不工作;置低,傳感器工作。
  • S(反射信號輸出):當EN置低的情況下,如果沒有檢測到物體,則S端口保持高電平;若檢測到物體,則S端口置低。
  • +:接外部供電的Vcc。
  • -:接外部供電的GND。
Mini ir detector.jpg
  1. 傳感器的接口:共4個,電路板標號分別為EN、S、+、-。分別是傳感器使能端口、檢測信號輸出端口、Vcc、GND。
  2. 使能跳線帽:當用戶想讓傳感器一直處于工作狀態(tài),換句話說用戶不需要自行控制傳感器是否工作,這時可以將跳線帽插在排針上,EN腳可以不接任何線。當用戶想自己控制傳感器是否工作,則要去掉跳線帽,將EN端口接到用戶自己的控制器端口上。
  3. 調(diào)節(jié)距離電位器用于調(diào)整傳感器探測的距離,當用戶需要調(diào)整探測距離時,用螺絲刀調(diào)整電位器,按箭頭方向旋轉(順時針方向)是將探測距離減小,相反方向旋轉探測距離增大。
  4. 頻率調(diào)節(jié)電位器:用于產(chǎn)生38KHz頻率的方波。正常情況下,在出廠前將阻值調(diào)好,無需用戶調(diào)節(jié)。但由于外界環(huán)境的不同或振動,出現(xiàn)了接收不到反射信號的情況,這時用戶可以對電位器2進行微調(diào),直到有障礙物時能收到信號,指示燈(LED)點亮即可。

使用方法

實驗接線圖

Hongwaibizhangjiexian.jpg

步驟一:接線。
連接前首先根據(jù)需要確定是否需要控制傳感器的使能端口。如果不選擇控制使能端口,則將跳線帽插在雙排針上,這時只需用排線連接S、+、-三個端口,注意正負極電源不要接反。如果選擇控制傳感器使能,則要拔下跳線帽,放到可以找到的地方,這時需用排線連接EN、S、+、- 四個端口。EN和S端口一般連接到控制器的I/O口。+、- 接到電源的Vcc和GND。
步驟二:固定。
根據(jù)需要通過直徑3mm的連接件(銅柱、螺釘、螺栓等)進行固定。傳感器的安裝高度和反射物的顏色決定了能否得到可靠的信號。如果傳感器安裝較低,可以將紅外發(fā)射管抬高些,或者加小型的定向管(如熱縮管)套到紅外發(fā)射管上。為了避免免誤觸發(fā),不要將傳感器安裝在機器人的運動機構上,特殊需求除外。
步驟三:編程。
根據(jù)端口狀態(tài)真值表,進行編程應用。

Mini紅外避障傳感器03.jpg

示例程序

int bizhangPin = 2;
int ledPin =  13;     
int buttonState = 0;        
void setup() {
  pinMode(ledPin, OUTPUT);      
  pinMode(bizhangPin, INPUT);     
}

void loop(){
  buttonState = digitalRead(bizhangPin);
  if (buttonState == LOW) {       
    digitalWrite(ledPin, HIGH);  
  } 
  else {
    digitalWrite(ledPin, LOW); 
  }
}

程序效果

  1. 模塊按引腳定義圖接好探頭模塊,切勿接錯;
  2. 此時指示燈滅,相應輸出端(S)輸出TTL低電平;
  3. 將避障模塊的紅外探頭對準墻壁或其他障礙物,距離為2~40cm厘米左右,此時指示燈亮,相應輸出端(S)輸出TTL高電平;

應用例程

Mini紅外避障傳感器模塊的測試
我們使用Arduino控制器和2WD小車來做這個測試,要用到硬件設備如下:
1、Arduino控制器×1
2、Arduino 傳感器擴展板×1
3、Mini紅外避障傳感器模塊×3
4、2WD小車×1
5、傳感器支架×1
6、通用3P傳感器連接線×3
7、杜邦線若干
8、USB數(shù)據(jù)通信線×1
通過配合調(diào)節(jié)調(diào)頻和調(diào)距兩個電位計,調(diào)到適合我們的檢測距離。有障礙物位低電平,無障礙物位高電平。使能跳線帽插上就是一直讓傳感器工作,拔下則可以通過控制使能端讓傳感器是否工作。下面的實驗代碼是我們引用Arduino愛好者的一篇博文,(http://blog.sina.com.cn/s/blog_5e4725590100i20b.html)這是實驗代碼的博文地址。
Arduino實驗代碼如下:

int pinI1=8;//定義I1接口
int pinI2=9;//定義I2接口
int speedpin=11;//定義EA(PWM調(diào)速)接口
int pinI3=6;//定義I3接口
int pinI4=7;//定義I4接口
int speedpin1=10;//定義EB(PWM調(diào)速)接口
int IRR=3;//定義右側避障傳感器接口
int IRM=4;//定義中間避障傳感器接口
int IRL=5;//定義左側避障傳感器接口
void setup()
{
  pinMode(pinI1,OUTPUT);
pinMode(pinI2,OUTPUT);
  pinMode(speedpin,OUTPUT);
  pinMode(pinI3,OUTPUT);
  pinMode(pinI4,OUTPUT);
  pinMode(speedpin1,OUTPUT);
  pinMode(IRR,INPUT);
  pinMode(IRM,INPUT);
  pinMode(IRL,INPUT);
}
void advance(int a)//前進
{
     analogWrite(speedpin,a);//輸入模擬值進行設定速度
     analogWrite(speedpin1,a);
     digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉
     digitalWrite(pinI3,HIGH);
     digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉
     digitalWrite(pinI2,HIGH);
}
void right(int b)//右轉
{
     analogWrite(speedpin,b);//輸入模擬值進行設定速度
     analogWrite(speedpin1,b);
     digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉
     digitalWrite(pinI3,LOW);
     digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉
     digitalWrite(pinI2,HIGH);
}
void left(int c)//左轉
{
     analogWrite(speedpin,c);//輸入模擬值進行設定速度
     analogWrite(speedpin1,c);
     digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉
     digitalWrite(pinI3,HIGH);
     digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉
     digitalWrite(pinI2,LOW);
}
void stop()//停止
{
     digitalWrite(pinI4,HIGH);//使直流電機(右)制動
     digitalWrite(pinI3,HIGH);
     digitalWrite(pinI1,HIGH);//使直流電機(左)制動
     digitalWrite(pinI2,HIGH);
}
void back(int d)//后退
{
     analogWrite(speedpin,d);//輸入模擬值進行設定速度
     analogWrite(speedpin1,d);
     digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉
     digitalWrite(pinI3,LOW);
     digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉
     digitalWrite(pinI2,LOW);
}
void loop()
{
    int r,m,l;
    r=digitalRead(IRR);
    m=digitalRead(IRM);
    l=digitalRead(IRL);
    if(l==HIGH &&m==HIGH && r==HIGH)
    advance(120);
    if(l==LOW &&m==LOW  && r==LOW )
      {
        back(120);
        delay(300);
        right(100);
        delay(100);
      }
    if(l==LOW &&m==HIGH  && r==LOW )
      {
        back(120);
        delay(300);
        right(100);
        delay(100);
      }
    if(l==HIGH  &&m==LOW  &&  r == HIGH  )
          {
        back(120);
        delay(300);
        right(100);
        delay(100);
      }
    if(l==LOW && m==LOW  && r ==HIGH )
    right(100);
    if(l==LOW && m==HIGH  && r ==HIGH)
right(80);
    if(l==HIGH && m==LOW  && r == LOW )
    left(100);
    if(l==HIGH && m==HIGH  && r==LOW )
    left(80);
  }

產(chǎn)品相關推薦

[→購買地址 Mini紅外避障傳感器 http://lifestyle201.com/goods-41.html]