[FAQ] Wie schließe ich einen Taster an den GPIO an? Was ist ein Pullup / Pulldown?

  • Da die Frage immer mal wieder gestellt wird, versuche ich für Laien verständlich zu erklären, wie man einen Taster/Schalter an den GPIO anschließen kann. (Dem Physiker oder E-Techniker mögen wegen der gewählten Begriffe die Haare zu Berge stehen, aber für Einsteiger ist "Minus" leichter zu verstehen als "GND")


    Wird ein Taster an den GPIO angeschlossen, muss dieser erkennen können, ob der Taster gedrückt ist oder nicht. Dazu benötigt der GPIO einen definierten Wert. Dieser kann LOW (Anschluss an Minus) oder HIGH (Anschluss an max. 3,3V) sein. In meinem Beispiel gehe ich davon aus, dass der GPIO bei nicht gedrücktem Taster LOW ist.


    Hierzu wird der GPIO als Eingang definiert und mit einem 10 KOhm Widerstand (Pulldown) mit Minus (Masse) verbunden. (Man kann per Software auch die internen Widerstände aktivieren. Ich persönlich bevorzuge aber die externe Hardware-Variante, weil ich die nicht versehentlich auskommentieren oder vergessen kann) Nun liegt der definierte Wert LOW an. Der Taster wird ebenfalls an den GPIO angeschlossen. Der zweite Anschluss des Tasters wird an Plus (3,3V) angeschlossen.


    Wir der Taster gedrückt, fließen diese 3,3V zum GPIO, so dass der GPIO nun den definierten Wert HIGH hat. Der Widerstand funktioniert dann wie eine "Strombremse", die dafür sorgt, dass Plus und Minus nicht direkt zusammengeschaltet werden und einen Kurzschluss verursachen.


    Berechnen kann man den fließenden Strom mit dem Ohmschen Gesetz (U=R*I)
    U: Spannung (gemessen in Volt)
    R: Widerstand (gemessen in Ohm)
    I: Stromstärke (gemessen in Ampere)


    Umgestellt auf unseren Fall lautet die Formel I=U/R
    U = 3,3V
    R = 10.000 Ohm
    Daraus ergibt sich I=0,00033 A (0,33mA)


    Etwas technisch ausführlicher und mit Grafiken wird das Thema Pullup und Pulldown im Elektronik-Kompendium erklärt.