초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

RGB LED 모듈 사용하기

2017-11-01 10:40:33

[이전 학습가이드] LED 깜빡이기

개요

 

1) 3색 LED란 무엇인가?

한쪽 방향으로 전류가 흐르도록 제어하는 반도체 소자를 다이오드라 합니다.

다이오드 중에 전기 에너지를 빛 에너지로 변환하는 것을 발광 다이오드, 즉, LED (Light Emitting Diode)라 합니다.

 

3색 LED는 다양한 색상의 LED에서 빨간색, 초록색, 파란색 3개의 LED를 하나의 LED로 합친 LED를 3색 LED라고 합니다.

 

빛의 3원색인 빨강, 초록, 파랑색 3가지 빛을 합성을 이용하여 다양한 색을 표현합니다.


빛의 3원색의 합성


 

3색 LED에 대한 이미지 검색결과




2) 3색 LED 사용방법

3색 LED는 일반 LED 3개를 하나로 합친 LED입니다. LED 3개를 각각 제어하므로써 LED의 색상을 정합니다.

일반 LED와 반대로 긴 단지에 -전극을, 나머지 짧은 단자에 + 전극을 연결해야 LED가 켜집니다,

3색 LED는 일반 LED와 마찬가지로 각 다리에 약 2V의 전원이 필요합니다. LED에 2V보다 더 높은 전압을 가하면 빛의 밝기가 더 커지지만, 한계전압에 이르러 LED가 파손됩니다.

또한, LED가 동작하는 순간, 과대 전류가 흘러 LED가 파괴될 수 있으므로, 전류 제한용 저항을 같이 달아주어야 합니다.
오렌지보드의 공급전압은 5V이며, LED는 약 2V와 10mA을 소비합니다.  따라서 옴의 법칙으로 저항을 계산하면,

전기 저항(R) = 전압(V) / 전류의 세기(I).

  

(5-2) / 0.01 = 300Ω 이 필요합니다. 이에 일반적으로 많이 사용되는 330Ω 저항을 -전극을 제외한 모든 다리에 달아주는 것이 안전합니다.

 

밑의 사진을 참고하여 다리의 위치에 따라 제어할 수 있는 LED의 색상을 확인해 봅시다.
 

 

 

3색 LED에 대한 이미지 검색결과

 

이번에 사용하는 3색 LED는 모듈형태로 나온 제품으로 내부에 저항을 포함한 제품입니다. 추가 저항 연결없이 바로 오렌지보드에 연결하여 사용하시면 됩니다.

ky-016에 대한 이미지 검색결과

 

부품 목록

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 RGB LED 모듈 1 3색 LED(RED, GREEN, BLUE), KY-016
3 330Ω 저항 1  
4 브레드 보드 1  
5 점퍼 케이블 5  

 

 

 

 

부품명 오렌지 보드 3색 LED 모듈 330Ω 저항 브레드 보드 점퍼 케이블
파트 ky-016에 대한 이미지 검색결과

 

 

하드웨어 making

브레드보드

1. 오렌지보드의 GND을 브레드보드의 -버스에 연결합니다.

2. 3색 LED모듈의 -로 표기된 부분이 제일 밑에 줄에 향하게 하여 꽂습니다.

3. 3색 LED 모듈의 -로 표기된 줄에 연결된 행을 -버스에 연결합니다.

4. 3색 LED 모듈의 R로 표기된 줄에 연결된 행에 9번핀을 연결합니다.

4. 3색 LED 모듈의 G로 표기된 줄에 연결된 행에 10번핀을 연결합니다.

4. 3색 LED 모듈의 B로 표기된 줄에 연결된 행에 11번핀을 연결합니다.


 

전자 회로도

 

소프트웨어 coding

/*
 제목		: 3색 LED 깜박이기
 내용		: 3색 LED를 오렌지 보드에 연결하여 색상별로 깜빡이도록 해봅시다.
 */

// 3색 LED의 각 핀을 9, 10, 11번으로 설정합니다.(빨강 = 9, 초록 = 10, 파랑 = 11)
int red = 9;
int green = 10;
int blue = 11;

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
	// 3색 LED의 각 핀을 OUTPUT으로 설정합니다.
	pinMode(red, OUTPUT);
	pinMode(green, OUTPUT);
	pinMode(blue, OUTPUT);
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
	// 3색 LED의 빨간색 LED가 켜지도록 합니다.
	digitalWrite(red, HIGH);
	// 0.5초 동안 대기합니다.
	delay(500);
	// 3색 LED의 빨간색 LED가 꺼지도록 합니다.
	digitalWrite(red, LOW);
	// 0.5초 동안 대기합니다.
	delay(500);

	// 3색 LED의 초록색 LED가 켜지도록 합니다.
	digitalWrite(green, HIGH);
	// 0.5초 동안 대기합니다.
	delay(500);
	// 3색 LED의 초록색 LED가 꺼지도록 합니다.
	digitalWrite(green, LOW);
	// 0.5초 동안 대기합니다.
	delay(500);

	// 3색 LED의 파란색 LED가 켜지도록 합니다.
	digitalWrite(blue, HIGH);
	// 0.5초 동안 대기합니다.
	delay(500);
	// 3색 LED의 파란색 LED가 꺼지도록 합니다.
	digitalWrite(blue, LOW);
	// 0.5초 동안 대기합니다.
	delay(500);
}

 

TIP 

직접 소스코드를 입력할 때에는 /* 와 */ 로 묶여진 블록이나, 줄 안에서 // 이후의 문자들은 “주석”이라하여, 설명에 해당되는 부분으로 실행되지 않는 부분이니다. 따라서 입력하지 않아도 됩니다. 소스코드 안에서 주석은 청록색으로 표시되어 있습니다. 소스상의 delay(밀리초)는 지정된 시간동안 대기하도록 하는 명령어로, 각 단계별 시간적 간격을 주거나, 불필요한 부하 제거, 민감도 조정등을 위해 사용됩니다. 참고로 현재버전의 아두이노 IDE는 한글입력 어려워, 한글 입력을 권장하지 않습니다.  

 

 

 

RGB LED를 활용한 프로젝트

아크릴 램프

RGB LED를 활용하면 내가 원하는 색상을 발현할 수 있습니다. 블루투스 통신을 활용하면 스마트폰과의 통신을 통해 스마트폰으로 색상을 제어하는 스마트 램프를 직접 만들어 볼 수 있습니다.

> 아크릴 램프 프로젝트 살펴보기

 

출처 : https://youtu.be/ofBNMQDWKIg

 

 

[다음 학습가이드] 버튼으로 LED 제어하기

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

코코아팹, 오렌지보드, 아두이노, 오픈소스하드웨어, SW교육, SW코딩, 코딩, 코딩 교육, 스마트홈, IoT 홈, IoT, DIY, 키트, kit, kocoafab, ornage board, arduino, opensource hardware, Software, education, physical computing, RGB LED, LED