오늘은 가변저항으로 밝기를 조절하며 스위치로 색깔을 변경하는 기본적인 아두이노를 소개하겠습니다.
회로 소개
코드
#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를 하여도 무방합니다.
'IoT > 아두이노' 카테고리의 다른 글
[아두이노] 4digit-7세그먼트, 써미스터 (4) | 2022.07.07 |
---|---|
[아두이노] 조도 센서, 도트매트릭스(8x8) (4) | 2022.07.02 |
[아두이노] DC모터, 조이스틱 (7) | 2022.06.08 |