본문 바로가기

아두이노-스케치

RGB Led 로 모든 색깔을 나타내보자




RGB Led 로 모든 색깔을 나타내보자



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const int redPin = 5;     // RGB LED의 빨강(R) 제어 핀의 연결 번호
const int greenPin = 10;  // RGB LED의 초록(G) 제어 핀의 연결 번호
const int bluePin = 11;   // RGB LED의 파랑(B) 제어 핀의 연결 번호
 
const int delaytime = 15;
 
void setup()
{
    // RGB LED 제어 핀들을 모두 출력용 핀으로 설정
  
    pinMode( redPin , OUTPUT );
      pinMode( greenPin, OUTPUT );
      pinMode( bluePin, OUTPUT );
 
     analogWrite( redPin, 0 );  // 최초에는 모두 끔(OFF)
     analogWrite( greenPin, 0 );  // 최초에는 모두 끔(OFF)
     analogWrite( bluePin, 0 );  // 최초에는 모두 끔(OFF)
}
 
void loop()
{
      whiletrue )  // 무한 반복
      {
        // R -> G 불빛 변화
        Fade( redPin, greenPin, bluePin );  // R에서 G로 FADE 전환
    
        // G -> B 불빛 변화
        Fade( greenPin, bluePin, redPin );  // G에서 B로 FADE 전환
  
        // B -> R 불빛 변화
        Fade( bluePin, redPin, greenPin );  // B에서 R로 FADE 전환
      }
}
 
////////////////////////////////////////
// fromColor 번호의 핀과 연결된 색상에서
// toColor 번호의 핀과 연결된 색상으로
// 점차 색상을 변화시키는 함수
 
void  Fade( int fromColor, int toColor, int offColor )
{
      int  color;  // fromColor 빛의 세기
  
      // fromColor -> toColor 빛깔 변화
  
      analogWrite( offColor, 0 );  // 먼저 offColor는 처음부터 끔 (OFF)
  
      for( color = 255; color >= 0; color-- )  // 255 에서 0 까지 1씩 감소 
      {
        analogWrite( fromColor, color );      // 시작할 때의 색상 ON
        analogWrite( toColor, 255 - color );  // 끝날 때의 색상 ON
    
        delay( delaytime );  // 0.03초 동안 불빛 지속(지연)
      }
}
cs