Wie funktioniert diese Arduino Konstruktion?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Wenn du den PinMode auf INPUT schaltest, bewirkt ein digitalWrite 1 auf den Port, das dort ein ein ca. 30 kOhm Widerstand gegen +5V als interner Pullup zugeschaltet wird (analog zu INPUT_PULLUP als Mode). Daher liegt der PIN auf 5V, wenn der Taster nicht gedrückt ist (Logisch 1). Wenn du den Taster drückst, fällt die komplette Spannung von 5V an dem internen Widerstand ab, da der PIN ja dann auf 0V (=GND) liegt. Da die Erfassung des Zustandes direkt am PIN erfolgt, bekommst du da jetzt eine 0.

PS: Sei vorsichtig, wenn der PinMode auf Output ist, wenn du da einen PIN auf GND klemmst und eine 1 ausgibst, fließen da nicht nur wenige mA, sondern der Arduino gibt Rauchzeichen und ist kaputt. Der kann nur ca. 20 mA pro Pin.

Bild zum Beitrag

Der linke Teil ist jeweils im Controller, also der Pullup, der Transistor oder FET der den einschaltet und die (nur durch den Pfeil dargestellte) Messung des aktuellen Pegels. Hier fehlt noch der minimale Strom, der für die Messung benötigt wird und auch bei offenen PIN durch den Pullup in Richtung Messung fließt, aber der ist zu vernachlässigen. Rechts ist der Schalter. Ist der Offen, fließt durch den PIN kein Strom, damit auch fast kein Strom (außer dem Messtrom) durch den Pullup und der Messpunkt ist auf (fast) 5V, da dann auch (fast) keine Spannung am Pullup abfällt (auf jeden Fall logisch 1). Ist der Schalter zu, fließt der Strom von +5V über den Pullup nach GND. Der Messpunkt ist direkt mit GND verbunden, da sind also auch 0V und damit logisch 0. Die gesamte Spannung fällt um Pullup ab.

Woher ich das weiß:Studium / Ausbildung – Informatiker
 - (Computer, Technik, Technologie)

Tentakell007 
Fragesteller
 26.12.2021, 23:00

Also bei Zustand "Schalter ungedrückt" fließt ein 5V Strom vom Pin zurück zum Pin? Kurz bevor die 5V Spannung am 35k Ohm Widerstand abfällt wird die Spannung gemessen und als High angegeben?

Beim Zustand "Schalter gedrückt" fließt vom Pin ein 5 Volt Strom zu GND? Wo fällt denn die Spannung ab? Ist bei GND ein Widerstand, der kleiner als 35k Ohm ist?

0
iQa1x  26.12.2021, 23:12
@Tentakell007

Bei Schalter nicht gedrückt fließt gar kein Strom (mal von dem Minimalstrom zu messen des Eingangspegels abgesehen). An dem PIN liegen 5 V an, mangels Stromfluss (weil PIN offen) ist fällt aber an dem Widerstand keine Spannung (U=R*I) ab.

Bei Schalter gedrückt liegt der PIN auf GND, Der Strom fließt durch den Widerstand über den PIN nach GND. Der Strom wird nur durch den internen Pullup begrenzt, d.h. die gesamte Spannung fällt an diesem ab und an dem Punkt wo gemessen wird sind eben die 0V, die durch den Schaalter dort angelegt werden.

GND ist Masse, Nullpotential, 0V, -. Gäbe es den internen Widerstand nicht, wäre das ein 1A Kurzschluss, deswegen so was eben nie mit einem Ausgangspin tun.

Ich male es mal auf und versuche es oben zu ergänzen.

2
Tentakell007 
Fragesteller
 27.12.2021, 00:58
@iQa1x

Vielen Dank für Ihre exzellente Erklärung! Mir ist da noch eine Idee eingefallen: Kann der Pin auf "LOW" auch als Masse/GND wirken?

0
Tentakell007 
Fragesteller
 27.12.2021, 01:37
@iQa1x

Und noch eine Frage: Wozu benutzt man dann eigentlich Widerstände bei LED, wenn der High Status die 5V über 30kOhm schickt?

0
Tentakell007 
Fragesteller
 27.12.2021, 02:00
@Tentakell007

Oder wird der interne Pull Up Widerstand nur aktiviert, wenn ich pinMode Input und denjenigen Pin auf High setze oder INPUT PULLUP Mode einschalte, nicht aber bei nur pinMode Input/Output?

0
iQa1x  27.12.2021, 11:02
@Tentakell007

Wenn du den PinMode auf OUTPUT stellst ist da kein Pullup Widerstand mehr, dann wird der Pin direkt (über einen anderen Transistor/FET) auf +5V geschaltet (bzw. bei 0 auf GND). Den LED Widerstand kannst du NICHT weglassen, 5V sind ein bisschen viel für eine LED, so ca. 200 Ohm sollten da schon davor. Und nur eine "normale" LED pro PIN, sonst wird der Strom zu hoch.

0