Lösung: LED PWM I
Sketch: Quelltext
// Variablen
int Helligkeit=0;
void setup() {
pinMode(8, INPUT_PULLUP); // + Taster
pinMode(9, INPUT_PULLUP); // - Taster
pinMode(13, OUTPUT); // interne LED
digitalWrite(13, LOW); // interne LED aus
}
void loop() {
if (digitalRead(8)==LOW){
if (Helligkeit < 10) {
Helligkeit = Helligkeit + 1;
}
}
if (digitalRead(9)==LOW){
if (Helligkeit > 0) {
Helligkeit = Helligkeit - 1;
}
}
// ***** PWM Beginn *****
digitalWrite(13,HIGH);
delay(Helligkeit*2);
digitalWrite(13,LOW);
delay((10-Helligkeit)*2);
// ***** PWM Ende *****
}
Sketch: Erklärung
Variablen
Die globale Variable Helligkeit wird als int (Integer) definiert und mit 0 initialisiert.
Setup
Pin 8 und Pin 9 werden als INPUT_PULLUP definiert, Pin 13 (interne LED) als OUTPUT .
Die interne LED wird ausgeschaltet.
Loop
Wenn der Taster an Pin 8 gedrückt wurde, wird zunächst überprüft, ob der Wert von Helligkeit < 10 ist, damit kein Überlauf stattfindet. Wenn nicht, wird der Wert um 1 erhöht.
Wenn der Taster an Pin 9 gedrückt wurde, wird zunächst überprüft, ob der Wert von Helligkeit > 0 ist, damit kein Überlauf stattfindet. Wenn nicht, wird der Wert um 1 erniedrigt.
Im PWM-Teil wird die LED ensprechend des Wertes von Helligkeit ein- bzw. ausgeschaltet.
Schaltplan / Layout
Elektronik / Hardware
Man muss darauf achten, den Taster richtig anzuschließen, ggf. muss man vorher mit einem Durchgangsprüfer die Pinbelegung des Tasters prüfen.
Da Pin 8 und Pin 9 low-active sind, müssen die Taster mit GND verbunden werden.
Messungen
|