Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
1.1.2 RGB-LED
Einführung
In diesem Projekt werden wir eine RGB-LED steuern, um verschiedene Farben blinken zu lassen.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Schaltplan
Nachdem die Pins von R, G und B mit einem Strombegrenzungswiderstand verbunden sind, verbinden Sie diese mit GPIO17, GPIO18 und GPIO27. Der längste Pin (GND) der LED verbindet sich mit dem GND des Raspberry Pi. Wenn den drei Pins unterschiedliche PWM-Werte gegeben werden, zeigt die RGB-LED verschiedene Farben an.
T-Board Name |
physical |
BCM |
GPIO17 |
Pin 11 |
17 |
GPIO18 |
Pin 12 |
18 |
GPIO27 |
Pin 13 |
27 |
Experimentelle Verfahren
Schritt 1: Bauen Sie den Schaltkreis auf.
Schritt 2: Öffnen Sie die Code-Datei.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Schritt 3: Ausführen.
sudo python3 1.1.2_rgbLed_zero.py
Nachdem der Code ausgeführt wurde, sehen Sie, dass RGB rot, grün, blau, gelb, rosa und cyan anzeigt.
Warnung
Wenn die Fehlermeldung RuntimeError: Cannot determine SOC peripheral base address angezeigt wird, lesen Sie bitte Wenn gpiozero nicht funktioniert.
Code
Bemerkung
Sie können den unten stehenden Code Modifizieren/Zurücksetzen/Kopieren/Ausführen/Stoppen. Aber bevor Sie das tun, müssen Sie zum Quellcode-Pfad wie davinci-kit-for-raspberry-pi/python-pi5 gehen. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um die Auswirkungen zu sehen.
#!/usr/bin/env python3
from gpiozero import RGBLED
from time import sleep
# Definieren Sie eine Liste von Farben für die RGB-LED im RGB-Format (Rot, Grün, Blau).
# Jede Farbkomponente reicht von 0 (aus) bis 1 (volle Intensität).
COLORS = [(1, 0, 0), (0, 1, 0), (0.2, 0.1, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
# Initialisieren Sie eine RGB-LED. Verbinden Sie die rote Komponente mit GPIO 17, grün mit GPIO 18 und blau mit GPIO 27.
rgb_led = RGBLED(red=17, green=18, blue=27)
try:
# Kontinuierlich durch die definierten Farben durchlaufen.
while True:
for color in COLORS:
# Stellen Sie die RGB-LED auf die aktuelle Farbe ein.
rgb_led.color = color
# Geben Sie die aktuelle Farbe auf der Konsole aus.
print(f"Farbe eingestellt auf: {color}")
# Warten Sie 1 Sekunde, bevor Sie zur nächsten Farbe wechseln.
sleep(1)
except KeyboardInterrupt:
# Behandeln Sie ein KeyboardInterrupt (Ctrl+C) um die Schleife elegant zu beenden.
# Die GPIO-Bereinigung wird automatisch von GPIO Zero bei Beendigung des Skripts verwaltet.
pass
Code-Erklärung
Hier werden die Klasse
RGBLEDaus der Bibliothekgpiozerozum Steuern einer RGB-LED und die Bibliothektimefür Verzögerungen im Code importiert.#!/usr/bin/env python3 from gpiozero import RGBLED from time import sleep
Die Liste
COLORSenthält Tupel, die verschiedene Farben im RGB-Format darstellen. Durch Zuweisen unterschiedlicher Pulsweitenmodulations- (PWM-) Werte an jeden der R-, G- und B-Pins über das Attributrgb_led.colorkann die LED eine Vielzahl von Farben erzeugen. Die PWM-Werte reichen von 0 bis 1, wobei 0 keine Intensität (aus) und 1 volle Intensität für jede Farbkomponente darstellt.Beispielsweise führt das Einstellen von
rgb_led.color = (1, 0, 0)dazu, dass die LED rot leuchtet, da volle Intensität für die rote Komponente eingestellt wird, während Grün und Blau ausgeschaltet bleiben. Verschiedene Kombinationen dieser Werte führen zu unterschiedlichen Farben. Diese Technik der Farbmischung durch PWM ermöglicht die Erstellung einer breiten Palette von Farben auf der RGB-LED.COLORS = [(1, 0, 0), (0, 1, 0), (0.2, 0.1, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
Eine RGB-LED wird initialisiert, wobei ihre roten, grünen und blauen Komponenten jeweils an die GPIO-Pins 17, 18 und 27 angeschlossen sind.
# Initialisieren Sie eine RGB-LED. Verbinden Sie die rote Komponente mit GPIO 17, grün mit GPIO 18 und blau mit GPIO 27. rgb_led = RGBLED(red=17, green=18, blue=27)
Die Schleife
while True:durchläuft kontinuierlich die inCOLORSdefinierten Farben. Für jede Farbe setztrgb_led.color = colordie LED auf diese Farbe, undsleep(1)pausiert für 1 Sekunde.try: # Kontinuierlich durch die definierten Farben durchlaufen. while True: for color in COLORS: # Stellen Sie die RGB-LED auf die aktuelle Farbe ein. rgb_led.color = color # Geben Sie die aktuelle Farbe auf der Konsole aus. print(f"Farbe eingestellt auf: {color}") # Warten Sie 1 Sekunde, bevor Sie zur nächsten Farbe wechseln. sleep(1)
Dieser Abschnitt behandelt ein
KeyboardInterrupt(zum Beispiel das Drücken von Ctrl+C) auf elegante Weise. Daspass-Statement wird als Platzhalter verwendet, um anzuzeigen, dass bei einer Unterbrechung keine spezifische Aktion unternommen wird, da GPIO Zero die GPIO-Bereinigung automatisch handhabt.except KeyboardInterrupt: # Behandeln Sie ein KeyboardInterrupt (Ctrl+C) um die Schleife elegant zu beenden. # Die GPIO-Bereinigung wird automatisch von GPIO Zero bei Beendigung des Skripts verwaltet. pass