Das Tutorial zu Arduino Digital Read Serial führt Sie durch die Verkabelung einer einfachen Taste. Meine Fragen drehen sich um den Widerstand.
Warum ist der Widerstand notwendig?
Ich glaube, ich verstehe das, aber korrigiere mich, wenn ich falsch liege. Um sicherzustellen, dass der Eingangsstift ein niedriges Signal liest und nicht schwebt, sollten wir den Stift mit Masse verbinden, wenn der Knopf nicht gedrückt wird. Wenn der Knopf gedrückt wird, fließt ein 5-V-Signal sowohl zum Pin als auch zur Erde. Das Spannungsgesetz von Kirchhoff besagt, dass die Gesamtspannung im geschlossenen Regelkreis gleich Null sein muss, also müssen wir uns mit diesen 5 V befassen, die direkt zur Erde fließen. Deshalb haben wir einen Widerstand zwischen Knopf und Masse gelegt.
Wie wurde der Widerstandswert gewählt?
Das ist mir unklar. Ohmsches Gesetz besagt, dass ...
resistance = voltage / current
Dies ist eine 5-V-Versorgung und die Arduino Uno- Spezifikation besagt, dass der Pin 40 mA Gleichstrom liefert. So..
resistance = 5V / 0.04A = 125 Ohms
Warum haben wir im Digital Read Serial- Tutorial einen 10K-Ohm-Widerstand? Das ist doch übertrieben, oder? Was zu einer anderen Frage führt: Können Sie jemals zu viel Widerstand leisten, wenn Ihr einziges Ziel darin besteht, die Spannung zu löschen?
Vielen Dank im Voraus für jedes Feedback!
quelle
Die Arduino-Eingänge haben einen sehr hohen Widerstand. Das Datenblatt des Atmega328 besagt 100 MOhm für ADC. Solche hohen Werte sind gut, haben aber auch den Nachteil, mit parasitären Effekten (Widerstand, Induktivität, Kapazität) umzugehen. Solche Effekte können auch als Kapazitätssensoren verwendet werden .
Der Widerstand muss einen beliebigen Wert haben, der kleiner als der Eingangswiderstand ist. 10k und höher sind gut zum Deaktivieren der Eingangsleckage.
Sie können den Widerstand jedoch auch weglassen, wenn Sie die internen Pull-up-Widerstände verwenden. In diesem Fall haben Sie es mit negativer Logik zu tun:
An Pin 3 messen Sie
HIGH
und der Knopf muss mit dem Pin und der Masse verbunden sein. Der interne I / 0-Pull-up-Widerstand hat den Wert 50k.quelle
Sie haben bereits einige gute Antworten erhalten, warum ein Pulldown-Widerstand benötigt wird.
Zusammenfassend müssen Sie den Eingang mit Masse verbinden, um zu verhindern, dass der Eingang halb zufällig zwischen hoch und niedrig schwebt. Sie verwenden einen Widerstand, damit beim Schließen des Schalters kein Kurzschluss zwischen der + 5V-Versorgung und Masse entsteht.
Ein weiterer Punkt. Zu den Eingängen des Arduino gehört ein optionaler interner, softwaregesteuerter Pull-up- Widerstand. Wenn Sie zuerst den Pin als Eingang einrichten und dann einen HIGH-Wert in diesen Port schreiben, wird der Pull-up-Widerstand aktiviert. Dadurch wird der Pin als HIGH angezeigt, wenn nichts mit ihm verbunden ist.
Sie können dann Ihren Schalter anstelle von + 5V an Masse anschließen. Sie müssen dann Ihre Codelogik ändern, um einen HIGH-Wert als nicht gedrückt und einen LOW-Wert als gedrückt zu behandeln. Auf diese Weise können Sie die Verkabelung ein wenig vereinfachen, da Sie keinen externen Widerstand benötigen.
quelle