Raspberry PI Pushbutton mit oder ohne Widerstand?

3 Antworten

Sieh dir die Beschaltung eines Pullup-Widerstands an. Sobald der Stromkreis geschlossen wird, fließt Strom durch den Pullup-Widerstand durch den Kreis auf Masse und es liegt Log. 0 am GPIO an.

Die Größe des Stroms wird durch den PU-Widerstand begrenzt. Hier sind Größenordnungen von etwa 10kOhm gängig.

Woher ich das weiß:Studium / Ausbildung – Masterstudium Elektrotechnik - Schwerpunkt Embedded Systems

Burn91 
Beitragsersteller
 13.05.2016, 17:51

Hallo.

https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Pullup_Pulldown_resistor.svg/406px-Pullup_Pulldown_resistor.svg.png

Bei Bild 4 verstehe ich es, da muss der Strom zwingend druch den Widerstand.

Aber bei Bild 3 fließt ja der Strom sofort in den GPIO-Pin und vielleicht ein geringer Teil über den Widerstand auf Masse (Strom fließt immer den Weg des geringsten Widerstands)

Oder verstehe ich da etwas Falsch ?

lg

0
Gehilfling  14.05.2016, 11:04
@Burn91

Kurze Info bezüglich dem Beitrag über dem hier: Verwechsle die 16mA nicht mit dem max. Output-Strom. Ports bei Mikrocontrollern können als sehr Hochohmig angenommen werden, wenn du dort direkt eine Spannungsquelle anschließt wird der Strom schon sehr gering gehalten.

Zu deiner Frage:
Bei Bild 3 fließt der Strom trotzdem zu großem Anteil durch R ab, da dieser (wenn richtig gewählt) noch kleiner ist als der Innenwiderstand des Controllers.

Kaputt wirst du auch ohne Widerstand nichts machen, da es dem Inport-Pin nur um den Spannungspegel geht, nicht um den eingehenden Storm. Aber wie oben richtig genannt, kann es ohne PU/PD Widerstände zu falschen Zuständen kommen.

0
Burn91 
Beitragsersteller
 14.05.2016, 12:54
@Gehilfling

Okay aber ist jetzt der GND-Pin nicht hochohmig? Weil wenn beide Pins gleich hochohmig sind, ist ja der weg mit den zusätzlichen Widerstand trotzdem noch hochohmiger als der ohne.

0
Gehilfling  15.05.2016, 12:28
@Burn91

Der GND-Pin ist im idealfall 0-Ohmig (bin mir hier allerdings nicht 100%ig sicher!).

Dachte, du gehst von einer externen 3.3V Quelle an den GPIO. Wenn du den 3.3V - Pin verwenden möchtest, liefert er maximal nur 16mA, das ist richtig. Mit deiner Beschaltung musst du dafür sorgen, dass der Strom das auch nicht überschreitet. Der Strom ist für dein Signal am GPIO auch nicht entscheident, sondern die anliegende Spannung. Also schau, dass der Strom unten bleibt und wenn dann wenig Strom fließt, kommt es deinem Verbrauch zugute.

0

die pul up bzw. pull down widerstände sind dafür zuständig, klare fakten zu schaffen. die steuerströme beim PI sind so gering, dass, besonders bei längeren leitungen an den sensoren induktive ströme etc. schon zu einer fehlinformation führen können...

du solltest die schalter übrigens auch entprellen. lies dir dazu mal das hier durch:

http://www.mikrocontroller.net/articles/Entprellung

lg, Anna


Burn91 
Beitragsersteller
 13.05.2016, 20:10

Hallo

Was ein Pull up/down Widerstand macht ist mir glaub ich schon klar.

Es geht mir eher darum, warum manche Leute in Tutorials von +3.3 über Schalter zum GPIO-Pin keinen zusätzlichen Widerstand verwendet haben. Somit habe ich ja einen Kurzschluss ähnliche Schaltung oder ?

lg

0
Peppie85  13.05.2016, 20:20
@Burn91

das GIPO hat einen eigenenen innenwiderstand. von daher entsteht hier auch ohne vorwiderstand kein kurzschluss....

lg, Anna

0
Burn91 
Beitragsersteller
 13.05.2016, 20:35
@Peppie85

ok das versteh ich jetzt nicht ganz, ich darf auch keine Lasten an den GPIO-Pins hängen die mehr als 16mA ziehen sonst wird er anscheinend kaputt. Wieso funktioniert das dann mit der "Button-Schaltung"

lg

0
Gehilfling  14.05.2016, 11:05
@Burn91

Richtig, keine "Lasten", das heißt "Output" ist maximal 16mA. Möchtest du größere Lasten schalten, müsstest du über Transistoren gehen.

Der Input ist strommäßig schon durch den Innenwiderstand begrenzt, allerdings kann es zu falschen Zuständen kommen.

0
Burn91 
Beitragsersteller
 14.05.2016, 12:48
@Gehilfling

Ja aber der 3.3Volt Pin ist ja generell ein Output, er liefert immer 3.3 Volt. Und über diesem Pin darf ja auch nicht mehr als 16mA fließen oder ?

0

Also... um das nochmal mit den Widerständen zu erklären:
Ich habe dir unten mal ein Bild angehängt. In dem Falle ist es ein ESP8266, weil ich ihn aktuell benutze. Das Prinzip in dem Fallbeispiel ist aber so gut wie gleich.

Wir nehmen uns mal den linken Button.
Wenn ich ihn betätige, ist der Kreislauf geschlossen und am Pin "D0" liegt eine Spannung von 3,3V an. Wenn ich den Button jetzt jedoch loslasse, denkt D0 immer noch, dass da Spannung an dem Pin anliegt. Um das beim Loslassen des Pins zu verhindern, haben wir einen Widerstand eingebaut, der nur dann, wenn der Button nicht gedrückt ist, den Pin auf GND "zieht" (pull).
Wieso "zieht" er den Pin nicht auch auf GND, wenn der Button gedrückt ist? - Weil sich auch der Strom den einfachsten Weg nimmt, wo er nicht "auf Widerstand stößt".

Dafür nimmt man dann einen 1kOhm (Besser: 10kOhm)-Widerstand.

(Bild durch den Support entfernt)