Eine LED dimmen – Arduino Kurs Teil 5
Zwei Taster lösen im Arduino Programm einen Interrupt aus und die LED wird damit gedimmt. Die Kurve der PWM Dimmung wird dem optischen Eindruck angepaßt.
Das Pogramm
// Zwei externe Taster dimmen die LED 6 per Interrupt
// Beim Arduino Uno / Nano sind das Pin2 oder Pin3 für den Interrupt
// Beim Arduino Uno / Nano sind das Pin 3, 5, 6, 9, 10, 11 für PWM
int LED=6, taster1=2, taster2=3, helligkeit=5;
void setup() {
pinMode(taster1,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(taster1), isrLedDunkler, FALLING);
pinMode(taster2,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(taster2), isrLedHeller, FALLING);
analogWrite(LED,mapHelligkeit());
}
void loop() {
delay(1000);
}
void isrLedDunkler() {
helligkeit--;
if(helligkeit<=0) helligkeit=1;
analogWrite(LED,mapHelligkeit());
}
void isrLedHeller() {
helligkeit++;
if(helligkeit>10) helligkeit=10;
analogWrite(LED,mapHelligkeit());
}
int mapHelligkeit() {
return (int) helligkeit*helligkeit*helligkeit/3.93;
}
von Matthias Busse
