Hallo schlaues Forum,
ich will als mein erstes Projekt eine Taste am meinen Raspi anschließen.
Ich hab mir ein Anfängerset gekauft, kleine Tasten sind dabei, Kabel
auch, Widerstände ebenfalls. Der Taster (jemand meinte, das wären ganz
normale "Kurzhubtasten") hat vier Anschlüsse, jetzt hat mir das Internet
verraten, dass man die zwei auf der gleichen Seite nehmen muss, warum
sagt es aber nicht, auch nicht wozu die anderen beiden da sind. Außerdem
sagt die Anleitung aus dem Internet (falls ich darf, verlinke ich sie
gern), dass man einen 1k Ohm und einen 10k Ohm Widerstand braucht,
GPIO5 --- 1k Ohm --- X --- 10K Ohm --- 3.3 V
Der Taster wird dann am X mit dem einen Beinchen befestigt, das andere
an GND.
Was ich verstanden habe, es besteht eine Verbindung von 3.3V zu GPIO5
(die durch die Widerstände begrenzt wird?), sobald man die Taste drückt,
wird der Strom aber nach GND fließen, weil da weniger Widerstand ist.
Der Pi erkennt den Spannungsabfall und meldet den Tastendruck. Richtig?
Was ich nicht verstanden habe, warum 1k und 10k? Und warum diese
Reihenfolge und nicht andersrum?
Woran sehe ich bei meinem Schalter was für Widerstände er haben darf,
und spielt das hier überhaupt eine Rolle?
Neugierige Grüße
Bill
Der 10k ist, damit nicht unnötig viel Strom fließt wenn der Taster
gedrückt wird, das ist ein üblicher Wert und der 1k ist überflüssig, den
hat der Schreiber der Anleitung aus Angst hinzugefügt.
Der Taster hat 4 Anschlüsse damit er nicht wackelt. Die jeweils
gegenüberliegenden sidn direkt verbunden.
Wenn du den GPIO pollst, reicht das schon.
Falls du mit dem Taster einen Interrupt auslösen willst, lege ich dir
noch den allgemeinen Artikel Entprellung ans Herz, oder speziell für
RaspberryPi:
https://raspberrypihobbyist.blogspot.com/2014/11/debouncing-gpio-input.html
Du musst dann nur noch zwischen GPIO und GND einen Kondensator von 100
nF schalten und dann den 1k drinlassen.
Wie Horst schon sagt - der 1k ist überflüssig, den kannst Du einfach
weglassen.
Der 10k-Widerstand ist einfach ein sogenannter "Pull-Up-Widerstand"
(https://de.wikipedia.org/wiki/Pull-up-Widerstand), der dafür sorgt,
dass am GPIO-Pin auch dann eine Spannung anliegt, wenn der Schalter
nicht gedrückt ist. Wenn der Schalter nicht gedrückt ist, liegen wegen
des Pull-Up-Widerstandes an dem GPIO-Pin trotzdem 3.3V an, die vom
Raspberry Pi als "High"-Pegel erkannt werden. Ist der Taster gedrückt,
liegen am GPIO-Pin 0V an, die als "Low"-Pegel erkannt werden.
Der genaue Widerstands-Wert ist bei einem Pull-Up/Pull-Down-Widerstand
völlig unkritisch.
Tendenziell nimmt man lieber höhere Widerstandswerte, damit weniger
Strom fliesst - aber er darf auch nicht beliebig bzw. ZU hoch sein, denn
sonst gäbe es irgendwann auch wieder Probleme.
Weil man Pull-Up-Widerstände bei Mikrocontroller-Schaltungen ständig
braucht, nehmen die meisten Leute für Pull-Up/Pull-Down-Widerstände
gerne einen Standard-Widerstands-Wert, der in der Praxis eigentlich
immer funktioniert, und von diesem Widerstandswert hat man dann gleich
einen kleinen Vorrat auf Lager.
10k ist daher schlicht ein beliebter Standard-Wert für
Pull-Up-Widerstände, bei dem die Erfahrung gezeigt hat, dass er in der
Praxis fast immer passt.
Weil diese Pull-Up/Pull-Down-Widerstände bei Mikrocontrollern etc. so
häufig sind, haben viele Microcontroller (und der rPi glaube ich auch)
übrigens bereits eingebaute Pull-Up-Widerstände, die man bei Bedarf per
Software aktivieren kann. Auf diese Weise kann man sich den externen
10k-Widerstand auch noch sparen.
Diese internen Pull-Ups haben meist sogar deutlich höhere
Widerstandswerte als 10k.
Bill schrieb:> Was ich nicht verstanden habe, warum 1k und 10k?
Der 10kΩ begrenzt den Strom durch deinen Schalter auf 330µA, der 1kΩ
schützt den Pin von deinem RaspPi, z.B. falls der Pin mal als Ausgang
programmiert ist und trotzdem jemand die Taste drückt oder falls ans
Versehen jemand eine falsche Spannung dort anlegt.
Joachim S. schrieb:> Diese internen Pull-Ups haben meist sogar deutlich höhere> Widerstandswerte als 10k.
... was sich spätestens zum Nachteil erweist, wenn die Leitung vom
Taster ein bisschen länger ist und dazu neigt, etwas mehr Störungen
einzufangen. Die meisten Taster brauchen auch einen höheren Strom, um
die Kontakte sauber zu halten.
Der Meinung bin ich auch. 10k ist nur bei kurzen Leitungen OK. manche
Taster benötigen auch höhere Ströme, um langfristig zuverlässig Kontakt
zu geben. Mit 1kΩ bis 2,2kΩ bist du auf der Sicheren Seite.
Stefanus F. schrieb:> Der Meinung bin ich auch. 10k ist nur bei kurzen Leitungen OK. manche> Taster benötigen auch höhere Ströme, um langfristig zuverlässig Kontakt> zu geben. Mit 1kΩ bis 2,2kΩ bist du auf der Sicheren Seite.
Puh, ich kenne eher die Empfehlung 10k - 50k seien übliche Werte.
Aber nungut, Schaden entsteht in beiden Richtungen nicht und in
anbetracht des Raspberry ist auch der Stromverbrauch vernachlässigbar.
Alex G. schrieb:> Puh, ich kenne eher die Empfehlung 10k - 50k seien übliche Werte.
Das kommt natürlich auf das Kontaktmaterial des Schalters und evtl. auf
die Spannung an.
Hier ein Beispiel, wo der Hersteller im Datenblatt den Mindeststrom für
die verschiedenen, möglichen Kontaktmaterialen spezifiziert (APEM, Serie
25000N)
Bei mehr als 3,3k Ohm (an 3,3V) musst du mit sporadischen
Fehl-Auslösungen rechnen. Je höher der Widerstandswert, umso öfter.
Manche Leute filtern Störungen per Software heraus, andere per
Kondensator. Eventuell wären solche Störungen für Deine Anwendung auch
einfach egal. Das kannst nur du entscheiden.
Wie gesagt sind 10-50k auch Ok, aber nur für Taster, die sich direkt auf
der selben Platine neben dem µC befinden.
Stefanus F. schrieb:> Bei mehr als 3,3k Ohm (an 3,3V) musst du mit sporadischen> Fehl-Auslösungen rechnen.
Und du meinst, bei 3,3kΩ passiert das nicht mehr?
;-)
Das hängt immer auch noch von Zuleitungslängen (aka Antennenlängen),
Leitungsschirmung und Störern ab. Wie kommst du zu solchen
Pauschalaussagen?
Wolfgang schrieb:>> Bei mehr als 3,3k Ohm (an 3,3V) musst du mit sporadischen>> Fehl-Auslösungen rechnen.> Und du meinst, bei 3,3kΩ passiert das nicht mehr?> Das hängt immer auch noch von Zuleitungslängen (aka Antennenlängen),> Leitungsschirmung und Störern ab.
Ja natürlich, eine harte binäre Grenze gibt es da nicht. Eher so Pi mal
Daumen Erfahrungswerte.
> Wie kommst du zu solchen Pauschalaussagen?
Es war nicht pauschal gemeint. So mag es jedoch rüber kommen, wenn man
die Beiträge darüber nicht liest.
Ich denke, der TO hat uns schon richtig verstanden.