Raspberry Pi: Taster anschließen

Viele von euch fragen sich vielleicht wie man einen Taster an den Raspberry Pi anschließen kann um beispielsweise den Raspi herunterzufahren oder einfach eine LED ein oder auszuschalten. In der folgenden Anleitung zeigen wir euch wie ihr ganz einfach einen SMD-Taster an euren Raspberry anschließen und mittels Programm abfragen könnt. Solltet ihr noch weiter Fragen oder Anregungen haben so schreibt sie wie immer unten in die Kommentare. 

Was wird benötigt?

Zunächst benötigen wir neben dem eigentlichen Raspberry Pi, MicroSD sowie dem Netzteil natürlich noch einen Taster sowie GPIO-Verbindungskabel, eine kleine Platine und Widerstände. Als Taster nehmen wir in diesem Tutorial einen sogenannten SMD-Taster, das sind diese kleinen schwarzen Taster die ihr sicherlich schon öfters auch bei anderen Geräten gesehen habt. Als Widerstände benötigen wir einmal einen mit 10k Ohm sowie einen mit 1k Ohm.

Einkaufsliste:

Im folgenden nun nochmal eine kleine Einkaufsliste zur besseren Übersicht – falls euch Bauteile fehlen, könnt ihr diese, hier ganz einfach über Amazon (Prime) bestellen.

Raspberry Pi – Kosten ca. 30-40 Euro – siehe z.B. bei Amazon*.

MicroSD 32GB – Kosten ca. 10 Euro – siehe z.B. bei Amazon*.

Netzteil für Raspberry Pi – Kosten ca. 10 Euro – siehe z.B. bei Amazon*.

SMD-Taster – Kosten ca. 5 Euro (100 Stück) – siehe z.B. bei Amazon*.

GPIO-Verbindungskabel – Kosten ca. 4 Euro (40 Stück) – siehe z.B. bei Amazon*.

Gemischte Widerstände (1kΩ, 10kΩ) – Kosten ca. 8 Euro (1280 Stück) – siehe z.B. bei Amazon*.

Platine (optional) – Kosten ca. 7 Euro (5 Stück)  – siehe z.B. bei Amazon*.

Lötkolben und Lötzinn – Kosten ca. 10 Euro – siehe z.B. bei Amazon*.

Bauteile Taster

Taster und Widerstände auf Platine löten:

Zuerst löten wir nun die Widerstände und unseren Taster auf eine Platine. Zuerst platzieren wir einen 10kΩ-Widerstand und setzen anschließend den 1kΩ-Widerstand im 90° Winkel zu dem vorherigen Widerstand. Nun setzen wir noch den SMD-Taster etwas weiter unten auf die Platine und löten alles fest. (Beim SMD-Taster bitte darauf achten, dass der Taster nur schalten kann wenn die nebeneinander liegenden Anschlüsse verwendet werden. Bei Nutzung der jeweils gegenüberliegenden Pins wird der Taster nicht schalten können.)

Schaltplan Taster Raspberry

Nun werden wir noch die Verbindungskabel für den Raspberry auf die Platine löten. In unserem Fall haben wir für die 3,3 Volt (VCC) Eingangsspannung ein graues Kabel verwendet und schließen dies am ersten 10kΩ-Widerstand an. Unser grünes Kabel dient als GND und wird am Ende des Tasters angeschlossen. Am letzten 1kΩ-Widerstand löten wir anschließend noch unser weisses Kabel an den 1kΩ-Widerstand fest um unseren Taster später auch mittels des GPIO abfragen zu können.

Platine Taster

Platine an den Raspberry anschließen:

Nachdem wir nun unsere Platine so weit fertig gestellt haben müssen wir lediglich noch die passenden Ports zum Anschließen an unseren Raspberry auswählen. In unserem Fall nehmen wir für die Spannungsversorgung den 17. Pin (VCC, 3,3 Volt) und schließen unser graues Kabel an. Unser grünes Kabel am Ende des Taster-Schaltkreises verwenden wir als GND und schließen es an den 25. Pin (GND) an. Für die spätere Abfrage ob der Taster auch gedrückt wurde müssen wir nun noch unser weisses Kabel an einen GPIO anschließen – wir nehmen in unserem Fall den 29. Pin (GPIO05).

Raspberry GPIO Pins

Funktionstest:

Nachdem wir nun alle oberen Schritte ausgeführt haben, können wir einen kleinen Funktionstest mit unserem Taster durchführen. Zunächst starten wir unseren Raspberry und loggen uns über SSH als Root-Nutzer ein. Nun erstellen wir mit dem Editor eine neue Python-Datei, dazu tippen wir folgendes in die Kommandozeile:

sudo nano TasterTest.py

Nun programmieren wir uns eine Abfrage, damit wir einen Tastendruck auch erkennen und entsprechend auswerten können – hier mal ein kleines Beispielprogramm:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import time
import RPi.GPIO as GPIO

# SET GPIO Button-Pin
gpio = 5

# Main Function
def main():
  value = 0

  while True:

    if not GPIO.input(gpio):
      value += 0.01

    if value > 0:

      if GPIO.input(gpio):
        print "gedrueckt"
        main()

    time.sleep(0.03)

  return 0

if __name__ == '__main__':
  GPIO.setmode(GPIO.BCM)
  GPIO.setup(gpio, GPIO.IN)
  main()

Anschließend speichern wir das ganze mittels der Tastenkombi STRG+X ab und testen unser neues Programm – dazu folgendes in das Terminalfenster eingeben:

sudo python TasterTest.py

Das Programm wertet nun mittels einer Schleife permanent den Taster aus – drücken wir nun kurz auf den Taster werden wir bei jedem Tastendruck eine Rückmeldung im Terminalfenster sehen:

TasterTest_01

Um die Abfrage zu Beenden können wir das Python-Programm mittels der Tastenkombination STRG+C abbrechen.

Taster im Hintergrund abfragen:

Um den Taster beispielsweise im Hintergrund abfragen zu können, kann ein sogenannter Terminal-Multiplexer eingesetzt werden – Raspbian unterstützt z.B. Screen oder tmux. Damit können Programme bequem im Hintergrund weiterlaufen selbst wenn die SSH-Session beendet wurde.



Einen Taster am Raspberry Pi auszuwerten ist nicht schwer. (Bild: Xgadget.de)
Datum:
16.06.2016, 00:10 Uhr
Aktualisiert:
28.04.2018, 00:09 Uhr
Autor:
Stefan Kröll
Comments:
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

7 Comments zu "Raspberry Pi: Taster anschließen"

  1. Peter knzusprig sagt:

    Nice Danke SICK

  2. Johannes sagt:

    Sehr geehrter Herr Stefan Kröll,

    ein Schulkollege und ich arbeiten an einer Diplomarbeit mit einem Raspberry Pi 3 und wir würden Sie fragen, ob wir diesen Code für das Starten und Herunterfahren des Raspberry Pi 3 verwenden dürfen.

    Ich bitte Sie um baldige Rückmeldung!

    MfG Johannes

    1. Stefan sagt:

      Hallo Johannes,

      kein Problem, der Code darf gerne so verwendet werden 🙂

      Mit freundlichen Grüßen
      Stefan Kröll

  3. Julio Talaverano sagt:

    Hallo Stefan,

    ich habe eine Klingel-Verlängerung in meinem Zimmer, damit ich jedes Klingeln auch beim Musikhören nicht verpasse. Jetzt möchte ich diese Klingel mit dem Raspi abgreifen und jedes mal, wenn jemand läutet, im Raspi die Uhrzeit notieren. So weiß ich auch bei Abwesenheit, ob jemand geläutet hat. Wie mache ich denn sowas? Ich heb da noch keine Erfahrung mit solchen Spielchen:-(

    Danke
    Julio

  4. Guido sagt:

    Wie sieht denn die Schaltung bei z.Bsp. 5 Tastern aus.
    GND ist klar. 1k gegen GPIO auch.
    Kann ich 3,3 V zu den Tastern nach dem 10k in Reihe schalten?

  5. Ernesto sagt:

    Du springst bei jedem Drücken rekursiv in main(). Das führt irgendwann dazu, dass Dir der Stack überläuft, da Du ja nie aus main() zurückkehrst.

* gesponserter Link
Blogverzeichnis - Bloggerei.de