본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 버튼(스위치)과 TTP223B 터치센서를 사용해서 3색 RGB LED 제어해 보기

by 오마이엔지니어 2022. 9. 26.
반응형

Arduino Uno 로 버튼(스위치)과 
RGB LED는 총 265가지 색을 낼수 있으며 각 핀은 빨강, 초록, 파랑 색을 출력 합니다
세가지 색이 조합되어 다양한 색을 표현할수 있습니다

빛(Light)은 빨강, 초록, 파랑 빛을 섞으면 하얀색이 됩니다
세개의 LED의 밝기를 동일하게 설정하면 전체적인 컬러는 하얀색이되며 파랑LED를 끄고,
빨강과 초록 LED의 밝기를 동일하게 설정하면 노랑색이 됩니다
이러한 방식으로 원하는 색을 만들어 낼수 있습니다

RGB LED는 (+)V 신호로 동작하는 아노드 타입(Anode), (-)V 신호로 동작하는 캐소드 타입(Cathode)이 있습니다
본 프로젝트 에서는 (-)V 신호로 동작하는 캐소드 타입을 사용해서 테스트를 진행합니다


<TACT SWITH의 구성>
Tact Switch 는 동작시 Tactile 한 느낌 (딸각거림) 을 특징으로 하는 스위치 입니다
보통 2개 또는 4개의 단자로 이루어져 있으나 구조적인 특징으로 인해 보통은 1회로의 제어만 가능합니다
Tact Switch의 회로는 일반적인 4pin의 경우 단자를 한자(漢字)의 두이자 (二)로 놓고 봤을때 직선으로 연결 되어 있습니다
(아래 그림의 1-2번과 3-4번이 연결 되어 있음)


사용된 부품

Arduino Uno R3 (Italy)

브래드 보드

3색 RGB LED 캐소드 타입
TTP223B 디지털 터치센서 모듈

220 (Ohm) 저항 3개
1K (Ohm) 저항 1개 (full-up용)

점퍼케이블

 

사용된 키트

Arduino Starter kit (클릭)
지니어스 키트 Starter Pack (클릭)


구성 배선도


사용된 예제소스 

RGB LED Button.txt
0.00MB


주의사항

배선시 RGB LED의 핀 방향을 잘 확인해야 합니다

스위치의 한쪽핀은 full-up (풀업) 저항 1K Ohm 과 함께 5V로 배선해서 아두이노 3번핀에 연결 됩니다

TTP223B 터치센서 모듈을 사용할때는 풀업 저항 없이

VCC-5V, GND-GND, SIG-아두이노 3번핀 이렇게 배선해 줍니다


예제코드를 살펴보면
#define button 3
#define redLED 11
#define greenLED 10
#define blueLED 9
버튼은 3번, RGB LED의 레드핀은 11, 그린핀은 10, 블루핀은 9번 배선입니다

int state = 0;
int old = 0;
int buttonPoll = 0;
buttonPoll 과 old 로 버튼을 눌렸을때 

switch (state) {
 case 1: //Red color
 digitalWrite(redLED,HIGH);
 digitalWrite(greenLED,LOW);
 digitalWrite(blueLED,LOW);
 old = state;
 break;
 case 2: //Green color
 digitalWrite(redLED,LOW);
 digitalWrite(greenLED,HIGH);
 digitalWrite(blueLED,LOW);
 old = state;
 break;
 case 3: //Blue color
 digitalWrite(redLED,LOW);
 digitalWrite(greenLED,LOW);
 digitalWrite(blueLED,HIGH);
 old = state; 
 break;
 case 4: //Purple color
 digitalWrite(redLED,HIGH);
 digitalWrite(greenLED,LOW);
 digitalWrite(blueLED,HIGH);
 old = state; 
 break;
 case 5: //White color
 digitalWrite(redLED,HIGH);
 digitalWrite(greenLED,HIGH);
 digitalWrite(blueLED,HIGH);
 old = state; 
 break;
 default:
 digitalWrite(redLED,LOW);
 digitalWrite(greenLED,LOW);
 digitalWrite(blueLED,LOW);
 old = 0;
 break;
 }
5가지 case 로 RGB LED 색상을 제어합니다

프로젝트 동영상


아두이노를 사용해서 이렇게 간단하게 버튼(스위치)이나 터치센서로 3색 RGB LED를 제어할수 있습니다

반응형

댓글