In diesem Schaltkreis ist zu erkennen, dass wir Pin2 entweder mit +5V verbinden und trennen können oder Pin2 mit GND verbinden und trennen können. Sobald der Schalter geschlossen wird, wird er in beiden Fällen mit einer gültigen Input-Spannung verbunden (0V oder +5V). Wenn der Schalter nicht mehr geschlossen ist, ist Pin2 mit nichts mehr verbunden. Dieses Verhalten wird floating (schwebender) Input genannt. Natürlich handelt es sich dabei um einen nicht gültigen, undefinierten Input, der Zustand ist weder HIGH noch LOW.
Verbindung des Schalters mit +5V
Verbindung des Schalters mit GND
Versuche einen der beiden Schaltkreise nachzubauen und verwende das Schalter Testprogramm. Solange der Schalter gedrückt wird, wird der richtige Wert ausgegeben. Sobald er losgelassen wird, kann es gut sein, dass der noch zuvor ausgegebene Wert wieder ausgegeben wird, es kann aber auch gut möglich sein, dass ein anderer Wert ausgegeben wird. Auf jeden Fall ist das Ergebnis nicht vorhersagbar und verlässlich.
Eine Möglichkeit wäre es, einen Schalter zu verwenden, der die Verbindungen wechselt, wie z.B. in diesem Schaltkreis.
Das Problem ist, dass solche Schalter sehr komplex sind und 10 mal so teuer wie kleine Drucktaster sind. Stattdessen wenden wir einen kleinen Trick an, wir nehmen einen Pull-down-Widerstand (pull down = herunterziehen).
Der hier verwendete Pull-down-Widerstand ist ein 10K Widerstand. Wenn der Schalter gedrückt wird, wird der 100 Ohm-Widerstand direkt mit +5V verbunden. Wenn er wieder losgelassen wird, ist der 100 Ohm Widerstand mit dem 10K-Widerstand verbunden, welcher ihn mit GND verbindet.
Wie funktioniert das? Der Schalter hat gegenüber dem 10K-Widerstand einen nur sehr kleinen Widerstand (weniger als 1 Ohm). Er zieht den Stromfluss sehr stark in Richtung +5V. Der 10K-Widerstand verbindet den 100 Ohm-Widerstand gleichzeitig mit GND, aber da der 10K- Widerstand einen 10.000-fachen höheren Widerstand als der Schalter hat, zieht er den Stromfluss nur sehr schwach gegen GND und kann mit dem Schalter nicht konkurieren. Die starke +5V-Verbindung sticht die schwache GND-Verbindung aus und am Input wird HIGH gelesen.
Wennn der Schalter losgelassen wird, existiert der starke Zug des Stromflusses nach +5V nicht mehr, er fehlt komplett. Es gibt aber noch immer einen schwachen Zug in Richtung GND. Obwohl es sich um einen sehr schwachen Zug handelt, ist er besser als gar keiner, also wird der Input-Pin auf LOW heruntergezogen.
Baue die folgende kleine Schaltung nach und lasse sie mit dem Test-Sketch laufen. Jetzt sollten die Werte sehr zuverlässig sein. Falls es nicht wie erwartet funktionieren sollte, stelle sicher dass du die richtigen Widerstandswerte verwendet hast und das die Teile fest miteinander verbunden sind.
Ebenso ist es möglich, den Schalter mit GND zu verbinden und einen Pull-Up-Widerstand zu verwenden.
Teste auch diese Schaltung und vergewissere dich, dass auch sie zuverlässige Werte liefert.
Merke dir, dass die starke oder schwache Verbindung nichts damit zu tun hat, dass der Schalter als Pull-Up oder Pull-Down verwendet wird. Die Stärke der Verbindung beruht darauf, dass der gedrückte Schalter einen sehr kleinen Widerstand hat und der Widerstand den Stromfluss sehr viel stärker behindert als der Schalter.
Muss ein Pull-Up- bzw. Pull-Down-Widerstand immer 10KOhm haben?
Du wirst festellen, dass sowohl in den vorgestellten Schaltungen als auch in den Schaltkreisen des Arduino 10KOhm-Widerstände als Pull-Up bzw. Pull-Down verwendet werden. Ist an diesen 10KOhm irgendetwas spezielles? Nein! Es handelt sich dabei um einen Wert, der sehr häufig verwendet wird und soetwas wie ein Standardwert ist. Meistens ist es möglich Widerstände zwischen 4,7KOhm und 100KOhm zu verwenden. Noch kleinere Widerstände zu verwenden, würde zu viel Strom verschwenden und höher Werte können zu unsicheren Ergebnissen führen. (Die Details der Mikrocontroller-Innereien sind momentan noch nicht so wichtig).
Ich schlage vor, 10KOhm-Widerstände zu verwenden, weil es ein üblicher Widerstandswert ist und andere sehr schnell sehen, dass es sich um einen Pull-Up bzw. Pull-Down-Widerstand handelt.
Blitz-Quiz!
Welcher Wert wird von digitalRead() angezeigt, wenn ein Pull-Down-Widerstand verwendet wird und der Schalter gedrückt wird?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Der Rückgabewert ist 1 (HIGH)
Welcher Wert wird angezeigt, wenn der Schalter losgelassen wird?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Der Rückgabewert ist 0 (LOW)
Welcher Wert wird von digitalRead() angezeigt, wenn ein Pull-Up-Widerstand verwendet wird und der Schalter gedrückt wird?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Der Rückgabewert ist 0 (LOW)
Welcher Wert wird angezeigt, wenn der Schalter losgelassen wird?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Der Rückgabewert ist 1 (HIGH)
Angenommen, du möchtest eine Schaltung entwerfen, bei der bei gedrücktem Schalter eine 1 und beim Loslassen eine 0 zurückgegeben wird. Würdest du einen Pull-Up- oder einen Pull-Down-Widerstand verwenden?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Einen Pull-Down-Widerstand
Hier ist ein kleiner Ausschnitt der Schaltung des Arduino. (Die komplette Schaltung kannst du hier sehen).
Es ist ein Schalter und ein Widerstand zu sehen. Beide sind mit dem Reset-Pin am Mikrocontroller (IC1) verbunden (rechts unten).
Ist der Widerstand mit einem Pull-Up- oder einem Pull-Down-Widerstand verbunden? Welchen Wert hat der Widerstand?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Es ist ein 10KOhm-Pull-Up-Widerstand.
Der Schalter hat die Bezeichnung S1. Sieh dir deinen Arduino an (evtl. musst du das Protoshield entfernen) und suche den Schalter mit der Bezeichnung S1. Was hat er für eine Funktion?
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Der Schalter S1 dient dazu, den Arduion zurückzusetzen (reset)
Ausgehend von dem, was der Schalter S1 macht und was du bisher über Pull-Up- und Pull-Down-Widerstände gelernt hast, beschreibe deine Vorstellung von dem, was diese Schaltung macht und wie der Restet-Pin funktioniert.
Markiere die folgenden Zeilen mit der Maus, um die Antwort zu sehen!
Im Normalzustand wird der Reset-Pin auf +5V gezogen. Wenn der Schalter gedrückt wird, wird der Pin mit GND verbunden. Der Mikrocontroller des Arduino setzt sich selbst zurück, sobald der Reset-Pim mit Grund verbunden wird.




0 Antworten auf “Wir schweben über den Wolken”