Ein Taster schließt einen Stromkreis. Verwenden wir einen Taster an einem Mikrocontroller wie dem Raspi, so muss der Eingangs-Pin feststellen, ob Ladung anliegt (“HIGH”) oder nicht (“LOW”).

Das Problem:

  • Wenn der Taster nicht geschlossen ist, hängt der Pin mitsamt Kabel “in der Luft” und funktioniert ähnlich wie eine Antenne. Das heißt, es kommt je nach den elektromagnetischen Umgebungsbedingungen zu Falschmeldungen; es wird ein HIGH Signal konstatiert, obgleich der Stromkreis nicht geschlossen ist.

Integrierte Pull-Up Widerstände

Abhilfe schaffen hier gesonderte Schaltungen, die aus der Schaltung mit dem Taster eine weitere Leitung abzweigen. Hierfür gibt es zwei Ansätze:

  • Beim Pull-Up Wiederstand wird die Leitung zum Mikrocontroller permanent HIGH gehalten; Tastendruck liefert LOW.
  • Beim Pull-Down Wiederstand wird die Leitung zum Mikrocontroller permanent LOW gehalten; Tastendruck liefert HIGH.

Der Raspberry hat zwei Pins, die über integrierte Pull-Up Widerstände verfügen: Pin-3 (BCM-2) und Pin-5 (BCM-3). Wenn man die Schaltung mit Pull-Ups/-Downs vermeiden will, kann man diese Ports nutzen; muss diese dann aber im Code aktivieren:

GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

Ich hab die Schaltungen, wie man sie im Netz dazu haufenweise findet, nachgebaut - aber ohne zu verstehen warum das so ist. Also hab ich mich kurz schlau gemacht und das ganze in Bilder gepackt und außerdem ausgerechnet.

Disclaimer: Da ich keinen “Profi” fragen kann - alle die ich interviewed habe, sagen dass sie in Elektrotechnik gepennt haben - weiß ich nicht ob meine Denkweisen richtig sind.

Offener Taster liefert HIGH

Wenn der Taster offen ist, hat der Strom nur eine Wahl zu fließen - die Spannung liegt am PIN an, das Signal ist HIGH

Geschlossener Taster liefert LOW

Wenn der Taster geschlossen wird, fließt der Strom nicht mehr über den Widerstand, sondern nimmt den unteren Pfad direkt zum GND. Warum ist das so? Die intuitive Erklärung ist:

  • Der Strom nimmt den Weg des geringsten Widerstands. Der untere Pfad hat keinen Widerstand (bzw nur den Widerstand der stromführenden Leitung an sich). Also fließt der Strom duch den unteren Pfad.

Aber warum fließt oben gar kein Strom oben lang? Nun, das kann man ausrechnen. Man braucht dazu ein paar Rechenregeln der Elektrotechnik:

  • Das Ohmsche Gesetz U = R * I, Spannung = Widerstand * Stromstärke
  • Die Regel der Reihenschaltung: Reihenschaltungen teilen die Spannung auf (Reihenschaltungen sind “Spannungsteiler”)
  • Die Regel der Parallelschaltung: Parallelschaltungen teilen die Stromstärke auf (Parallelschaltungen sind “Stromteiler”)

Nehmen wir mit den gesetzen die Schaltung unter die Lupe:

Reihenschaltung ist Spannungsteiler

Rechnen wir die Stromstärke aus:

  • Die Stromstärke ist im linken und rechten Teil identisch. (Das gilt immer in Reihenschaltungen)
  • Bei Reihenschaltungen ist der Gesamtwiderstand immer die Summe der Einzelwiderstände. Also 11.000 Ohm
  • Aus I = U / R folgt I = 3,3V / 11.000, also
  • I = 0,3 mA

Rechnen wir nun die beiden Teilspannungen aus:

Mit Kenntnis der Stromstärke können wir die linke und rechte Seite separat ausrechnen:

  • U1 = I * R1 = 0,3 mA * 10.000 = 3V
  • U2 = I * R2 = 0,3 mA * 1.000 = 0,3V

Parallelschaltung ist Stromteiler

Weiter oben haben wir ausgerechnet, dass

  • die Spannung U2 (rechter Teil) 0,3V ist
  • die Stromstärke insgesamt 0,3mA ist

Man kann leicht herleiten, dass bei Parallelschaltungen sich der Gesamtwiderstand R zusammensetzt aus:

  • I1 / I2 = R2 / R1 (Stromteilerregel)

Den oberen Widerstand kennen wir, R1 = 1000 Ohm. Der untere Widerstand ist 0.

Damit ergibt sich für I1 = 0.

Der Strom fließt also komplett über den unteren Pfad ab.

Auswahl der Widerstände

Es ist kein Zufall, dass die Widerstände so gewählt sind wie sie sind.

Der hochohmige Widerstand mit 10k wird immer durchflossen und sorgt bei geschlossenem Taster dafür, dass maximal 0,33 mA an GND abfließen. Das schont den Akku bzw. die Stromversorgung. Dieser Widerstand ist also dazu da, den Strom zu drosseln.

Der niedrigohmige Widerstand ist nur dafür da, dass der Strom bei geschlossenem Taster den Weg des geringeren Widerstandes, nämlich die untere Leitung nimmt. Er darf aber nicht zu groß sein, sonst wird das Signal, das bei offenem Taster am Input liegt, zu klein - der Input Pin würde das Signal nicht erkennen und nicht auf HIGH schalten. Ein Input Pin schaltet unter 0,8V auf LOW, und über 2V auf HIGH.

Weitere Beiträge zum Thema