컬러센서를 사용하여 3색 LED를 감지하는 아두이노 프로젝트를 만들어 보겠다.
이 프로젝트에서는 TCS3200 컬러센서를 사용하여 주변의 색을 감지하고, 그 결과에 따라 3색 LED를 제어할 것이다.
다음은 필요한 부품들이다.
- TCS3200 컬러센서
- 3색 LED
- 아두이노 보드
- 저항 (330옴 x 3)
- 점퍼 와이어
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
https://link.coupang.com/a/ccbDIm
(당일배송) 아두이노 TCS3200 컬서 센서 Color Sensor - 케이블 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2vSOT
ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2vTO0
아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
먼저, TCS3200 컬러센서를 아두이노에 연결해야 한다. 그런 다음, 아래의 코드를 사용하여 컬러센서를 통해 검출된 색을 읽고, 해당하는 색에 따라 LED를 제어할 수 있다.
전체 코딩:
#include <Wire.h>
#include <LiquidCrystal_I2C.h> // 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);
}
}
준비물 : 아두이노 우노, RGB 컬러센서, 3색 LED, 300옴 저항 등이 사용된다.
![]() |
![]() |
![]() |
![]() |
아두이노 우노 R3 | RGB 컬러센서 | 3색 LED | 300옴 저항 |
회로 연결 :
아두이노 우노 R3 | RGB 컬러센서 | RGB LED 다이오드 | LCD1602 |
+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 |
회로도:
위와 같이 회로를 연결하고 코드를 아두이노에 업로드하면 시리얼 모니터와 LCD에 색상에 따른 값이 출력될 것이다.
이 코드는 컬러센서를 통해 검출된 색에 따라 3색 LED를 제어한다. 따라서 감지된 색에 따라 LED가 변할 것이다.
출력 결과
https://www.youtube.com/watch?v=uT4cFhvfGSk
'아두이노 기초' 카테고리의 다른 글
아두이노에 LCD패널을 연결하여 초음파센서에서 측정된 거리를 현시하기 (0) | 2020.07.28 |
---|---|
아두이노에 초음파센서를 사용하여 측정된 거리에 따라 LED색을 변하시키기 (0) | 2020.07.28 |
아두이노에 3색 LED를 사용하여 자동으로 색갈 변화시키기 (0) | 2020.07.28 |
2. 아두이노 UNO에 LED를 연결하여 깜빡이기 (0) | 2020.07.28 |
1. 아두이노란 무엇인가? (0) | 2020.07.28 |