본문 바로가기
C and C++/C and C++ Examples

[C++ Examples/Arduino] RGB LED

by Henry Cho 2024. 1. 26.
728x90

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

Figure 1. Result of RGB LED


# References

https://www.elegoo.com/pages/download#erid4943043

 

ELEGOO 3D Printers, Arduino Kits & Robots Tutorials Download

Knowledge Base DOWNLOAD EVERYTHING YOU NEED You can select the section corresponding to the product you purchased and download all the related files. 3D Printer Trouble shooting Visit this blog for continuously updated support articles about our 3d printer

www.elegoo.com


 

728x90

댓글