Hardware-Grundlagen: Funktionsweise von Pull-Down- und Pull-Up-Widerständen

Wenn Sie jemals einen Knopf mit einem Arduino verbunden haben, sind Sie auf dieses Diagramm gestoßen:

Dies kann zunächst verwirrend sein. Meine ersten Gedanken: „Warum brauche ich einen Widerstand? Ich möchte nur sagen, ob der Knopf gedrückt wird. “

Nach vielem Lesen gab es keine einfache Erklärung.

Was ist hier los

In dieser Taste - AKA ein Schalter - sind die Drähte in Form eines „H“ geformt. Aber die Mitte ist nicht verbunden - oder die Schaltung ist nicht verbunden - bis wir den Knopf drücken.

In Wirklichkeit wollen wir aus dem Arduino a lesen, 0wenn nichts verbunden ist und a 1wenn die Taste gedrückt wird.

Auf dem Arduino wird dies als GPIO (General Purpose Input Output) bezeichnet.

Also können wir so etwas machen:

Wir verbinden positiv (5 V, 3,3 V oder VCC) mit der linken Seite des Stromkreises.

Wenn nun die Taste gedrückt wird, liest der GPIO a 1und alles ist gut.

Nun, nein. Schauen wir uns noch einmal Diagramm 2 an:

Wir wollten eine, 0wenn nichts verbunden ist, aber wie können Sie dies garantieren? Derzeit gibt es keine Möglichkeit, den GPIO zu garantieren 0.

Es gibt auch elektromagnetische Frequenzen in der Luft, die Ihren GPIO zu 0oder ziehen könnten 1. Es könnte sogar zwischen den beiden schwanken! Auf diese Weise können wir nicht sicher sein, dass es eine ist 0(ich bin so schlecht in Wortspielen). Dies wird auch als logisch bezeichnet 0.

Eine Möglichkeit, eine Logik zu erhalten, 0besteht darin, den Stift an Masse zu binden:

Yay! Jetzt ist es also eine garantierte logische Null. Während Sie den Knopf drücken, wird es 1jetzt sein. Richtig?

Nun, nein.

Sie haben gerade einen Kurzschluss erstellt. ?

Hier kommt der Widerstand ins Spiel. Um einen Kurzschluss zu vermeiden, müssen wir unserem Stromkreis Widerstand hinzufügen. Der Widerstand hält die Dinge unter Kontrolle.

Elektrizität wird den Weg des geringsten Widerstands einschlagen. Ihr GPIO registriert jetzt ein, 1wenn die Taste gedrückt wird. Wie so:

Woo Hoo! Jetzt arbeiten wir mit etwas.

Schauen wir uns nun das Gegenteil an: Pull-up-Widerstände. Es ist das gleiche, aber umgekehrt. Während die Taste nicht gedrückt wird, registriert der GPIO a 1. Wenn Sie die Taste gedrückt haben, wird der GPIO 0.

Wenn nicht gedrückt, ist der GPIO mit positiv (VCC) verbunden. Jeder Strom, der dort vorhanden ist, wird hochgezogen, so dass der GPIO eine logische Registrierung registriert 1.

Hierbei ist zu beachten, dass Strom immer auf den Boden gehen möchte. Wenn wir also die Taste drücken, fließt der fließende Strom nach Masse. Somit geht jeder Strom, der zum GPIO geflossen wäre, mit, so dass der GPIO logisch bleibt 0.

? Das Ende.

Warum habe ich das geschrieben?

Ich bin im September 2016 ohne Hardware-Erfahrung zu Losant gekommen. Jedes einzelne Hardware-Starter-Kit enthält eine Schaltfläche ohne Erläuterung dieses Konzepts. Hoffentlich hilft dies auch dabei, dass Ihre Glühbirne ausgeht. ?

Dies kratzte nur die Oberfläche. Wenn Sie tiefer graben möchten, sehen Sie sich diese Ressourcen an:

Pull-up-Widerstände - learn.sparkfun.com

Eine andere Sache, auf die hingewiesen werden muss, ist, dass der Stift umso langsamer auf… learn.sparkfun.com reagiert, je größer der Widerstand für das Hochziehen ist

Ich liebe Feedback. Bitte lassen Sie mich wissen, ob dies verbessert werden könnte. Wenn ich den Ball dabei total verpasst habe, lass es mich wissen! Ich würde es gerne für andere verbessern.