Arduino Uno 로 TCS3200/230 컬러인식 센서 모듈의 사용방법을 알아보고
RGB 색상 감지시 3색 RGB LED를 제어해 보는 프로젝트 입니다
<TCS3200/230 컬러인식 센서 모듈 이미지>
TCS3200/TCS230 컬러인식 센서 모듈은 TCS3200 RGB 센서 칩을 사용하였으며 (TCS230 업그레이드 버전)
4개의 백색 LED와 8핀 인터페이스로 구성되어 있습니다
컬러인식 센서모듈은 눈으로 볼수 있는 수 많은 색상을 감지하고 측정할수 있기 때문에
색상, 주변 광 감지, 보정, 컬러 매칭 등 다양하게 적용하고 테스트 할 수 있습니다
사용된 부품
Arduino Uno R3 (Italy)
아두이노 3색 RGB
TCS3200/230 컬러인식 센서 모듈
미니브래드보드
점퍼케이블(숫놈-숫놈), (숫놈-암놈)
사용된 키트
아두이노 컬러인식 센서 키트
구성 배선도 - RGB 색상 감지시 3색 LED 제어해 보기
구성 배선도 - RGB 색상 감지시 색상별 LED 점등시켜 보기
사용된 예제소스
테스트 방법
별도의 라이브러리를 사용하지 않으므로 테스트 방법은 간단합니다
위 첨부된 예제 소스를 다운로드 해서 업로드 해주고 테스트 하면 됩니다
(example code 는 RGB 색상 감지시 색상별 LED 점등시켜 보기 예제입니다)
TCS3200/230 컬러인식 센서는 색을 주파수 값으로 읽을수 있는 센서입니다
아두이노와 같은 마이크로 컨트롤 보드등을 사용해서 주파수 값을 0~255 사이의 값으로
변환한 데이터를 바탕으로 테스트합니다
RGB 주파수 값을 산출하는 것은 상당히 고된 작업으로 아래 링크의 개발자의 데이터를
인용하여 테스트 할수 있습니다
http://www.robotsforfun.com/webpages/colorsensor.html
TCS3200 컬러센서 RGB LED 테스트 예제코드를 살펴보면
const byte s0_pin = 3;
const byte s1_pin = 4;
const byte s2_pin = 5;
const byte s3_pin = 6;
const byte out_pin = 7;
const byte r_pin = 9;
const byte g_pin = 10;
const byte b_pin = 11;
컬러센서와 3색 RGB LED핀 배선연결 세팅을 확인할수 있습니다
void setup() {
Serial.begin(9600);
pinMode(r_pin, OUTPUT);
pinMode(g_pin, OUTPUT);
pinMode(b_pin, OUTPUT);
pinMode(s0_pin, OUTPUT);
pinMode(s1_pin, OUTPUT);
pinMode(s2_pin, OUTPUT);
pinMode(s3_pin, OUTPUT);
pinMode(out_pin, INPUT);
digitalWrite(s0_pin,HIGH);
digitalWrite(s1_pin,LOW);
}
셋업부분을 보면 S0 핀과 S1핀이 HIGH 와 LOW 로 세팅되어 있는것을 확인할 수 있습니다
위 첨부된 데이터 시트를 살펴보면 주파수 스케일링에서 20%로 주파수 크기값을 세팅한
것을 알수 있습니다 (0~255의 적당한 수치로 변환시키기 위해 20% 로 세팅을 되었습니다)
S0, S1핀은 주파수 크기를 S2, S3핀은 포토다이오드 타입 색상을 지정합니다
red_color = map(red_color, 25,72,255,0);
green_color = map(green_color, 30,90,255,0);
blue_color = map(blue_color, 25,70,255,0);
셋업 부분을 보면 레드, 그린, 블루 색상 범위를 확인할 수 있습니다
analogWrite(r_pin, red_color);
analogWrite(g_pin, green_color);
analogWrite(b_pin, blue_color);
아날로그 출력으로 색상 값에 맞는 3색 RGB LED를 제어할 수 있습니다
Serial.print("RED: ");
Serial.print(red_color);
Serial.print(" ");
Serial.print("GREEN: ");
Serial.print(green_color);
Serial.print(" ");
Serial.print("BLUE: ");
Serial.print(blue_color);
Serial.println(" ");
시리얼 모니터로 색상에 따른 출력 수치를 확인할 수 있습니다
example code 의 RGB 색상 감지시 색상별 LED 점등시켜 보기 예제는 RGB LED 대신
3가지 색상 LED를 따로 배선해서 테스트하는 예제로 위와 비슷하나
const int s0 = 8;
const int s1 = 9;
const int s2 = 12;
const int s3 = 11;
const int out = 10;
int pinoledverm = 2;
int pinoledverd = 3;
int pinoledazul = 4;
컬러센서와 3개의 LED의 핀 배선연결 세팅입니다
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
S0과 S1 핀이 둘다 HIGH 100%로 세팅되었으며
if (red < blue && red < green && red <blue)
{
Serial.println("Red");
else if (blue < red && blue < green)
{
Serial.println("Blue");
else if (green < red && green < blue)
{
Serial.println("Green");
S2, S3핀의 포토다이오드 타입 출력값에 따른 RGB 색상을 확인해서 if 문을 사용해서
RGB 색상에 따라 해당하는 3색 LED를 점등 시키게 합니다
프로젝트 동영상 - RGB 색상 감지시 3색 LED 제어해 보기
프로젝트 동영상 - RGB 색상 감지시 색상별 LED 점등시켜 보기
이처럼 비록 주파수에 따른 RGB 색상값의 범위를 산출해 내는것이 번거롭고 힘들기는 하지만
TCS3200/230 컬러인식 센서를 활용해서 다양한 색상 테스트를 해볼수 있습니다
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 10Segment 를 사용해서 심플 라이트 메터 만들어 보기 (0) | 2021.12.17 |
---|---|
Arduino Uno 로 APDS-9960 제스쳐 센서를 사용해서 제스쳐 감지시 0.96 I2C OLED에 방향별 이미지 출력해 보기 (0) | 2021.12.10 |
Arduino Uno 로 3색 RGB 모듈과 HC-06 블루투스 모듈을 사용해서 미니 스마트 무드등 만들어 보기 (0) | 2021.05.10 |
Arduino Uno 로 3색 신호등 모듈을 사용해서 신호등 구성해 보기 (0) | 2021.04.20 |
Arduino Uno 로 CDS 조도센서 ISD1820 음성녹음 재생모듈을 사용해서 실내 밝기변화에 따른 경고방송 만들어 보기 (0) | 2020.12.23 |
댓글