Pulldown-Widerstände

Bei meiner Suche nach Elektrotechnik bin ich auf dieses Tutorial gestoßen:

http://www.ladyada.net/learn/arduino/lesson5.html

Ich habe die Diagramme verstanden, bis ich zu Schaltern kam. Ich bin mir nicht sicher, wie Schalter auf dem Steckbrett oder den Diagrammen funktionieren. Dies ist die spezifische, an die ich denke (dies ist ein Pulldown-Widerstand):

Geben Sie hier die Bildbeschreibung ein

Die Umsetzung ist:

Geben Sie hier die Bildbeschreibung ein

Basierend auf dem Diagramm denke ich, dass Folgendes passiert: Der Schalter wird mit Strom versorgt, wenn der Knopf gedrückt ist, ist der Stromkreis nicht abgeschlossen. Wenn die Taste gedrückt wird, nimmt der Strom den Weg des geringsten Widerstands zu Pin2, da er mehr Zug hat (100 Ohm < 10 kOhm).

Die Art und Weise, wie es im Tutorial beschrieben wird, klingt so, als ob bei gedrücktem Knopf die Schaltung noch vollständig ist, aber der 10-kOhm-Widerstand die Leistung auf Masse zieht. Ich bin mir nicht sicher, wie oder warum, wenn sowohl 10 kOhm als auch 100 Ohm den gleichen Strom erhalten, der Strom durch einen höheren Widerstand auf Masse gezogen wird, als an Pin 2 offen ist.

Eine Randbemerkung: Versuchen Sie, sich eine Schaltung in Bezug auf die Spannung an jedem Punkt vorzustellen, anstatt dort, wo der Strom fließt. Dies half meinem Verständnis, als ich zum ersten Mal EE lernte.
Ich bin etwas enttäuscht von der Qualität der Antworten auf diese Frage. Ich würde vorschlagen, stattdessen dieses Video von AddOhms anzusehen. . Ich verstehe dieses Konzept nicht genug, um es zu erklären, aber zum Zeitpunkt des Schreibens spricht keine der Antworten hier überhaupt darüber, was den schwebenden Zustand verursacht oder wie Pull-up oder Push-down das Problem löst .
@EvanCarroll Andererseits fragt die Frage zum Zeitpunkt des Schreibens nicht nach den Dingen, an denen Sie interessiert sind.

Antworten (6)

Vergessen Sie zunächst den 100-Ω-Widerstand. Es ist nicht für die Funktion der Taste erforderlich, es dient nur als Schutz, falls Sie einen Programmierfehler machen würden.

  • Wenn die Taste gedrückt wird, wird P2 direkt mit +5 V verbunden, so dass dies als hoher Pegel mit "1" angezeigt wird.
  • Lässt man den Taster los, zählen die +5 V nicht mehr, es sind nur noch die 10 kΩ zwischen Port und Masse.

Der I/O-Pin eines Mikrocontrollers ist hochohmig, wenn er als Eingang verwendet wird, was bedeutet, dass nur ein kleiner Leckstrom fließt, normalerweise viel weniger als die 1 µA, die laut Datenblatt das Maximum sind. OK, sagen wir, es ist 1 µA. Dann verursacht dies nach dem Ohmschen Gesetz einen Spannungsabfall von 1 µA × 10 kΩ = 10 mV über dem Widerstand. Der Eingang liegt also bei 0,01 V. Das ist ein niedriger Pegel oder eine "0". Ein typischer 5-V-Mikrocontroller sieht jeden Pegel unter 1,5 V als niedrig an.


Nun der 100 Ω Widerstand. Wenn Sie versehentlich den Pin-Ausgang hergestellt und auf niedrig gesetzt haben, führt das Drücken der Taste zu einem Kurzschluss: Der Mikrocontroller legt 0 V am Pin und der Schalter +5 V am selben Pin fest. Der Mikrocontroller mag das nicht und der IC kann beschädigt werden. In diesen Fällen sollte der 100-Ω-Widerstand den Strom auf 50 mA begrenzen. (Was immer noch ein bisschen zu viel ist, ein 1-kΩ-Widerstand wäre besser.)

Da kein Strom in einen Eingangspin fließt (abgesehen von der geringen Leckage), wird es kaum einen Spannungsabfall über dem Widerstand geben.

Die 10 kΩ sind ein typischer Wert für einen Pull-Up oder Pull-Down. Ein niedrigerer Wert führt zu einem noch geringeren Spannungsabfall, aber 10 mV oder 1 mV machen keinen großen Unterschied. Aber es gibt noch etwas anderes: Wenn der Knopf gedrückt wird, liegen 5 V über dem Widerstand, es fließt also ein Strom von 5 V/ 10 kΩ = 500 µA. Das ist niedrig genug, um keine Probleme zu bereiten, und Sie werden den Knopf sowieso nicht lange gedrückt halten. Aber Sie können den Knopf durch einen Schalter ersetzen, der für lange Zeit geschlossen sein kann. Wenn Sie dann einen 1-kΩ-Pulldown gewählt hätten, hätten Sie 5 mA durch den Widerstand, solange der Schalter geschlossen ist, und das ist eine kleine Verschwendung. 10 kΩ ist ein guter Wert.


Beachten Sie, dass Sie dies auf den Kopf stellen können, um einen Pull-up-Widerstand zu erhalten, und auf Masse schalten, wenn die Taste gedrückt wird.

Geben Sie hier die Bildbeschreibung ein

Dadurch wird Ihre Logik umgekehrt: Durch Drücken der Taste erhalten Sie eine "0" anstelle einer "1", aber die Funktionsweise ist dieselbe: Durch Drücken der Taste wird der Eingang 0 V, wenn Sie die Taste loslassen, verbindet sich der Widerstand Eingang auf den +5 V-Pegel (mit einem vernachlässigbaren Spannungsabfall).

So wird es normalerweise gemacht, und Mikrocontroller-Hersteller berücksichtigen dies: Die meisten Mikrocontroller haben interne Pull-up-Widerstände, die Sie per Software aktivieren oder deaktivieren können. Wenn Sie den internen Pull-up verwenden, müssen Sie nur den Taster mit Masse verbinden, das ist alles. (Einige Mikrocontroller haben auch konfigurierbare Pulldowns, aber diese sind viel seltener.)

Ich glaube nicht, dass aus dieser Antwort klar ist, wie die Push-Down-Methode das Problem mit dem Floating-State löst.

Beachten Sie, dass der Schalter kein schickes Gerät ist, das Strom aufnimmt und ein Ausgangssignal erzeugt. Stellen Sie sich ihn stattdessen als einen Draht vor, den Sie einfach durch Drücken des Knopfes zum Stromkreis hinzufügen oder daraus entfernen.

Wenn der Schalter getrennt (nicht gedrückt) ist, führt der Strom nur P2durch beide Widerstände nach Masse. Somit liest der Mikrocontroller ein LOW.

Wenn der Schalter angeschlossen (gedrückt) ist:

  • Strom fließt von der Stromversorgung durch den Schalter

  • Ein Teil des Stroms fließt durch den 100-Ohm-Widerstand zu P2. Der Mikrocontroller liest HIGH.

  • Ein kleiner Strom fließt durch den 10-kOhm-Widerstand zur Erde. Das ist im Grunde verschwendete Energie.

Beachten Sie, dass der 100-Ohm-Widerstand nur dazu da ist, den maximalen Strom zu begrenzen, der in P2. Es ist normalerweise nicht in einer solchen Schaltung enthalten, da der P2Eingang des Mikrocontrollers bereits hochohmig ist und nicht viel Strom verbraucht. Das Einschließen des 100-Ohm-Widerstands ist jedoch nützlich, falls Ihre Software einen Fehler oder einen Logikfehler aufweist, der dazu führt, dass sie versucht, P2stattdessen als Ausgang zu verwenden. Wenn der Mikrocontroller in diesem Fall versucht, P2niedrig zu fahren, der Schalter jedoch kurzgeschlossen ist und ihn mit hoch verbindet, würden Sie möglicherweise den Mikrocontroller-Pin beschädigen. Sicherheitshalber würde der 100-Ohm-Widerstand in diesem Fall den maximalen Strom begrenzen.

Wenn Sie die Taste drücken, legen Sie einen logisch hohen Pegel (+5 V) an den Eingang. Wenn Sie jedoch den Widerstand weglassen und die Taste loslassen, würde der Eingangspin nur schweben, was in HCMOS bedeutet, dass der Pegel undefiniert ist. Das ist etwas, was Sie nicht wollen, also ziehen Sie den Eingang mit dem Widerstand auf Masse. Der Widerstand wird benötigt, da sonst ein Tastendruck einen Kurzschluss verursachen würde.

Der Eingang ist hochohmig, wodurch kaum Strom fließt. Nullstrom durch den Widerstand bedeutet Nullspannung an ihm (Ohmsches Gesetz), sodass die 0 V auf einer Seite auch 0 V (oder sehr nahe) am Eingangsstift sind.

Dies ist eine Möglichkeit, einen Taster anzuschließen, aber Sie können auch Widerstand und Taster vertauschen, sodass der Widerstand auf +5 V und der Taster auf Masse geht. Die Logik wird dann umgekehrt: Durch Drücken der Taste wird ein niedriger Pegel am Eingangsstift erzeugt. Dies wird aber oft gemacht, da die meisten Mikrocontroller Pull-up-Widerstände eingebaut haben, so dass man nur den Taster benötigt, der externe Widerstand kann dann weggelassen werden. Beachten Sie, dass Sie möglicherweise den internen Pullup aktivieren müssen.



Siehe auch diese Antwort .

Ich glaube nicht, dass aus dieser Antwort klar ist, wie die Push-Down-Methode das Problem mit dem Floating-State löst.

Der 10-kOhm-Widerstand wird als Pulldown-Widerstand bezeichnet, da, wenn der "grüne" Knoten (beim Verbinden der 100-Ohm- und 10-kOhm-Widerstände) nicht durch den Schalter mit +5 V verbunden ist, dieser Knoten auf Masse gezogen wird (unter der Annahme eines niedrigen Stroms durch diesen Zweig). , offensichtlich). Wenn der Schalter geschlossen ist, erhält dieser Knoten ein Potential von +5 V.

Dies wird verwendet, um die Eingänge von logischen ICs (UND-Gatter, ODER-Gatter usw.) zu steuern, da sich diese Schaltungen unregelmäßig verhalten, wenn an ihren Eingängen kein bestimmter Wert anliegt (ein 0- oder ein 1-Wert). Wenn Sie den Eingang eines logischen Gatters schwebend lassen, kann der Ausgang nicht zuverlässig bestimmt werden, daher ist es ratsam, immer einen bestimmten Eingang (wieder eine 0 oder eine 1) an den Eingang des Gatters anzulegen. In diesem Fall wäre P2 ein Eingang zu einem bestimmten logischen Gatter, und wenn der Schalter offen ist, hat er einen Eingangswert von 0 (GND); wenn der Schalter geschlossen ist, hat er einen Eingangswert von 1 (+5V).

Strom nimmt den Weg des geringsten Widerstandes

Ich bin mir nicht sicher, woher dieses weit verbreitete Missverständnis kommt, aber es ist in der Tat falsch, da es dem Ohmschen Gesetz direkt widerspricht. Strom nimmt alle möglichen Wege , umgekehrt proportional zu ihrem Widerstand. Wenn Sie 5 V an einen 10k-Widerstand anlegen, fließen 0,5 mA durch ihn, unabhängig davon, wie viele alternative Pfade (niederohmig oder anderweitig) Sie bereitstellen.

Übrigens ist dieser Weg durch den 100-Ohm-Widerstand nicht unbedingt "niederohmig", da der Widerstand nicht mit Masse verbunden ist . Normalerweise würden Sie diesen Widerstand an einen MCU-Eingang mit einer Impedanz von >10 MOhm anschließen, wodurch der 10k-Widerstand effektiv zum Weg des geringsten Widerstands wird.

Der Grund, warum der Pulldown-Widerstand erforderlich ist, liegt darin, dass der Mikrocontroller ein CMOS-Gerät ist und somit der Eingangspin letztendlich das Gate eines MOSFET ist.

Wenn Ihr Taster eine Glühbirne, eine LED oder ein Relais steuert, benötigen Sie keinen Pulldown-Widerstand, da ein offener Stromkreis "aus" wäre. Wenn der Knopf losgelassen wird, erlischt die Glühbirne, weil kein Strom fließen würde.

Wenn Ihr Gerät ein echtes TTL-Teil wie die ursprünglichen Logikchips der 7400-Serie wäre, würden Sie den Pulldown-Widerstand nicht benötigen, da diese Eingänge Bipolartransistoren wären und beim Loslassen der Taste kein Strom durch den Basis-Emitter-Übergang fließen würde und der Eingang wäre "aus".

Im Gegensatz dazu ist der Eingang Ihres Mikrocontrollers ein MOSFET-Gate, das wie ein Kondensator wirkt. Wenn die Gate-Spannung hoch genug ist, ist der Eingang "ein". Das passiert, wenn Sie die Taste drücken und Strom durch den 100R-Widerstand in den Mikrocontroller fließt. Das Gate lädt sich (sehr schnell) wie ein Kondensator auf und der Eingang wird "an". Was passiert nun, wenn Sie die Taste loslassen? Es fließt kein Strom mehr. Aber was bedeutet das für die Eingabe? Wenn kein Pulldown-Widerstand vorhanden ist, kann die Ladung am Gate nirgendwo hingehen. Die Spannung liegt dort nur in der Nähe von 5 V und der Eingang ist immer noch "ein". Der Pull-down-Widerstand leitet die Gate-Ladung ab, sodass seine Spannung unter den "Ein"-Pegel fällt. Das ist es, was Sie sicherstellen möchten, dass der digitale Eingang als "aus" gilt.

Sie können damit experimentieren, indem Sie zwei Tasten an Ihren Eingangsstift anschließen. Verbinden Sie einen mit 5 V und einen mit Masse. Wenn Sie die 5V-Taste drücken, wird der Eingang eingeschaltet. Wenn Sie es loslassen, bleibt es eingeschaltet, bis Sie denjenigen drücken, der mit GND verbunden ist.

Bei TTL ist es tatsächlich der Basis-Emitter-Übergang, der nicht leitet, aber nicht so, wie Sie vielleicht denken: Der Eingang ist der Emitter des NPN-Eingangstransistors, und der Transistor leitet, wenn der Eingang niedrig ist. Schweben ist dasselbe wie hoch.