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);

}