TCS3200 顏色感應器
感應紅色、綠色、藍色三種顏色。
簡介
TCS3200 為帶有紅色、綠色、藍色濾鏡的光二極體顏色感應器。用程式輪流開啟三種顏色的濾鏡,來感應進來的光線,並把它轉成電流頻率訊號,輸出到 Arduino。三種顏色的輸出值最低者,即為感應到的光線顏色。本專題把 TCS3200 感應到的顏色,用一個 RGB LED 顯示出來。
先來看看成果影片:
材料
Arduino UNO x1
TCS3200 顏色感應器 x1 ; 焊腳要焊在後面,前面(有四個白色 LED 的那一面) 要用來感測紙板顏色。
RGB LED x1 ; 共陰 (Common Cathode)
電阻 220-330 歐姆 x3
紅色、綠色、藍色紙板各一個
杜邦線一公一母 數條
電線數條
接線圖_1
TCS 3200 感測器 連接 Arduino
S0 pin 8
S1 pin 9
S2 pin 12
S3 pin 11
OUT pin 10
VCC 5V
GND GND
接線圖_2
RGB LED (共陰)四個腳中最長的那一根為 - (GND)。其他的腳從左而右為紅色 R、綠色 G、藍色 B。
RGB LED 腳R 連接 一電阻,電阻另一端 接 Arduino pin 4
RGB LED 腳G 連接 一電阻,電阻另一端 接 Arduino pin 3
RGB LED 腳B 連接 一電阻,電阻另一端 接 Arduino pin 2
RGB LED 腳 - (GND) 連接 Arduino GND
分別分享 Arduino 5V 和 GND,到麵包板上的紅線跟藍線。
上傳主程式
複製下列程式於 Arduino IDE中,點擊 ”工具”,確認開發板是 Arduino/Genuino Uno, 序列埠 Port COM 已接上,再點擊 ”上傳”,大功告成。
創客點子
試試看,讓 TCS3200 顏色感應器,感應其他的顏色:
實際的量測,當黃色紙板靠近感應器時,從序列埠螢幕中記錄 R G B 輸出值為: R Intensity 3, G Intensity 4, B Intensity 5;
在程式第40行後,插入以下敘述,使序列埠螢幕印出 Yellow Color ,並點亮黃色 LED (紅綠相混)。
if (red ==3 && green == 4 && blue == 5)
{
Serial.println(" - (Yellow Color)");
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, HIGH);
digitalWrite(blueLed, LOW);
}