RGB LED
포스트 난이도: HOO_Junior
# Example Code and Explainations
이번 아두이노 예제 포스트에서는 RGB LED를 다뤄볼 수 있다. 단일 색상만 내는 라이트와 달리 RGB LED는 여러 색상을 하나의 라이트에서 표현이 가능하고 색상 전환을 코딩을 통해서 설정할 수 있다. 아래의 예제코드는 ELEGOO에서 제공하는 기본 코드를 기반으로 수정된 아두이노 코드이다.
아래의 코드에서 중점적으로 리뷰해봐야 할 내용은 for문을 사용해서 RGB LED의 색이 변화하는 부분이다. 또한 LED도 센서의 한 종류이기 때문에 delay time을 넣어줘서 변할 수 있는 여유 시간을 설정해줘야 하는 부분도 유의해야 한다. 나머지는 digitalWrite와 analogWrite를 통해서 RGB LED 설정을 해줄 수 있으며 이 부분은 다른 단일 색상 라이트 설정과 비슷하다.
// Define Pins
#define BLUE 4
#define GREEN 5
#define RED 6
#define delayTime 10
//https://www.elegoo.com/pages/download#erid4943043
void setup() {
// put your setup code here, to run once:
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}
int redValue;
int greenValue;
int blueValue;
void loop(){
int redValue=255;
int greenValue=0;
int blueValue=0;
for (int i = 0; i <255; i +=1){
redValue -= 1;
greenValue += 1;
analogWrite(RED, redValue);
analogWrite(GREEN, greenValue);
delay(delayTime);
}
redValue = 0;
greenValue = 255;
blueValue = 0;
for (int i = 0; i <255; i +=1){
greenValue -= 1;
blueValue += 1;
analogWrite(GREEN, greenValue);
analogWrite(BLUE, blueValue);
delay(delayTime);
}
redValue = 0;
greenValue = 0;
blueValue = 255;
for (int i = 0; i <255; i +=1){
blueValue -= 1;
redValue += 1;
analogWrite(BLUE, blueValue);
analogWrite(RED, redValue);
delay(delayTime);
}
}
# Results
# References
https://www.elegoo.com/pages/download#erid4943043
728x90
'Programming Languages > C and C++' 카테고리의 다른 글
[C++] Lexical Analyzer를 배우는 이유 (0) | 2024.03.15 |
---|---|
[C++/Arduino] Ultrasonic Range Sensor 예제코드 및 설명 (0) | 2024.01.30 |
[C++ Examples/Arduino] External LED 예제 및 설명 (0) | 2024.01.15 |
[C++ Examples/Arduino] Digital Inputs and If Statements 예제코드 및 설명 (1) | 2024.01.15 |
[C++ Examples/Arduino] Blink 예제코드 및 설명 (1) | 2024.01.14 |
댓글