TCS3200 RGB 컬러센서로 3색 LED 색 변화시키기
TCS3200 RGB 컬러 센서는 다양한 색을 감지할 수 있는 광 센서 모듈로, 주로 로봇 공학, 전자 프로젝트, 컬러 인식 애플리케이션 등에 사용됩니다. 이 센서는 광학 필터와 광 다이오드를 사용하여 빛의 세 가지 기본 색상인 빨강(R), 초록(G), 파랑(B) 성분을 감지하고, 해당 값을 마이크로컨트롤러로 전송하여 색상을 판별할 수 있습니다.
주요 특징:
- 광 다이오드 배열: 이 센서에는 8 x 8 배열의 광 다이오드가 있으며, 각 다이오드는 빨강, 초록, 파랑 또는 투명한 필터를 통해 빛을 감지합니다.
- 출력 신호: TCS3200은 감지된 빛의 세기 정보를 주파수로 변환해 출력하는데, 이 주파수는 컬러 농도에 비례합니다.
- 프로그래밍 가능: 제어 핀을 통해 감지 속도와 민감도를 제어할 수 있습니다.
- 높은 정확도: 다양한 조명 조건에서 정확한 색상 측정을 제공하며, 간단한 회로로 연결하여 마이크로컨트롤러(예: Arduino, Raspberry Pi)와 쉽게 통신할 수 있습니다.
핀 구성:
- S0, S1: 출력 주파수 스케일 설정 (감지 속도 조절).
- S2, S3: 필터 선택 (R, G, B 감지 선택).
- OE: 출력 활성화(출력을 활성화 또는 비활성화).
- OUT: 출력 신호(컬러 값을 주파수로 변환한 값).
컬러 센서로 감지된 색상에 따라 3색 LED의 색상을 변화시키는 간단한 아두이노 프로젝트를 만들어 보겠습니다.
이 프로젝트에서는 컬러 센서가 감지한 색상을 분석하고, 그에 따라 빨강, 초록, 파랑의 강도를 제어하여 LED의 색상을 조절합니다.
다음은 프로젝트의 개략적인 단계입니다:
- 컬러 센서에서 색상 값을 읽습니다.
- 읽은 값에 따라 빨강(Red), 초록(Green), 파랑(Blue) 세 가지 색상의 강도를 결정합니다.
- 결정된 색상 강도를 이용하여 3색 LED를 제어합니다.
준비품:
- TCS3200 컬러센서
- 3색 LED 다이오드
- 아두이노 우노 R3 보드
- 저항 (330옴 x 3)
- 점퍼 와이어



부품들이 준비되면 아래표와 회로도를 참고하여 회로를 구성할 수 있습니다.
회로연결:
아두이노 우노 R3 | TCS3200 RGB 컬러센서 | RGB LED 다이오드 | LCD 1602 |
+5V | VCC | VCC | |
GND | GND | GND | |
D6 | S0 | ||
D7 | S1 | ||
D8 | S2 | ||
D9 | S3 | ||
D10 | OUT | ||
D11 | RED | ||
D12 | GREEN | ||
D13 | BLUE | ||
A4 | SDA | ||
A5 | SCL |
회로도:

회로결선이 전부 끝나면 아두이노 IED에 다음과 같이 코딩을 작성합니다.
전체 코딩:
include
include // LCE패널 함수 선언
define S0 6 // 컬러센서 S0 D6번 설정
define S1 7 // 컬러센서 S1 D7번 설정
define S2 8 // 컬러센서 S2 D8번 설정
define S3 9 // 컬러센서 S3 D9번 설정
define sensorOut 10 // 컬러센서 출력 D10번 설정
define redPin 11 // LED_RED D11번 설정
define greenPin 12 // LED_BLUE D12번 설정
define bluePin 13 // LED_GREEN D13번 설정
int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;
LiquidCrystal_I2C lcd (0x27,16,2); // LCD1602 설정
void setup() {
lcd.init(); // LCD 초기화
lcd.backlight(); // LCD 뒷 전등 켬
pinMode(S0, OUTPUT); // 출력
pinMode(S1, OUTPUT); //
pinMode(S2, OUTPUT); //
pinMode(S3, OUTPUT); //
pinMode(sensorOut, INPUT); // 입력
pinMode(redPin, OUTPUT); // 출력
pinMode(greenPin, OUTPUT); //
pinMode(bluePin, OUTPUT); //
// 주파수 스케일링을 20%로 설정
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
Serial.begin(9600);
}
void loop() {
// 빨간색 필터링된 포토다이오드를 읽을 수 있도록 설정
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
// 빨간색 출력 주파수 판독
redFrequency = pulseIn(sensorOut, LOW);
// 시리얼 모니터에 값 출
Serial.print("R = ");
Serial.print(redFrequency);
delay(100);
lcd.setCursor(0, 0);
// 측정된 RED 값을 LCD에현시
lcd.print("R:");
lcd.print(redFrequency); //주파수
// 녹색 필터링된 포토다이오드를 읽도록 설정
digitalWrite(S2,HIGH);
digitalWrite(S3,HIGH);
// 녹색 출력 주파수 판독
greenFrequency = pulseIn(sensorOut, LOW);
// 시리얼 모니터에 녹색 값 출력
Serial.print(" G = ");
Serial.print(greenFrequency);
delay(100);
lcd.setCursor(7, 0);
// 측정된 GREEN 주파수 값을 LCD에현시
lcd.print("G:");
lcd.print(greenFrequency); //주파수
// 파란색 필터링된 포토다이오드를 읽을 수 있도록 설정
digitalWrite(S2,LOW);
digitalWrite(S3,HIGH);
// 파란색 출력 주파수 판독
blueFrequency = pulseIn(sensorOut, LOW);
// 시리얼 모니터에 파란색 값 출력
Serial.print("B:");
Serial.println(blueFrequency);
delay(100);
lcd.setCursor(0, 1);
// 측정된 BLUE 주파수 값을 LCD에현시
lcd.print("B:");
lcd.print(redFrequency); //주파수
// 검출된 색상을 기반으로 한 LED 제어
if (redFrequency > greenFrequency && redFrequency > blueFrequency) {
// Red LED 출력
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
} else if (greenFrequency > redFrequency && greenFrequency > blueFrequency) {
// Green LED 출력
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, LOW);
} else if (blueFrequency > redFrequency && blueFrequency > greenFrequency) {
// Blue LED 출력
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, HIGH);
}
else if (redFrequency == greenFrequency && redFrequency == blueFrequency) {
// 모든 LED 출력
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, HIGH);
} else {
// 모든 LED 전부 꺼짐
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
}
}
코딩작성이 전부 끝나면 아두이노 우노 R3에 USB 케이블을 연결하고 컴파일 후 파일을 업로드 합니다.
출력 결과는 색감지센서에 색상이 있는 물체를 가까이 가져가면 색을 감지하여 출력 장치인 3색 LED 다이오드에 감지된 색상을 출력하여 줍니다.
출력 결과 :
조이키트 : www.joykit.shop