Arduino筆記(86):紅外線反射尋跡/避障模組TCRT5000

買了這個模組有一段時間了,最近重新整理一下手邊的模組,利用這幾天實作一下這個模組的功能。
紅外線反射尋跡/避障模組 TCRT5000 利用紅外線反射的特性,有兩種可應用的功能,一是偵測是否有物體靠近,當模組被裝在小車時,可以偵測前方是否有障礙物;另一個功能是藉由反射面的顏色改變,來判斷小車是否偏離畫好的路線。以下是實作說明及結果。

TCRT5000尋跡感測器模組的紅外發射二極體不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處於關斷狀態,此時模組的輸出端為低電位,指示二極體一直處於熄滅狀態;被檢測物體出現在檢測範圍內時,紅外線被反射回來且強度足夠大,光敏三極管此時模組的輸出端為高電位,指示二極體燈被點亮。

產品規格:
  • 採用TCRT5000紅外反射感測器
  • 檢測反射距離:1mm~25mm適用
  • 工作電壓3.3V-5V
  • 輸出形式 :數位開關量輸出(0和1)及類比輸出兩種
  • 使用寬電壓LM393比較器

[材料]

  • Arduino Uno 
  • 紅外線反射尋跡/避障模組TCRT5000 
  • LCD1602液晶顯示器
  • I2C/介面 LCD1602轉接板 PCF8574
  • 麵包板 x1
  • 排線 N 條

[接線與電路圖]

Arduino接腳紅外線反射尋跡/避障模組TCRT5000LCD1602顯示器
+5VVCCVCC
GNDGNDGND
D2DO-
A0AO-
SDA-SDA
SCL-SCL



[程式]

#include <LiquidCrystal_I2C.h>   // 引用 LiquidCrystal_I2C Library
LiquidCrystal_I2C lcd(0x27,16,2);  // 設定 LCD 位址為 0x27,有 16 個字元 2 列

int DigitalPin = 2;   
int AnalogPin = A0;
int ledPin = 13;       

void setup()
{
  Serial.begin(115200);
  pinMode(DigitalPin, INPUT); // 設定數位Pin為輸入
  pinMode(AnalogPin, INPUT); // 設定數位Pin為輸入
  pinMode(ledPin, OUTPUT);   
  lcd.init();                // 初始化 lcd 
  lcd.backlight();           // 設定背板為亮  
  lcd.clear();         
}
void loop()
{
  boolean D_val = digitalRead(DigitalPin); // 讀取數位Pin的值
  int A_val = analogRead(AnalogPin);
  
  if(D_val == HIGH)  {     //讀取到數值為LOW時,點亮pin13的LED燈
    digitalWrite(ledPin, LOW); 
  }
  else {
    digitalWrite(ledPin, HIGH);
  }
  Serial.print("Analog Data: ");
  Serial.println(A_val);
  lcd.setCursor(0,0);  
  lcd.print(" Analog:"); 
  lcd.print(A_val); 
  lcd.print("  ");   

  lcd.setCursor(0,1);
  lcd.print("Digital:");
  lcd.print(D_val);      
  delay(300); 
}

[實作結果]

TCRT5000模組有數位與類比兩個接腳,分別接到D2和A0兩個Arduino的接口,再將測得的感應值顯示在LCD1602上,藉以判斷偵測到的類比值達到某一特定數值時,數位訊號就會改變。利用這個特性,可以偵測(1)物體的接近,(2)感應標的物因顏色的變化,造成反射值的改變,判斷是否偏離路徑。
這兩張照片,在感測器下方放上一片黑色止滑墊後,類比數值從153變成735,表示黑色阻擋一部份反射的光源,造成反射量減少,讓類比接收到訊號數值增加。


以下兩張照片顯示物體接近的感應,當模組有接收到反射訊號時,D0 腳位輸出 0。將感測器再提高一點點時,D0 腳位輸出 1,類比值大約在540左右當作分隔,小於540時,表示偵測到物體靠近,大於540時表示沒有物體在距離範圍內,根據實作的結果,這個距離在光線充足時,能夠偵測的物體距離需在8公分以內。


[參考資料]

Post a Comment

較新的 較舊