Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Der Taster verbindet Pin 2 mit GND, und die LED ist an Pin 13 angeschlossen:

  • setze Pin 2 auf INPUT_PULLUP
  • speichere digitalRead(buttonPin) == LOW in einem bool namens pressed
  • gib pressed aus, lass die LED leuchten, solange der Wert true ist, 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
}
quiz iconTeste dich selbst

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