Wie verbindest du einen Knopf mit deinem Raspberry Pi?  Hier sind zwei Möglichkeiten, um mit Python und einer LED zu beginnen.

2 Möglichkeiten, Ihrem Raspberry Pi-Projekt eine Schaltfläche hinzuzufügen

Werbung Wenn Sie lernen, die GPIO-Pins Ihres Raspberry Pi zu verwenden, eröffnen sich Ihnen eine ganze Welt von Möglichkeiten. Die in Anfängerprojekten erlernten Grundprinzipien ebnen den Weg zu nützlichen Kenntnissen sowohl in der Heimwerkerelektronik als auch in der Programmierung. Dieses Tutorial zeigt Ihnen zwei Möglichkeiten, wie Sie Ihrem Raspberry Pi-Projekt eine Schaltfläche hinzufügen können. Mit de

Werbung

Wenn Sie lernen, die GPIO-Pins Ihres Raspberry Pi zu verwenden, eröffnen sich Ihnen eine ganze Welt von Möglichkeiten. Die in Anfängerprojekten erlernten Grundprinzipien ebnen den Weg zu nützlichen Kenntnissen sowohl in der Heimwerkerelektronik als auch in der Programmierung.

Dieses Tutorial zeigt Ihnen zwei Möglichkeiten, wie Sie Ihrem Raspberry Pi-Projekt eine Schaltfläche hinzufügen können. Mit der Taste wird eine LED angesteuert. Eine schriftliche Anleitung finden Sie unter dem Video.

Du wirst brauchen

Stellen Sie zunächst sicher, dass Sie über die folgenden Komponenten verfügen:

  • 1 x Raspberry Pi (Jeder kann, Modell 3B wird in diesem Tutorial verwendet)
  • 1 x Druckknopf
  • 1 x LED
  • 1 x 220 Ohm Widerstand (Höhere Werte sind in Ordnung, Ihre LED wird nur schwächer)
  • 1 x Steckbrett
  • Drähte anschließen

Nach dem Sammeln sollten Sie Komponenten haben, die ungefähr so ​​aussehen:

Benötigte Teile für Pi Button Tutorial

Sie benötigen außerdem eine SD-Karte, auf der das Raspbian-Betriebssystem installiert ist. Am schnellsten geht dies mit dem NOOBS-Image (New Out of the Box Software). Anweisungen dazu finden Sie in diesem Video:

Schaltung einrichten

Sie werden die GPIO-Pins des Pi verwenden, um die Schaltung zu erstellen, und wenn Sie mit ihnen nicht vertraut sind, hilft Ihnen unser Leitfaden zu den Raspberry Pi GPIO-Pins. Die Schaltung hier ist fast die gleiche wie in unserem vorherigen Raspberry Pi LED-Projekt, mit dem Zusatz der Taste, die Sie heute verwenden werden.

Richten Sie Ihre Schaltung nach diesem Schema ein:

Fritzing-Diagramm für Pi Button Tutorial

  • Die 5V- und GND- Pins werden mit den Stromschienen des Steckbretts verbunden.
  • Pin 12 (GPIO 18) wird mit dem positiven Zweig der LED verbunden.
  • Ein Bein des Widerstands wird am negativen Bein der LED und das andere Bein an der Erdungsschiene des Steckbretts befestigt.
  • Pin 16 (GPIO 23) wird an einer Seite der Taste und die andere Seite an der Erdungsschiene des Steckbretts befestigt.

Sobald es eingerichtet ist, sollte es so aussehen:

Raspberry Pi ist mit einem Knopf und einer LED auf einem Steckbrett verbunden.

Überprüfen Sie Ihren Stromkreis, um sicherzustellen, dass er korrekt ist, und schalten Sie dann Ihren Raspberry Pi ein.

Methode 1: Die RPi.GPIO-Bibliothek

Gehen Sie nach dem Booten des Pi zum Menü und wählen Sie Programmierung> Thonny Python IDE . Ein neues Python-Skript wird geöffnet. Wenn Sie Python noch nicht kennen, ist es eine großartige Sprache für Anfänger und es gibt viele großartige Orte, an denen Sie mehr über Python lernen können, nachdem Sie dieses Tutorial durchgearbeitet haben!

Thonny Python IDE

Importieren Sie zunächst die RPi.GPIO-Bibliothek und stellen Sie den Kartenmodus ein.

 import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) 

Deklarieren Sie nun die Variablen für die LED- und Button-Pin-Nummern.

 ledPin = 12 buttonPin = 16 

Beachten Sie, dass wir, da der Board-Modus auf BOARD eingestellt ist, die Pin-Nummern anstelle der GPIO-Nummern verwenden. Wenn Sie das verwirrt, hilft Ihnen ein Pinbelegungsdiagramm für den Himbeer-Pi.

Mein Pi Pinout

Schaltfläche einrichten

Es ist Zeit, die GPIO-Pins einzurichten. Setzen Sie den LED-Pin auf den Ausgang und den Button-Pin auf den Eingang mit einem Pull-Up-Widerstand

 GPIO.setup(ledPin, GPIO.OUT) GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) 

Der Text nach GPIO.IN bezieht sich auf den internen Pull-Up-Widerstand des Raspberry Pi. Sie müssen dies aktivieren, um einen sauberen Messwert von der Schaltfläche zu erhalten. Da der Taster auf Masse liegt, benötigen wir einen Pull-Up-Widerstand, um den Eingangspin auf HIGH zu halten, bis Sie ihn drücken.

Bevor wir weitermachen, schauen wir uns die Pull-Up- und Pull-Down-Widerstände an.

Pause: Pull Up / Pull Down Widerstände

Wenn Sie einen GPIO-Pin für die Eingabe konfigurieren, liest er diesen Pin, um seinen Status zu bestimmen. In dieser Schaltung müssen Sie ablesen, ob ein Pin HIGH oder LOW ist, um die LED auszulösen, wenn die Taste gedrückt wird. Dies wäre einfach, wenn dies die einzigen Zustände wären, die eine Stecknadel haben kann, aber leider gibt es einen dritten Zustand: FLOATING .

Ein potentialfreier Pin hat einen Wert zwischen hoch und niedrig, wodurch der Eingang unvorhersehbar wird. Pull-Up / Pull-Down-Widerstände lösen dies.

Beispieldiagramm für einen Pull-Up-Widerstand

Das obige Bild ist ein vereinfachtes Diagramm einer Taste und eines Himbeer-Pi. Der GPIO-Pin wird über die Taste mit Masse verbunden. Der interne Pullup-Widerstand verbindet den GPIO-Pin mit dem internen Pi-Netzteil. Dieser Strom fließt und der Stift wird sicher auf HIGH gezogen.

Wenn Sie die Taste drücken, wird der GPIO-Pin direkt mit dem Erdungspin verbunden, und die Taste zeigt einen niedrigen Pegel an.

Pull-Down-Widerstands-Beispieldiagramm

Pull-Down-Widerstände sind für den Fall, dass der Schalter an den Power-Pin angeschlossen ist. Diesmal verbindet der interne Widerstand den GPIO-Pin mit Masse und hält LOW, bis Sie die Taste drücken.

Die Pull-Up- und Pull-Down-Widerstandstheorie ist auf den ersten Blick verwirrend, aber wichtig, wenn man mit Mikrocontrollern arbeitet. Fürs Erste, wenn du es nicht ganz verstehst, mach dir keine Sorgen!

Lass uns dort weitermachen, wo wir aufgehört haben.

Die Programmschleife

Als nächstes richten Sie die Programmschleife ein:

 while True: buttonState = GPIO.input(buttonPin) if buttonState == False: GPIO.output(ledPin, GPIO.HIGH) else: GPIO.output(ledPin, GPIO.LOW) 

Die while-True- Schleife führt den darin enthaltenen Code kontinuierlich aus, bis wir das Programm beenden. Bei jeder Schleife wird der buttonState aktualisiert, indem die Eingabe vom buttonPin gelesen wird . Solange die Taste nicht gedrückt wird, bleibt sie HOCH .

Sobald die Taste gedrückt wird, wird buttonState LOW . Dies löst die if-Anweisung aus, da False gleich LOW ist und die LED leuchtet. Die else- Anweisung schaltet die LED aus, wenn der buttonPin nicht False ist.

Speichern Sie Ihr Skript und führen Sie es aus

Speichern Sie Ihr Skript, indem Sie auf Datei> Speichern unter klicken und einen Dateinamen auswählen. Sie können die Skizze ausführen, indem Sie auf die grüne Wiedergabetaste in der Thonny-Symbolleiste klicken.

Thonny Systemsteuerung

Drücken Sie nun die Taste und Ihre LED sollte aufleuchten! Sie können jederzeit die rote Stop- Taste drücken, um das Programm zu stoppen

Push Button Testing Gif

Wenn Sie Probleme haben, überprüfen Sie Ihren Code und die Schaltungseinrichtung sorgfältig auf Fehler und versuchen Sie es erneut.

Methode 2: GPIO Zero Library

Die RPi.GPIO-Bibliothek ist fantastisch, aber es gibt ein neues Kind auf dem Block. Die GPIO Zero Library wurde vom Community-Manager von Raspberry Pi, Ben Nuttall, mit dem Ziel erstellt, den Code einfacher und einfacher zu lesen und zu schreiben.

Um die neue Bibliothek zu testen, öffnen Sie eine neue Thonny-Datei und importieren Sie die Bibliothek.

 from gpiozero import LED, Button from signal import pause 

Sie werden feststellen, dass Sie nicht die gesamte Bibliothek importiert haben. Da Sie nur eine LED und eine Schaltfläche verwenden, benötigen Sie nur diese Module im Skript. Wir importieren auch Pause aus der Signalbibliothek, einer Python-Bibliothek für die Ereignisverwaltung.

Das Einrichten der Pins ist mit GPIO Zero viel einfacher:

 led = LED(18) button = Button(23) 

Da die GPIO Zero-Bibliothek Module für die LED und die Taste enthält, müssen Sie keine Ein- und Ausgänge wie zuvor einrichten. Sie werden bemerken, dass sich die Zahlen hier von den obigen unterscheiden, obwohl sich die Stifte nicht geändert haben. Dies liegt daran, dass GPIO Zero nur die GPIO-Pin-Nummern verwendet (auch als Broadcom- oder BCM-Nummern bezeichnet).

Der Rest des Skripts besteht nur aus drei Zeilen:

 button.when_pressed = led.on button.when_released = led.off pause() 

Der Aufruf von pause () hier verhindert einfach, dass das Skript beendet wird, wenn es den unteren Rand erreicht. Die Zwei-Tasten-Ereignisse werden ausgelöst, wenn die Taste gedrückt und losgelassen wird. Speichern Sie Ihr Skript und führen Sie es aus, und Sie werden das gleiche Ergebnis wie zuvor sehen!

Zwei Möglichkeiten, Raspberry Pi einen Button hinzuzufügen

Von den beiden Möglichkeiten, die Schaltfläche einzurichten, ist die Methode GPIO Zero die einfachste. Es lohnt sich immer noch, sich mit der RPi.GPIO-Bibliothek vertraut zu machen, da sie von den meisten Raspberry Pi-Einsteigerprojekten verwendet wird. So einfach dieses Projekt ist, das Wissen kann für eine Reihe von Dingen verwendet werden.

Die Verwendung der GPIO-Pins ist eine großartige Möglichkeit, Ihre eigenen Geräte zu erlernen und zu erfinden, jedoch weit entfernt von allem, was Sie mit dem Pi tun können. Unser inoffizieller Leitfaden zum Raspberry Pi Raspberry Pi: Das inoffizielle Tutorial Raspberry Pi: Das inoffizielle Tutorial Ob Sie ein aktueller Pi-Besitzer sind, der mehr erfahren möchte, oder ein potenzieller Besitzer dieses Geräts in Kreditkartengröße, dies ist kein Leitfaden du willst vermissen Read More steckt voller kreativer Ideen und Tutorials, die Sie selbst ausprobieren können! In einem anderen Tutorial wie diesem erfahren Sie, wie Sie eine Schaltfläche für eine Wi-Fi-Verbindung erstellen. So erstellen Sie eine eigene Schaltfläche für eine Wi-Fi-Verbindung mit ESP8266. So erstellen Sie eine eigene Schaltfläche für eine Wi-Fi-Verbindung mit ESP8266. In diesem Tutorial erfahren Sie, wie Sie eine Wi-Fi-Verbindung herstellen Erstellen einer Wi-Fi-fähigen Schaltfläche mit NodeMCU und IFTTT. Weiterlesen .

Erfahren Sie mehr über: DIY-Projekt-Tutorials, GPIO, Python, Raspberry Pi.