TY桃園智造感測器教學庫
感測器教學庫/距離感測器/紅外線(TCRT5000)
BATCH 01 · 已發布

SENSOR / INFRAREDDISTANCE

紅外線反射感測器(TCRT5000)用反射光變化觀察黑白表面與循跡訊號

TCRT5000 以 950 nm 紅外線發光元件照射近距離表面,再由光電晶體接收反射光。它很適合做黑白線條辨識、近距離物體存在判斷與循跡入門,但不是用來量測精準公分距離。

入門1 節課(45–50 分鐘)Arduino UNO
READYDATA
SIGNAL STABLE
紅外線反射感測器(TCRT500
VCC / 5VGND / GND
01 / PREPARE

課前準備

先確認這一課要學會什麼,以及桌面上需要哪些材料。

學習目標

  1. 了解反射式紅外線感測器由發光元件與接收元件組成。
  2. 使用桃園版 Blockly 讀取 TCRT5000 的類比值。
  3. 透過門檻值判斷黑白表面,完成簡單循跡判斷。

材料清單

1 個TCRT5000 紅外線反射模組確認模組的 VCC、GND 與 AO 腳位。
1 組Arduino UNO 與 USB 線使用 5V 供電的教學板。
1 份黑白紙膠帶或循跡地圖讓學生實際觀察原始讀值變化。
適用對象國中生活科技與 Arduino 初學者
建議課時1 節課(45–50 分鐘)
示範平台Arduino UNO
02 / HOW IT WORKS

反射光不是距離尺

TCRT5000 會把近距離表面的反射紅外線轉成電氣訊號;表面顏色、材質、角度與模組高度都會影響讀值。

01

發出紅外線

950 nm 紅外線發光元件照亮前方表面。

02

接收反射光

光電晶體依接收到的反射量改變輸出。

03

建立門檻

先量黑、白兩種表面,再選一個適合當地環境的判斷門檻。

DISTANCE FORMULAraw = analogRead(A0)

桃園版現代積木回傳原始類比值;不同模組電路可能有正反相差異,請以實測值為準。

03 / WIRING

接線配置

使用 AO 讀取連續變化;若模組也有 DO,可另外用數位輸入做門檻後的 0/1 判斷。

MODULE紅外線反射感測器(TCRT500VCCGNDAO
CONTROLArduino UNO5VGNDA0
模組腳位接到控制板訊號方向檢查重點
VCC5V電源確認模組標示的工作電壓。
GNDGND地線感測器與 Arduino 必須共地。
AOA0類比讀值接到 taoyuan_tcrt5000 的 PIN 設定。
✓ WIRING ROWS ALIGNED

已將 3 條線路依同一筆資料逐列對齊;電壓仍須依手上模組版本確認。

04 / BLOCK GUIDE

本課會用到的積木

積木名稱與型別以桃園版 Blockly 現行程式為準,不以通用積木替代。

TCRT5000 讀取類比值PIN A0
BLOCK 01taoyuan_tcrt5000

TCRT5000 讀取類比值

讀取反射強度原始值

位置:感測器 → 距離感測器 → 紅外線(TCRT5000)
PIN
A0填入模組 AO 接到的類比腳位。
TCRT5000 讀取值(舊版)ANALOG_PIN A0
BLOCK 02tcrt5000

TCRT5000 讀取值(舊版)

相容舊版作品的類比讀值積木

位置:感測器 → 距離感測器 → 紅外線(TCRT5000)
ANALOG_PIN
A0舊版作品可沿用原本選定的腳位。
如果…那麼
BLOCK 03controls_if

如果…那麼

將感測值與門檻比較,轉成黑白判斷

位置:控制
序列埠列印
BLOCK 04serial_println

序列埠列印

先觀察黑白表面的實際讀值

位置:輸出
05 / BLOCK EXAMPLE

先讀值,再建立黑白門檻

把 TCRT5000 的讀值送到序列埠,讓學生找出黑色與白色的差異。

桃園版 BLOCKLY / WORKSPACE● BLOCK STYLE
Arduino 程式
初始化
重複執行arduino_delay
TCRT5000 讀取類比值(A0)taoyuan_tcrt5000
序列埠列印讀值serial_println
等待 100 毫秒arduino_delay
重複執行
重複執行arduino_delay
TCRT5000 讀取類比值(A0)taoyuan_tcrt5000
序列埠列印讀值serial_println
等待 100 毫秒arduino_delay
X / 010Y / 024

組合步驟

01
固定高度

讓模組離紙面約 2–5 mm,保持角度不變。

為什麼:高度與角度會直接改變反射量。
02
觀察兩組數值

分別把感測器放在黑色與白色表面,記下序列埠讀值。

為什麼:先量測再設定門檻,比直接猜數字可靠。
03
加上判斷

使用如果積木,比較讀值與自訂門檻。

為什麼:這是循跡與物體存在判斷的共同基礎。
積木使用重點先辨認積木是「回傳值」還是「執行動作」,再放到正確的拼接位置。

taoyuan_tcrt5000讀取反射強度原始值

預期觀察結果

測試情境可能讀值判讀
感測器移到不同顏色表面序列埠讀值會改變反射光量受到表面材質與顏色影響。
模組高度改變同一張紙的數值也可能漂移門檻值需要配合機構高度重新校準。
06 / CODE EXPLAINED

範例程式逐段解說

這段程式把「紅外線反射感測器(TCRT5000)」的實體接線、桃園版 Blockly 積木與 Arduino 執行流程接在一起。先對照腳位,再看初始化、讀值、輸出與等待的順序;每一步都可以回到本頁的積木範例實測。

GENERATED LOGIC / EXCERPT積木背後的程式碼收合程式碼 −
TAOYUAN BLOCKLY / ARDUINO C++READ ONLY
const int SENSOR_PIN = A0;

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println(analogRead(SENSOR_PIN));
  delay(100);
}
SELF STUDY GUIDE先看哪一段、為什麼?
01
先載入函式庫與建立裝置// 紅外線反射感測器(TCRT5000) library

函式庫提供桃園版 Blockly 產生器所需的底層功能;若這裡的函式庫或物件名稱不對,後面的 taoyuan_tcrt5000 就算接線正確也無法使用。

02
把程式腳位對回接線表const int SENSOR_PIN = A0;

本頁接線是 VCC → 5V、GND → GND、AO → A0。程式常數、積木欄位與實體線材必須使用同一組設定;若改了其中一邊,另外兩邊也要一起改。

03
在 setup 只做一次初始化void setup() {

啟動序列埠、I²C/UART 或感測器初始化通常只需要做一次,所以要放在「初始化」區,不要每一圈重複建立裝置。這也對應範例中的啟動積木。

04
在 loop 更新並取得資料void loop() {

重複執行區先讓感測器更新,再讀取 TCRT5000 讀取類比值。若元件有 data ready、可用性或逾時條件,先判斷狀態再使用數值,避免把無效資料當成真實測量。

05
輸出結果並控制取樣速度Serial.println(analogRead(SENSOR_PIN));

先把原始值、單位或狀態送到序列埠,才能和預期結果比較;等待時間則決定更新速度。若看到亂碼,先檢查鮑率;若數值跳動,先增加合理的取樣間隔或做校正。

自學檢查
  • 實體接線:VCC → 5V、GND → GND、AO → A0。
  • 主要積木:taoyuan_tcrt5000;先確認它是回傳值還是執行動作。
  • 本課板子:Arduino UNO;更換控制板或模組版本時,電壓、腳位與函式庫都要重新確認。
07 / DEBUG

常見問題與故障排除

先從「電源、接線、腳位、物體」四個方向檢查,再修改程式。

ERR 01

數值幾乎不變

先檢查:確認 AO 是否接到 A0,並檢查 VCC/GND。

處理方式:改用 AO 讀取,重新插拔 USB 後再觀察。

ERR 02

黑白判斷相反

先檢查:把模組放到黑、白表面比較數值方向。

處理方式:反轉比較運算子或重新設定門檻,不要直接套用別人的數字。

ERR 03

讀值跳動很大

先檢查:確認感測器高度、環境光與接線是否固定。

處理方式:加遮光罩、固定支架,或取多次平均。

08 / NEXT MISSION

延伸挑戰

從顯示數值,逐步走向條件判斷、燈號回饋與雷達專題。

L1

畫出黑白讀值表

題目:量測 5 次黑色與白色讀值,整理平均值與範圍。

解題方向

這題要延伸「TCRT5000 讀取類比值」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 taoyuan_tcrt5000,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「量測 5 次黑色與白色讀值,整理平均值與範圍。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
L2

做出循跡提示燈

題目:當讀值跨過門檻時,控制 LED 顯示是否在黑線上。

解題方向

這題要延伸「TCRT5000 讀取類比值」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。把結果接到題目指定的輸出元件。

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 taoyuan_tcrt5000,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「當讀值跨過門檻時,控制 LED 顯示是否在黑線上。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、把結果接到題目指定的輸出元件是否在所有測試情境都正確反應。
L3

雙感測器循跡

題目:加入第二個 TCRT5000,判斷左偏、右偏與在線上。

解題方向

這題要延伸「TCRT5000 讀取類比值」的基本讀值:先保留已驗證的接線與初始化,再把題目要求的資料處理加在重複執行區。先把資料整理成可觀察的序列埠或表格結果。

  1. 先匯入本頁 Blockly 範例,確認感測器在沒有加入挑戰功能時能穩定讀值。
  2. 保留 taoyuan_tcrt5000,先把讀值送到序列埠,建立正常範圍或基準值。
  3. 依題目「加入第二個 TCRT5000,判斷左偏、右偏與在線上。」加入比較、分類、累計或時間判斷;門檻要用實測資料決定,不要直接猜一個數字。
  4. 用至少三種不同情境測試,記錄輸入、程式判斷與輸出結果,再修正門檻或取樣間隔。
完成檢核:完成後應能指出:哪一個積木取得資料、哪一段負責判斷或換算、先把資料整理成可觀察的序列埠或表格結果是否在所有測試情境都正確反應。
教師快速檢核4 POINT CHECK
  • 能說明發光元件、反射面與接收元件的關係。
  • 能正確設定 AO 腳位並讀取資料。
  • 能以實測資料設定合理的黑白判斷門檻。
09 / EVIDENCE資料來源與版本展開查看 +
LAST REVIEWED / 2026-08-13

本頁使用零件圖鑑標準範本,內容可由網站編輯模式持續維護。

返回教學庫 →