Notice
Recent Posts
Recent Comments
Link
지구본
[아두이노] 1. LED의 색을 변경해보자 본문
지구팀에서 만끽 스마트 바스에서 사용하게 될 LED의 기본 제어 코드를 작성해보았습니다.
초안이기 때문에 코드와 회로도는 달라질 수 있습니다.
틴커캐드 사이트를 이용하여 진행을 하였습니다.
코드는 Arduino IDE를 이용하여 작성하였습니다.
틴커캐드에서 실행하기 위해서는 코드를 틴커캐드에도 작성해주어야 합니다.
기본 구성
LED의 켜기/끄기 뿐만아니라 색변경을 진행하기 위해 LED RGB 센서를 활용하였습니다.
또한 각각의 저항과 버튼을 이용해 색변경을 하는 코드를 작성하였습니다.
필요 부품
- LED RGB 1개
- 푸쉬 버튼 1개
- 220옴 저항 3개
- 10k옴 저항 1개
회로 구성
- Red 핀을 1번 핀에 연결
- Green 핀을 2번 핀에 연결
- Blue 핀을 3번 핀에 연결
- Button을 4번 핀에 연결
코드
#define redPin 1 // 빨간 LED 1번에 연결
#define greenPin 2 // 초록 LED 2번에 연결
#define bluePin 3 // 파란 LED 3번에 연결
#define BUTTON 4
int flag = 0;
int colorSelection = 0;
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
void setup() {
pinMode(redPin, OUTPUT); // 1번 핀을 출력으로 설정
pinMode(greenPin, OUTPUT); // 2번 핀을 출력으로 설정
pinMode(bluePin, OUTPUT); // 3번 핀을 출력으로 설정
pinMode(BUTTON, INPUT); //4번 핀을 입력으로 설정
Serial.begin(9600); // 시리얼 모니터에 출력을 위한 초기화
}
void loop() {
int inputValue = digitalRead(BUTTON);
led_color(inputValue);
}
void led_on(int red, int green, int blue) //RGB 함수
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void led_color(int input) // 색변경 함수
{
if(input == HIGH){ //버튼이 눌렀을 때 FLAG의 값을 1로 저장
if(flag == 0)
flag =1;
}
else{
if(flag == 1){ //버튼이 눌렸을 때 실행
colorSelection++;
Serial.println("Color is changed");
if(colorSelection > 2)//3가지 색을 표현하기 위한 IF문
colorSelection = 0;
flag = 0;
}
}
if(colorSelection == 0)
led_on(255, 0, 0);
else if (colorSelection == 1)
led_on(0, 255, 0);
else
led_on(0, 0, 255);
}
'Arduino' 카테고리의 다른 글
[아두이노] 3. I2C LCD와 초음파 센서로 물 높이를 측정하자 (0) | 2023.05.02 |
---|---|
[아두이노] 2. I2C LCD와 온도센서로 센서들을 제어해보자 (0) | 2023.04.17 |