Um die Elektrotechnik zu verstehen, 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 nicht sicher, wie Schalter auf dem Steckbrett oder den Diagrammen arbeiten. Dies ist der spezifische, an den ich denke (dies ist ein Pull-Down-Widerstand):
Die Implementierung ist:
Nach dem Diagramm passiert meiner Meinung nach Folgendes: Der Schalter wird mit Strom versorgt. Wenn der Knopf gedrückt ist, ist der Stromkreis nicht fertig. Wenn der Knopf gedrückt wird, nimmt der Strom den Weg des geringsten Widerstands zu Pin2, weil er mehr Zug hat (100 Ohm <10 kOhm).
Die Art und Weise, wie sie im Tutorial beschrieben wird, klingt so, als ob die Taste gedrückt ist, der Stromkreis noch vollständig ist, aber der 10-kOhm-Widerstand die Spannung auf den Boden zieht. Ich bin nicht sicher, wie oder warum, wenn sowohl 10 kOhm als auch 100 Ohm den gleichen Strom empfangen, der Strom durch einen höheren Widerstand auf den Boden gezogen wird, als er an Pin 2 offen ist.
Antworten:
Vergessen Sie zunächst den 100 Ω Widerstand. Es ist nicht für die Funktion der Taste erforderlich, sondern dient nur als Schutz für den Fall, dass Sie einen Programmierfehler machen.
Nun der 100 Ω Widerstand. Wenn Sie den Pin-Ausgang versehentlich auf LOW stellen würden, 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, wäre ein 1 kΩ Widerstand besser.)
Da kein Strom in einen Eingangspin fließt (abgesehen von dem geringen Leckstrom), fällt am Widerstand kaum Spannung ab.
Die 10 kΩ sind ein typischer Wert für ein Hochziehen oder Herunterziehen. Ein niedrigerer Wert führt zu einem noch geringeren Spannungsabfall, 10 mV oder 1 mV machen jedoch keinen großen Unterschied. Aber es gibt noch etwas anderes: Wenn die Taste gedrückt wird, werden 5 V am Widerstand angelegt, sodass ein Strom von 5 V / 10 kΩ = 500 µA fließt. Das ist niedrig genug, um keine Probleme zu verursachen, und Sie werden den Knopf sowieso nicht lange gedrückt halten. Sie können die Taste jedoch durch einen Schalter ersetzen, der möglicherweise für längere Zeit geschlossen ist. Wenn Sie dann einen Pulldown von 1 kΩ gewählt hätten, hätten Sie 5 mA durch den Widerstand, solange der Schalter geschlossen ist, und das ist eine Verschwendung. 10 kΩ ist ein guter Wert.
Beachten Sie, dass Sie diesen auf den Kopf stellen können, um einen Pull-Up-Widerstand zu erhalten, und auf Masse schalten können, wenn die Taste gedrückt wird.
Dies kehrt Ihre Logik um: Wenn Sie die Taste drücken, erhalten Sie eine "0" anstelle einer "1", aber die Funktionsweise ist dieselbe: Wenn Sie die Taste drücken, wird der Eingang auf 0 V gesetzt Eingang auf +5 V-Pegel (mit vernachlässigbarem Spannungsabfall).
Dies geschieht normalerweise so, und die Hersteller von Mikrocontrollern berücksichtigen dies: Die meisten Mikrocontroller verfügen über interne Pull-up-Widerstände, die Sie in der Software aktivieren oder deaktivieren können. Wenn Sie das interne Pull-up verwenden, müssen Sie nur den Knopf mit Masse verbinden, das ist alles. (Einige Mikrocontroller verfügen auch über konfigurierbare Pulldowns, diese sind jedoch viel seltener.)
quelle
Beachten Sie, dass der Switch kein schickes Gerät ist, das Strom verbraucht und ein bestimmtes Ausgangssignal erzeugt. Stellen Sie sich stattdessen einen Draht vor , den Sie nur durch Drücken der Taste zum Stromkreis hinzufügen oder daraus entfernen.
Wenn der Schalter getrennt (nicht gedrückt), ist der einzig mögliche Weg für Strom aus
P2
durch beiden Widerstände nach Masse. Somit liest der Mikrocontroller ein LOW.Wenn der Schalter angeschlossen ist (gedrückt):
Der Strom fließt vom Netzteil über den Schalter
Ein Teil des Stroms fließt durch den 100-Ohm-Widerstand nach
P2
. Der Mikrocontroller liest HIGH.Ein kleiner Strom fließt durch den 10-KOhm-Widerstand nach Masse. Dies ist im Grunde Energieverschwendung.
Beachten Sie, dass der 100-Ohm-Widerstand nur zur Begrenzung des maximal zulässigen Stroms dient
P2
. Es ist normalerweise nicht in einer solchen Schaltung enthalten, da derP2
Eingang des Mikrocontrollers bereits hochohmig ist und nicht viel Strom verbraucht. Das Einschließen des 100-Ohm-Widerstands ist jedoch nützlich, wenn Ihre Software einen Fehler oder einen logischen Fehler aufweist, der dazu führt, dass sie versucht, ihnP2
stattdessen als Ausgang zu verwenden. In diesem Fall könnenP2
Sie den Mikrocontroller-Pin möglicherweise beschädigen , wenn der Mikrocontroller versucht, zu leise zu fahren , der Schalter jedoch kurzgeschlossen und zu hoch geschaltet ist. Aus Sicherheitsgründen würde der 100-Ohm-Widerstand in diesem Fall den Maximalstrom begrenzen.quelle
Wenn Sie die Taste drücken, wird ein logischer High-Pegel (+5 V) am Eingang angelegt. Wenn Sie jedoch den Widerstand weglassen und die Taste loslassen, ist der Eingangspin nur potentialfrei, was in HCMOS bedeutet, dass der Pegel undefiniert ist. Das wollen Sie nicht, also ziehen Sie den Eingang mit dem Widerstand auf Masse. Der Widerstand wird benötigt, da sonst durch Drücken der Taste ein Kurzschluss verursacht würde.
Der Eingang ist hochohmig, dh es fließt kaum Strom durch ihn. Nullstrom durch den Widerstand bedeutet Nullspannung über ihm (Ohmsches Gesetz), so dass die 0 V auf einer Seite auch 0 V (oder sehr nahe) am Eingangspin sind.
Dies ist eine Möglichkeit, einen Taster anzuschließen. Sie können jedoch auch den Widerstand und den 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 der Eingangspin auf einen niedrigen Pegel gebracht. Dies geschieht jedoch häufig, da in den meisten Mikrocontrollern Pull-up-Widerstände eingebaut sind, so dass Sie nur den Taster benötigen, der externe Widerstand kann dann entfallen. Beachten Sie, dass Sie möglicherweise das interne Pullup aktivieren müssen.
Siehe auch diese Antwort .
quelle
Der 10-kOhm-Widerstand wird als Pulldown-Widerstand bezeichnet, da der Knoten, wenn der "grüne" Knoten (beim Anschließen der 100-kOhm- und 10-kOhm-Widerstände) nicht über den Schalter mit +5 V verbunden ist, nach Masse gezogen wird (wobei ein niedriger Strom durch diesen Zweig angenommen wird) offensichtlich). Wenn der Schalter geschlossen ist, erhält dieser Knoten ein Potential von + 5V.
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 (ein 0- oder ein 1-Wert) vorliegt. Wenn Sie den Eingang eines logischen Gatters potentialfrei 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 für ein bestimmtes logisches 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).
quelle
Ich bin mir nicht sicher, woher dieses verbreitete Missverständnis kommt, aber es ist in der Tat falsch, da es direkt dem Ohmschen Gesetz widerspricht. Der Strom nimmt alle möglichen Pfade , umgekehrt proportional zu ihrem Widerstand. Wenn Sie 5 V an einen 10-k-Widerstand anlegen, fließen 0,5 mA durch ihn, unabhängig davon, wie viele alternative Pfade (niederohmig oder anderweitig) Sie bereitstellen.
Im Übrigen ist dieser Weg durch den 100-Ohm-Widerstand nicht unbedingt der "kleinste Widerstand", da der Widerstand nicht mit Masse verbunden ist . Normalerweise wird dieser Widerstand an einen MCU-Eingang mit einer Impedanz von> 10 MOhm angeschlossen, sodass der 10k-Widerstand der Pfad mit dem geringsten Widerstandswert ist.
quelle
Der Grund, warum der Pull-Down-Widerstand erforderlich ist, besteht darin, dass der Mikrocontroller ein CMOS-Bauelement ist und somit der Eingangsstift letztendlich das Gate eines MOSFET ist.
Wenn Ihr Taster eine Glühbirne oder eine LED oder ein Relais steuern würde, bräuchten Sie keinen Pulldown-Widerstand, da ein offener Stromkreis "aus" wäre. Wenn der Knopf losgelassen wurde, wurde die Glühbirne ausgeschaltet, da kein Strom floss.
Wenn Ihr Gerät ein echtes TTL-Teil wäre, wie die ursprünglichen Logik-Chips der Serie 7400, würden Sie den Pulldown-Widerstand nicht benötigen, da diese Eingänge Bipolartransistoren wären, und wenn der Knopf losgelassen würde, würde kein Strom durch den Basis-Emitter-Übergang fließen 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". Dies geschieht, wenn Sie die Taste drücken und der 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 "on". Was passiert nun, wenn Sie die Taste loslassen? Es fließt kein Strom mehr. Aber was bedeutet das für die Eingabe? Wenn es keinen Pull-Down-Widerstand gibt, kann die Ladung am Gate nicht weitergeleitet werden. Die Spannung wird dort in der Nähe von 5 V liegen und der Eingang wird immer noch "an" sein. Der Pull-Down-Widerstand entlädt die Gate-Ladung, so dass seine Spannung unter den "Ein" -Pegel fällt. Damit möchten Sie sicherstellen, dass der Digitaleingang als "Aus" eingestuft wird.
Sie können damit experimentieren, indem Sie zwei Tasten an Ihren Eingangsstift anschließen. Binden Sie eine an 5V und eine an Masse. Wenn Sie die 5V-Taste drücken, wird der Eingang eingeschaltet. Wenn Sie es loslassen, bleibt es eingeschaltet, bis Sie das an GND angeschlossene drücken.
quelle