Raspberry Pi - LED - Fade (Abdimmen)

Diese Anleitung zeigt Ihnen, wie Sie einen Raspberry Pi programmieren, um eine LED zu dimmen (fade). Wir werden drei Beispiele durchgehen und die Unterschiede zwischen ihnen vergleichen:

Hardware Erforderlich

1×Raspberry Pi 5
1×LED Kit
1×LED (red)
1×LED Module
1×220 Ohm Widerstand
1×Breadboard (Steckplatine)
1×Jumper-Kabel
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.

Über LED

Die LED Pinbelegung

Eine LED hat zwei Pins:

  • Der Kathoden(-) Pin muss mit GND (0V) verbunden werden
  • Der Anoden(+) Pin wird verwendet, um den Zustand der LED zu steuern
LED pinout

Wie es funktioniert

Sobald die Kathode(-) mit GND verbunden ist:

  • Verbindet man GND mit der Anode(+), ist die LED AUS.
  • Verbindet man VCC mit der Anode(+), ist die LED EIN.
  • Das Erzeugen eines PWM-Signals an der Anode(+) stellt die Helligkeit der LED entsprechend dem PWM-Wert ein. Dieser Wert reicht von 0 bis 255, wobei höhere Werte die LED heller und niedrigere Werte sie dunkler machen.
  • Wenn der PWM-Wert 0 ist, entspricht dies GND und die LED ist AUS.
  • Wenn der PWM-Wert 255 ist, entspricht dies VCC und die LED ist vollständig EIN.
How LED Works

※ Notiz:

Bei den meisten LEDs muss ein Widerstand zwischen die Anode (+) und VCC geschaltet werden. Der Wert des Widerstands wird durch die Spezifikationen der LED bestimmt.

Raspberry Pi - LED dimmen

Einige der Pins am Raspberry Pi können programmiert werden, um ein PWM-Signal zu erzeugen. Um eine LED zu dimmen, können wir den Anoden(+) Pin der LED mit einem Pin am Raspberry Pi verbinden, die Kathode(-) mit Ground, und den Raspberry Pi programmieren, um ein PWM-Signal am Pin zu erzeugen.

Schaltplan

Raspberry Pi LED wiring diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

Wie man programmiert

  • Richten Sie einen digitalen Ausgang an einem Raspberry Pi Pin mit der GPIO.setup() Funktion ein.
  • Zum Beispiel für Pin GPIO18:
GPIO.setup(18, GPIO.OUT)
  • Stellen Sie die Helligkeit der LED ein, indem Sie ein PWM-Signal mit der pwm.ChangeDutyCycle() Funktion erstellen.
pwm = GPIO.PWM(LED_PIN, 1000) pwm.start(0) pwm.ChangeDutyCycle(brightness)

Die Helligkeit kann von 0 bis 100 reichen.

Raspberry Pi Code dimmt LED

Schnelle Schritte

  • Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem gleichen lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie Bibliotheken installieren müssen.
  • Wenn Sie zum ersten Mal einen Raspberry Pi verwenden, sehen Sie wie Sie den Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den eingebauten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. Siehe wie Sie Ihren PC über SSH mit dem Raspberry Pi verbinden.
  • Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Erstellen Sie eine Python-Skriptdatei led_fade.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-led-fade import RPi.GPIO as GPIO from time import sleep LED_PIN = 18 fadePercent = 5 brightness = 0 GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN,GPIO.OUT) pwm = GPIO.PWM(LED_PIN, 1000) pwm.start(0) try: while True: pwm.ChangeDutyCycle(brightness) # change the brightness for next time through the loop: brightness = brightness + fadePercent; # reverse the direction of the fading at the ends of the fade: if brightness <= 0 or brightness >= 100: fadePercent = -fadePercent; # wait for 30 milliseconds to see the dimming effect sleep(0.03); finally: GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 led_fade.py
  • Überprüfen Sie die Helligkeit der LED.

Das Skript läuft in einer unendlichen Schleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.

Code-Erklärung

Schauen Sie sich die zeilenweise Erklärung in den Kommentaren des Quellcodes an!

※ Notiz:

Das obige Beispiel verwendet die time.sleep() Funktion, um einen Fade-In und Fade-Out Effekt zu erzeugen. Die time.sleep() Funktion lässt die LED jedoch ungleichmäßig dimmen und blockiert die Ausführung anderen Codes. In den kommenden Abschnitten werden wir lernen, wie man sanft ein- und ausblendet, ohne anderen Code zu blockieren, indem wir die millis() Funktion verwenden.

Wie man LED in einem Zeitraum ein-/ausblendet ohne time.sleep() zu verwenden

Schnelle Schritte

  • Erstellen Sie eine Python-Skriptdatei led_fade.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-led-fade import RPi.GPIO as GPIO import time LED_PIN = 18 FADE_PERIOD = 3000 FADE_IN_MODE = True FADE_OUT_MODE = False fadeMode = FADE_IN_MODE start_time = 0 brightness = 0 def _map(x, in_min, in_max, out_min, out_max): return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min) GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN,GPIO.OUT) pwm = GPIO.PWM(LED_PIN, 1000) pwm.start(0) start_time = time.time()*1000 try: while True: progress = time.time()*1000 - start_time if fadeMode == FADE_IN_MODE: if progress <= FADE_PERIOD: brightness = _map(progress, 0, FADE_PERIOD, 0, 100) print(brightness) pwm.ChangeDutyCycle(brightness) else: start_time = time.time()*1000 fadeMode = FADE_OUT_MODE progress = 0 if fadeMode == FADE_OUT_MODE: if progress <= FADE_PERIOD: brightness = 100 - _map(progress, 0, FADE_PERIOD, 0, 100) print(brightness) pwm.ChangeDutyCycle(brightness) else: start_time = time.time()*1000 fadeMode = FADE_IN_MODE progress = 0 finally: pwm.stop() GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 led_fade.py
  • Überprüfen Sie die Helligkeit der LED.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!