Nr. 04 – Pulsierende LED

Aufgabe: Eine LED soll pulsierend heller und dunkler werden. (Auch als engl. „faden“ bezeichnet)

Material: Raspberry Pi / eine LED (blau) / Ein Widerstand mit 100 Ohm / Breadboard / Kabel (Materialbeschaffung: www.funduinoshop.com)


Um die Helligkeit einer LED zu variieren, müsste man die Spannung jedoch variieren können. Zum Beispiel 5V wenn die LED hell leuchtet. 4 Volt, wenn sie etwas dunkler leuchtet usw. Dies funktioniert mit der Pulsweitenmodulation (PWM genannt). Die PWM lässt die 5V Spannung pulsieren. Die Spannung wird also im Millisekundenbereich ein und ausgeschaltet. Bei einer hohen PWM liegt das 5V Signal nahezu durchgehend am jeweiligen Pin an. Bei einer geringen PWM ist das 5V Signal kaum noch vorhanden (Da dies eine sehr kompakte Zusammenfassung ist, sollte man sich im Internet nach weiteren Erläuterungen umsehen). Mit dieser PWM kann man bei LEDs einen ähnlichen Effekt erreichen, als würde man die Spannung variieren. Bei dem Raspberry Pi kann man auf allen GPIO-Pins die software PWM benutzen. Es gibt aber auch zwei spezielle Hardware PWM Pins. Los geht’s!

# Wir starten mit dem importieren der Lybraries
import RPI.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM) # Wir stellen den Modus auf BCM ein

LED=23; # Das Wort „LED“ steht jetzt für die Zahl „23“.

GPIO.setup(LED,GPIO.OUT) # „LED” (Pin 23) ist ein Ausgang.

Dimmer = GPIO.PWM(LED,100) # Wir legen die LED als PWM mit einer Frequenz von 100 fest

Dimmer.start(0) # Dimmer wird gestartet

# Hier beginnt die Schleife
try:
  while True:	#W hile-Schleife damit das Programm durchgehend läuft
    for dc in range(0,101,5) # Schleife der Frequenz in 5er-Schritten.
      Dimmer.ChangeDutyCycle(dc) # Ändern der Frequenz des Dimmers.
      time.sleep(0.1) # Warte 0.1 Sekunde.
    for dc in range(100,-1,-5) # Schleife der Frequenz in -5er-Schritten.
      Dimmer.ChangeDutyCycle(dc) # Ändern der Frequenz des Dimmers.
      time.sleep(0.1) # Warte 0.1 Sekunde.

except KeyboardInterrrupt: # Mit STRG+C unterbrechen wir das Programm
  print (“Beendet”) # Schreibe “Beendet” in das Shell-Fenster
  Dimmer.stop() # Stop des Dimmers.
  GPIO.cleanup() # Beende das Programm.