Ich habe gerade meinen ersten Arduino bekommen und hatte eine Frage zu Pull-up-Widerständen.
Ich habe versucht, einen Taster an Pin 2 mit dem Arduino zu verbinden, und wenn er HIGH ist, schreibe ich HIGH an Pin 13. Nun, in dem Tutorial, das ich mir angesehen habe, hieß es, dass ein Widerstand vom Taster zur Masse vorhanden sein soll, also wenn Pin 2 fragt, wie hoch die Spannung ist, es wird geerdet, also schreibt es nicht HIGH an Pin 13.
Ich habe dies getestet und es hat tatsächlich das Rauschen von Pin 2 verhindert. Als ich jedoch versuchte, den 10k-Widerstand durch ein normales Kabel zu ersetzen, funktionierte es nicht. Meine Frage ist also, warum müssen wir einen Widerstand verwenden und warum kann es nicht einfach eine Verbindung zur Masse sein?
In diesem Diagramm liest Pin 2, ob er 5 V (HIGH) oder 0 V (LOW) erhält, und gibt einen booleschen Wert zurück. Dann, wenn der Wert HIGH ist, gibt Pin 13 HIGH aus. Außerdem sieht es so aus, als ob der lange Draht auf dem Arduino die Beschriftung auf einem Stift blockiert. Der Pin, an den der lange Draht angeschlossen ist, sagt "5V".
Danke!
Sie müssen einen Widerstand verwenden, damit der Taster ihn überwältigen kann. Wenn Sie ein Stück Draht verwenden, erhalten Sie beim Drücken des Tasters einen Kurzschluss zwischen Vcc und GND - nicht so gut für den Taster oder den Rest der Platine. Die Verwendung eines Widerstands hält den Pin auf einem bestimmten Pegel, bis etwas „Stärkeres“ (niedrigerer Widerstand) kommt und ihn ändert (in diesem Fall die Taste).
Aktualisierung wegen Ergänzung des Diagramms.
Im Allgemeinen sind Tasten Schalter. Eine Art Feder hält sie "aus". Wenn Sie den Knopf drücken, überwinden Sie die Federkraft und er schließt seine beiden Kontakte kurz und er ist dann "an".
In Ihrem Fall haben Sie keinen Pullup, Sie haben einen Pulldown. Eine Seite des Schalters ist mit VCC (5 V) verbunden und die andere Seite ist mit dem Widerstand verbunden, der auf GND herunterzieht. Der IO-Pin ist auch mit der Widerstandsseite des Schalters verbunden.
Der Grund, warum Sie einen Widerstand benötigen, der von anderen Antwortenden erklärt wurde, ist, dass, wenn Sie ein Kabel verwenden, jedes Mal, wenn Sie die Taste drücken, 5 V direkt mit GND kurzgeschlossen werden. Sie erwähnen, dass Sie dies versucht haben und es "nicht funktioniert hat". Ich bin mir nicht sicher, was "nicht funktioniert" in diesem Zusammenhang bedeutet, aber das gesamte Board wird wahrscheinlich jedes Mal neu gestartet, wenn Sie das tun. Ich hoffe, das beantwortet alle Ihre Fragen. Viel Spaß beim Experimentieren!
Ähm .. hier sind meine 2 Cent ....
Jeder Mikrocontroller (einschließlich des im Arduino sitzenden) hat eine Strombegrenzung für seine Pins. Wenn Sie also die Pull-up- (oder Pull-down-) Widerstände anschließen, müssen Sie sicherstellen, dass der Strom, den sie ziehen können, innerhalb der Spezifikationen des Mikrocontrollers liegt). Sie brauchen dafür also einen hohen Widerstand, aber Sie können keinen zu großen Widerstand halten, damit selbst Streuströme Ihre Schaltung durcheinander bringen. Typischerweise werden etwa 10.000 bis 20.000 empfohlen.
FYI: Ich bin ein Hobbyist, kein Elektronikingenieur, also benutze meine Informationen auf eigene Gefahr :-P
Abhishek
mkeith
Nick Alexejew
Globmont
mkeith