IoT/아두이노
[아두이노] RGB LED, 가변저항, 스위치
발달중인 망고
2022. 6. 7. 20:44
오늘은 가변저항으로 밝기를 조절하며 스위치로 색깔을 변경하는 기본적인 아두이노를 소개하겠습니다.
회로 소개
코드
#define Red 9
#define Green 10
#define Blue 11
#define PUSH_PIN 5
#define POTEN_PIN A0
/*
가변 저항으로 led를 조절하며 스위치로
색깔을 바꾸는 문제
*/
void setup()
{
Serial.begin(9600);
pinMode(PUSH_PIN, INPUT_PULLUP);
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Blue, OUTPUT);
}
int val;
int colorPoint = 0;
void loop()
{
val = analogRead(POTEN_PIN);
val = map(val, 0, 1023, 0, 255);
int value = digitalRead(PUSH_PIN);
if (value == LOW) {
colorPoint++;
Serial.println(colorPoint);
delay(1000);
}
if (colorPoint % 3 == 0) {
setColor(val, 0, 0);
}
else if (colorPoint % 3 == 1) {
setColor(0, val, 0);
}
else if (colorPoint % 3 == 2) {
setColor(0, 0, val);
}
}
void setColor(int red, int green, int blue)
{
analogWrite(Red, red);
analogWrite(Green, green);
analogWrite(Blue, blue);
}
map 함수를 통해 0~1023의 범위를 0~255로 변경합니다. analongRead();에 /4를 하여도 무방합니다.