買了這個模組有一段時間了,最近重新整理一下手邊的模組,利用這幾天實作一下這個模組的功能。
紅外線反射尋跡/避障模組 TCRT5000 利用紅外線反射的特性,有兩種可應用的功能,一是偵測是否有物體靠近,當模組被裝在小車時,可以偵測前方是否有障礙物;另一個功能是藉由反射面的顏色改變,來判斷小車是否偏離畫好的路線。以下是實作說明及結果。
TCRT5000尋跡感測器模組的紅外發射二極體不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處於關斷狀態,此時模組的輸出端為低電位,指示二極體一直處於熄滅狀態;被檢測物體出現在檢測範圍內時,紅外線被反射回來且強度足夠大,光敏三極管此時模組的輸出端為高電位,指示二極體燈被點亮。
產品規格:
這兩張照片,在感測器下方放上一片黑色止滑墊後,類比數值從153變成735,表示黑色阻擋一部份反射的光源,造成反射量減少,讓類比接收到訊號數值增加。
以下兩張照片顯示物體接近的感應,當模組有接收到反射訊號時,D0 腳位輸出 0。將感測器再提高一點點時,D0 腳位輸出 1,類比值大約在540左右當作分隔,小於540時,表示偵測到物體靠近,大於540時表示沒有物體在距離範圍內,根據實作的結果,這個距離在光線充足時,能夠偵測的物體距離需在8公分以內。
紅外線反射尋跡/避障模組 TCRT5000 利用紅外線反射的特性,有兩種可應用的功能,一是偵測是否有物體靠近,當模組被裝在小車時,可以偵測前方是否有障礙物;另一個功能是藉由反射面的顏色改變,來判斷小車是否偏離畫好的路線。以下是實作說明及結果。
TCRT5000尋跡感測器模組的紅外發射二極體不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處於關斷狀態,此時模組的輸出端為低電位,指示二極體一直處於熄滅狀態;被檢測物體出現在檢測範圍內時,紅外線被反射回來且強度足夠大,光敏三極管此時模組的輸出端為高電位,指示二極體燈被點亮。
產品規格:
- 採用TCRT5000紅外反射感測器
- 檢測反射距離:1mm~25mm適用
- 工作電壓3.3V-5V
- 輸出形式 :數位開關量輸出(0和1)及類比輸出兩種
- 使用寬電壓LM393比較器
[材料]
- Arduino Uno
- 紅外線反射尋跡/避障模組TCRT5000
- LCD1602液晶顯示器
- I2C/介面 LCD1602轉接板 PCF8574
- 麵包板 x1
- 排線 N 條
[接線與電路圖]
Arduino接腳 | 紅外線反射尋跡/避障模組TCRT5000 | LCD1602顯示器 |
---|---|---|
+5V | VCC | VCC |
GND | GND | GND |
D2 | DO | - |
A0 | AO | - |
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公分以內。
張貼留言