■ RGB 색상을 변경하는 방법을 보여준다.
▶ 부품 내역
1 2 3 4 5 6 7 |
──────────────── 구분 모델 수량 비고 ─────── ── ── ── RGB LED Module 1 ──────────────── |
▶ 부품 연결
1 2 3 4 5 6 7 8 9 10 |
──────────── 아두이노 RGB LED Module ──── ─────── GND GND D11 R D12 G D13 B ──────────── |
▶ 소스 코드
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
#define RED 11 // 3색 LED R #define GREEN 12 // 3색 LED G #define BLUE 13 // 3색 LED B // 빨강 #define red1 255 #define green1 0 #define blue1 0 // 노랑 (빨강 + 초록) #define red2 0 #define green2 0 #define blue2 255 // 초록 #define red3 0 #define green3 255 #define blue3 0 // 시안 (초록 + 파랑) #define red4 0 #define green4 255 #define blue4 255 // 파랑 #define red5 0 #define green5 0 #define blue5 255 // 마젠타 (파랑 + 빨강) #define red6 255 #define green6 0 #define blue6 255 void setup() { } void loop() { ChangeColor(red1, green1, blue1, red2, green2, blue2, 3); ChangeColor(red2, green2, blue2, red3, green3, blue3, 3); ChangeColor(red3, green3, blue3, red1, green1, blue1, 3); } // 색상 변경하기 // fromRed : FROM 빨강색 (0-255) // fromGreen : FROM 녹색 (0-255) // fromBlue : FROM 파랑색 (0-255) // toRed : TO 빨강색 (0-255) // toGreen : TO 녹색 (0-255) // toBlue : TO 파랑색 (0-255) // delayTime : 지연 시간 (1/1000초 단위) void ChangeColor(int fromRed, int fromGreen, int fromBlue, int toRed, int toGreen, int toBlue, int delayTime) { for(int i = 0; i < 256; i++) { analogWrite(RED , (fromRed + ((255 - i) * (toRed - fromRed ) / 255))); analogWrite(GREEN, (fromGreen + ((255 - i) * (toGreen - fromGreen) / 255))); analogWrite(BLUE , (fromBlue + ((255 - i) * (toBlue - fromBlue ) / 255))); delay(delayTime); } } // 색상 설정하기 // red : 빨강색 (0-255) // green : 녹색 (0-255) // blue : 파랑색 (0-255) void SetColor(int red, int green, int blue) { analogWrite(RED , red ); analogWrite(GREEN, green); analogWrite(BLUE , blue ); } // 대기하기 // delayTime : 지연 시간 (1/1000초 단위) void Wait(int delayTime) { delay(delayTime); } |