exercise
Pot(Potentiometer)로 LED 밝기 조절, 켜진 LED 개수 조절해 봅시다
material
10K Ω Potentiometer
LED(any color) 6개
220 Ω resistor 6개 / 10K Ω resistor
circuit
code
int sensorpin = 2;
int ledpins[] = {9,10,11,12,13};
int numpin = 5;
int pwmpin = 6;
int val;
void setup() {
Serial.begin(9600);
for(int i=0; i<numpin; i++) {
pinMode(ledpins[i], OUTPUT);
}
}
void loop() {
val = analogRead(sensorpin);
LightLEDs(0, 1023, 5); //function 호출
DimLED(0, 1023);
}
//function 정의
void LightLEDs(int mim_range, int max_range, int num) {
int numleds = map(val, mim_range, max_range, 0, num);
numleds = constrain(numleds, 0, num);
for(int i=0; i<numleds; i++){
digitalWrite(ledpins[i], HIGH);
}
for(int j=numleds; j<numpin; j++) {
digitalWrite(ledpins[j], LOW);
}
}
void DimLED(int mim_range, int max_range) {
int brightness = map(val, mim_range, max_range, 0, 255);
brightness = constrain(brightness, 0, 255);
analogWrite(pwmpin, brightness);
}
further exercise
[초급] 더 많은 LED를 가지고 켜지는 LED 개수를 조절해 봅시다
[중급] RGB LED를 써서 Pot을 돌리면 LED 색깔이 변하도록 해봅시다 (function 사용X)
[고급] Pot을 돌릴 때 Kit 애니메이션하는 LED 개수를 조절해 봅시다 (function 사용X)