Forum: Mikrocontroller und Digitale Elektronik Taster für Raspi


von Bill (Gast)


Lesenswert?

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

von Horst (Gast)


Lesenswert?

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.

von Alexander S. (esko) Benutzerseite


Lesenswert?

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.

von Joachim S. (oyo)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Bill (Gast)


Lesenswert?

Vielen Dank Euch allen!

von Alex G. (dragongamer)


Lesenswert?

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.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

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)
1
Minimum load :
2
- silver contacts (A) : 100 mA 10 V
3
- gold plated brass contacts (LD) : 10 μA 5 VDC - 10 mA 50 mV
https://www.apem.com/de/25000n-series-200.html

von Stefan F. (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.