Der interne Pull-Up
Teil des Abschnitts Eingaben der Arduino-Journey von Coddy. Lektion 3 von 22.
Du hast seit „Read a Button“ INPUT_PULLUP verwendet. Dabei wird ein Widerstand im Board zugeschaltet, 20k bis 50k Ohm, zwischen dem Pin und 5V: Der Pull-down-Widerstand aus der letzten Lektion ist umgekehrt, ohne zusätzliches Bauteil. Der Button verbindet den Pin nur mit GND.
Der Haken ist, dass die Logik auf dem Kopf steht: Nicht gedrückt wird HIGH gelesen, gedrückt wird LOW gelesen, und == LOW überall im Sketch lässt sich leicht verwechseln. Ein Vergleich wie digitalRead(2) == LOW ergibt selbst true oder false, und ein bool ist eine Variable, die true oder false enthält. Speichere den Wert unter einem Namen, der seine Bedeutung ausdrückt:
bool pressed = digitalRead(2) == LOW;
if (pressed) {
// der Knopf ist gedrückt
}Von da an ist der Code richtig herum zu lesen. Die Ausgabe eines bool zeigt 1 für true und 0 für false.
Aufgabe
EinfachDer Taster verbindet Pin 2 mit GND, und die LED ist an Pin 13 angeschlossen:
- setze Pin 2 auf
INPUT_PULLUP - speichere
digitalRead(buttonPin) == LOWin einemboolnamenspressed - gib
pressedaus, lass die LED leuchten, solange der Werttrueist, und warte dann 100 ms
Bei „Check“ wird 1 erwartet, solange der Taster gedrückt ist, und 0, wenn er losgelassen ist. Drücke auf Run, halte den Taster gedrückt und klicke dann auf Check.
Probier es selbst
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
// Aktiviere den Pull-up-Widerstand des Taster-Pins
}
void loop() {
// bool pressed = ...
// Gib den Wert aus, lass die LED leuchten, solange er true ist, und warte 100 ms
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Eingaben
Übe selbstständig: Arduino-Playground