Ich verstehe die Pulldown Logik nicht?
Also ich interpretiere das so:
Wenn der Taster nicht gedrückt ist, fließt ein kleiner Strom zum Arduino Pin, das heißt, der Arduino müsste HIGH anzeigen...
Und wenn man den Taster dann drückt, fließt der Strom auch über den Schalter zum VCC, also teilt sich der Strom am Knoten auf, nur der Strom geht den Weg des geringsten Widerstandes, also wird das meiste in Richtung des Schalters gehen, der Arduino müsste also LOW anzeigen.
Aber irgendwie ist in meiner Logik doch ein Fehler, weil der Arduino zeigt LOW an, wenn der Schalter nicht gedrückt ist und wenn der Schalter gedrückt ist, HIGH.
Wäre nett wenn mir das einer kurz erklären könnte...
Widerstand in meiner Schaltung 10KOhm
7 Antworten
In der Digitalelektronik spielen die Potentiale/Spannungen die entscheidende Rolle, nicht die Ströme.
Weißt du, wie ein Transistor funktioniert?
Wenn man auf die "Basis" eines (npn-)Transistors eine positive Spannung gibt, fließt ein kleiner Strom durch Basis und "Emitter", und die Strecke "Kollektor"-Emitter "schaltet durch", d. h. verbindet (fast) wie ein Schalter, den man einschaltet. Wenn durch die Basis-Emitter-Strecke kein Strom fließt, besteht auch keine elektrische Verbindung zwischen Kollektor und Emitter.
Man kann im Prinzip den Pulldown-Widerstand auch weglassen und die ganze Schaltung würde normal funktionieren. Weil man aber immer mit irgendwelchen "Störpotentialen" rechnen muss - z. B. durch Kriechströme über Staub zwischen den Kontakten -, nimmt man zusätzliche Widerstände, um sicherzustellen, dass das Potential am Eingang auch wirklich tief genug ist, solange man den Schalter nicht drückt.
(Übrigens kenne ich aus der Transistor-Transistor-Logik eher "Pullup"-Widerstände zur positiven Versorgungsspannung - hier ist es zuverlässiger, Eingänge aktiv nach 0 zu schalten und in Ruhe auf +5V zu lassen.)
VCC ist positiv/high, Ground negativ/low.
Die technische Stromrichtung ist von Plus nach Minus. Heißt, der Mikrocontroller erkennt VCC als HIGH und GND als LOW.
Der Strom, der in den Arduino reinfließt ist vernachlässigbar klein - es ist eher ein "Spannungsmesser". Wenn der Schalter geöffnet ist, entsteht ein geschlossener Stromkreis zu GND. Falls elektrische Störungen/ statische Ladung am Pin ist, so fließt diese zu GND ab, sodass der Pin nahezu immer auf dem Potential von GND liegt.
Wenn der Schalter geschlossen wird, liegt am Pin VCC an und durch den Widerstand fließt ein Strom von Vcc/R
Achso!! Weil GND ein Potenzial von 0 hat, darum zeigt der auch LOW an! Danke!
Nur so als Anmerkung: Der Arduino hat eingebaute Pullup-Widerstände, die man mit pin_mode INPUT_PULLUP einschalten kann, also einen (schaltbaren) Widerstand zwischen Pin und VCC. Wenn man den benutzt und den Taster gegen GND anschließt, spart man den externen Widerstand. Da dann aber, wenn der Taster zu ist, GND am Pin liegt, wird dann LOW=Taster zu, HIGH=Taster offen.
Naja aber was mich halt verwirrt ist die physikalische Stromrichtung... Da ist es ja von GND nach VCC und da liegen ja Elektronen an am Arduino, deswegen dachte ich der müsste dann auslösen...
Die Physikalische Stromrichtung interessiert eigentlich niemanden - außer Physiklehrer in der Schule und als Erklärungsmodell, wie bestimmte Bauteile funktionieren. Wie gesagt - da fließt auch kein Strom wirklich - stell dir eher vor, am Eingang des Mikrocontrollers ist ein Kondensator und man kann sehen, ob er aufgeladen ist (Vcc) oder nicht (GND). (Im Controller sind MOSFETs am Eingang)
Aber meine pulldown Schaltung ist schon richtig oder?
Ja. Ich meinte nur, egal was du mal für eine Schaltung haben wirst - die Erklärung wird immer (sowohl im Ingenieur-, als auch im Hobbybereich) von einem positiv ausgehenden Strom gemacht, also von + nach -. Und das andere, was ich meinte ist, dass sich der Strom nicht wirklich am Knoten aufteilt... Der Mikrocontroller hat bestimmt einen Eingangswiderstand von 100 Megaohm oder so.
Die physikalische Stromrichtung ist ein Begriff, der in Elektronik und Elektrotechnik völlig nutzlos ist. Am besten du vergisst den Begriff gleich komplett.
Naja hab ich jetzt auch gemerkt. Damit diese Pulldown und Pullup zu erklären könnte heikel werden, es lebe die technische Stromrichtung!
Hallo,
wie kmkcl schon geschrieben hatte muss ein µC für das richtige erkennen von Schaltzuständen ein Potential auf den Pins immer geschaltet sein..
wenn du nichts dran hast, ist dieser quasi in der Luft, es kann durch Frequenzen auch gestört werden und somit der µC den Pin falsch interpretieren ..er funktioniert wie eine Antenne..
in der Digitaltechnik ist immer die rede von 0 und 1 , High und LOW..und da gibt es kein dazwischen..nun wenn du einen pin für die abfrage(DigitalRead) definiert hast, musst du ihm ein Potential verpassen für die beiden Zustände High und LOW..das machst du ja mit der Schaltung die du gepostet hattest. entweder High (taster gedrückt) oder LOW (taster losgelassen).
in der Analogtechnik sieht es anders aus, da wird ein Spannungsbereich (z.B 0-5V) eingelesen vom µC und in werte 0-1024 umgewandelt (ADC)..und damit kannst du selbst bestimmen ab welchen wert dein Programmcode ausgelöst wird..
Nein, so wie du es beschreibst, ist es genau verkehrt. Du hast da ein Verständnisproblem. Ist es dir schon klar?
Tja, habe es versucht mit der physikalischen Stromrichtung zu erklären, war Quatsch.
Du musst verstehen, wie der Input Pin funktioniert. Das steht im Datenblatt. Es geht eigentlich nur um ein Gate eines MOSFETS, dass bei gedrücktem Taster auf- und bei nicht gedrücktem Taster entladen wird.
Daran liegts auch, werde ich mir anschauen.
Die meiste digitale Elektronik ist ja heute CMOS, da ist das Ausgangsverhalten ziemlich symmetrisch... und am Eingang fließt auch nur kurz ein Strom, um die (Gate-) Kapazität des MOSFET aufzuladen - der arbeitet ja Spannungsgesteuert: Spannung da, Transistor leitend. Der Widerstand wird dann aber zwingend benötigt, um das Gate wieder zu entladen, nachdem der Schalter geöffnet wurde.