Inhaltsverzeichnis:

Steuern mehrerer LEDs mit Python und den GPIO-Pins Ihres Raspberry Pi - Gunook
Steuern mehrerer LEDs mit Python und den GPIO-Pins Ihres Raspberry Pi - Gunook

Video: Steuern mehrerer LEDs mit Python und den GPIO-Pins Ihres Raspberry Pi - Gunook

Video: Steuern mehrerer LEDs mit Python und den GPIO-Pins Ihres Raspberry Pi - Gunook
Video: Raspberry Pi LED blinken lassen mit Python-Programm & Berechnung des LED Vorwiderstandes (GPIO) 2024, Juli
Anonim
Steuerung mehrerer LEDs mit Python und den GPIO-Pins Ihres Raspberry Pi
Steuerung mehrerer LEDs mit Python und den GPIO-Pins Ihres Raspberry Pi

Dieses Instructable zeigt, wie Sie mehrere GPIO-Pins auf Ihrem RaspberryPi steuern, um 4 LEDs mit Strom zu versorgen. Es führt Sie auch in Parameter und bedingte Anweisungen in Python ein.

Unsere vorherige Anleitung mit den GPIO-Pins Ihres Raspberry Pi zur Steuerung einer LED zeigt, wie Sie eine einzelne LED mit dem Befehl GPIO.output ein- und ausschalten. Dieses Instructable baut auf diesem Wissen auf, um Ihnen beizubringen, wie Sie mehr Kontrolle über Ihre Schaltung erhalten.

Schritt 1: Was Sie brauchen

Was wirst du brauchen
Was wirst du brauchen
Was wirst du brauchen
Was wirst du brauchen

- Ein RaspberryPi mit bereits installiertem Raspbian. Sie müssen auch in der Lage sein, mit einem Monitor, einer Maus und einer Tastatur oder über Remote Desktop auf den Pi zuzugreifen. Sie können jedes Raspberry Pi-Modell verwenden. Wenn Sie eines der Pi Zero-Modelle haben, möchten Sie möglicherweise einige Header-Pins an den GPIO-Port anlöten.

- Rote, blaue, gelbe und grüne LEDs

- Ein lötfreies Prototyping-Breadboard

- 4 x 330 Ohm Widerstände

- Einige Stecker-zu-Buchse-Überbrückungsdrähte

Schritt 2: Erstellen Sie Ihre Schaltung

Bauen Sie Ihre Schaltung
Bauen Sie Ihre Schaltung
Bauen Sie Ihre Schaltung
Bauen Sie Ihre Schaltung

Bauen Sie die obige Schaltung auf Ihrem Steckbrett auf und stellen Sie sicher, dass sich keine der Komponentenleitungen berühren und dass die LEDs richtig herum angeschlossen sind.

Wie erkennen Sie die positiven und negativen Leitungen (die Polarität) an Ihren LEDs? Wenn Sie sich eine LED genau ansehen, werden Sie feststellen, dass sie zwei kleine Metallstücke im Inneren des farbigen Gehäuses hat. Diese werden Anode und Kathode genannt. Die Kathode ist die größte der beiden und wird auch mit dem Minuskabel der LEDs verbunden.

Nachdem Sie Ihre Schaltung überprüft haben, schließen Sie die Überbrückungskabel an die GPIO-Pins Ihres Raspberry Pi an, indem Sie dem obigen Diagramm folgen.

Schritt 3: Erstellen Sie ein Skript zum Steuern und Testen der LEDs

Erstellen Sie ein Skript zum Steuern und Testen der LEDs
Erstellen Sie ein Skript zum Steuern und Testen der LEDs

Öffnen Sie auf Ihrem Raspberry Pi IDLE (Menü > Programmierung > Python 2 (IDLE)).

Öffnen Sie ein neues Projekt, gehen Sie zu Datei > Neue Datei. Geben Sie dann den folgenden Code ein (oder kopieren Sie ihn und fügen Sie ihn ein):

RPi. GPIO als GPIO importieren

Importzeit GPIO.setmode(GPIO. BCM) GPIO.setup(17, GPIO. OUT) GPIO.setup(18, GPIO. OUT) GPIO.setup(22, GPIO. OUT) GPIO.setup(23, GPIO. OUT) GPIO.output(17, True) time.sleep(3) GPIO.output(17, False) time.sleep(1) GPIO.output(18, True) time.sleep(3) GPIO.output(18, False) time.sleep(1) GPIO.output(22, True) time.sleep(3) GPIO.output(22, False) time.sleep(1) GPIO.output(23, True) time.sleep(3) GPIO. Ausgabe(23, Falsch)

Speichern Sie Ihr Projekt als multilights.py (Datei > Speichern unter) in Ihrem Raspberry Pis-Dokumentenordner.

Öffnen Sie auf Ihrem Raspberry Pi Terminal (Menü > Zubehör > Terminal) und navigieren Sie zu Ihrem Ordner Dokumente, indem Sie Folgendes eingeben:

cd /home/pi/Dokumente

Sie können Ihr neues Skript jetzt ausführen, indem Sie Folgendes eingeben:

python multilights.py

Die Lichter werden abwechselnd ein- und ausgeschaltet. Das obige Skript verwendet den Befehl time.sleep, um zwischen jedem Schritt eine Pause zu erstellen, sodass jedes Licht 3 Sekunden lang eingeschaltet bleibt und 1 Sekunde lang gewartet wird, bevor das nächste Licht eingeschaltet wird.

Schritt 4: Hinzufügen von Flexibilität durch die Verwendung von Parametern und bedingten Anweisungen

Durch die Verwendung von Parametern und Bedingungsanweisungen können wir das obige Skript viel flexibler gestalten.

Ein Parameter ermöglicht es Ihnen, einen Wert zu speichern, den Sie später im Skript verwenden können. Die gängigsten Wertetypen sind Strings (Text), Integer (ganze Zahlen) oder Floats (Dezimalzahlen).

Eine bedingte Anweisung bestimmt, ob ein Codesegment ausgeführt werden soll oder nicht, indem überprüft wird, ob eine bestimmte Bedingung erfüllt ist. Die Bedingung kann auch Parameter beinhalten.

Öffnen Sie IDLE auf Ihrem Raspberry Pi und öffnen Sie ein neues Projekt (Datei > Neue Datei). Geben Sie dann Folgendes ein. Achten Sie darauf, dass alle Einzüge (Tabulatoren) eingeschlossen sind, indem Sie die Tabulatortaste verwenden:

RPi. GPIO als GPIO importieren

import time from sys import argv whichled=argv[1] ledaction = argv[2] LEDa=17 LEDb=18 LEDc=22 LEDd=23 GPIO.setmode(GPIO. BCM) GPIO.setup(LEDa, GPIO. OUT) GPIO. setmode(GPIO. BCM) GPIO.setup(LEDb, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDc, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDd, GPIO. OUT) if ledaction=="off": if whichled=="a": GPIO.output(LEDa, False) if whichled=="b": GPIO.output(LEDb, False) if whichled=="c": GPIO.output(LEDc, False) if whichled=="d": GPIO.output(LEDd, False) if whichled=="all": GPIO.output(LEDa, False) GPIO.output(LEDb, False) GPIO. output(LEDc, False) GPIO.output(LEDd, False) if ledaction=="on": if whichled=="a": GPIO.output(LEDa, True) if whichled=="b": GPIO.output(LEDb, True) if whichled=="c": GPIO.output(LEDc, True) if whichled=="d": GPIO.output(LEDd, True) if whichled=="all": GPIO.output(LEDa, True) GPIO.output(LEDb, True) GPIO.output(LEDc, True) GPIO.output(LEDd, True)

Speichern Sie Ihr Projekt als controllight.py (Datei > Speichern unter) in Ihrem Dokumentenordner. Öffnen Sie nun Terminal (Menü > Zubehör > Terminal) und geben Sie den folgenden Befehl ein:

python controllight.py b on

Die zweite LED sollte aufleuchten. Geben Sie nun Folgendes ein:

python controllight.py b aus

Die zweite LED sollte erlöschen.

In den Zeilen 5, 6, 7 & 8 legen wir die Parameter LEDa, LEDb, LEDc und LEDd an, um zu speichern, welchen GPIO-Pin wir mit welcher LED verbunden haben. Dies ermöglicht es uns, alternative GPIO-Pins zu verwenden, ohne wesentliche Änderungen am Skript vornehmen zu müssen.

Wenn wir beispielsweise die erste LED-Leitung stattdessen an Pin 3 (GPIO 2) anschließen, müssen wir nur Zeile 5 wie folgt ändern:

LEDa=2

Zeile 4 speichert die Werte, die Sie nach controllight.py eingegeben haben, in die Parameter whichled (c) und ledaction (on). Das Skript verwendet dann diese Parameter zusammen mit einer Reihe von Bedingungsanweisungen, um zu entscheiden, welche LED gesteuert und ob sie ein- oder ausgeschaltet werden soll.

Zeile 16 (wenn ledaction=="on":) ist eine bedingte Anweisung. Die eingerückten Zeilen, die dieser Anweisung folgen, werden nur ausgeführt, wenn die Bedingung der Anweisung erfüllt ist. In diesem Szenario ist die Bedingung, dass ledaction den Text on enthält.

Können Sie durch das Durchlesen der anderen Bedingungsanweisungen des Skripts vorhersagen, was passiert, wenn Sie den folgenden Befehl in Terminal eingeben?

python controllight.py alle an

Probieren Sie es aus und posten Sie Ihre Antwort im Kommentarbereich unten.

Empfohlen: