04B – Schalter (einfacher) verwenden

...Unter der Haube

Während wir im letzten Kapitel gelernt haben, dass ein Schalter normalerweise einen Widerstand benötigt, werden wir hier scheinbar ohne auskommen. Das Geheimnis liegt darin, dass im Arduino bereits Pullup-Widerstände verbaut sind. Wir können diese aktivieren, wenn wir als pinMode nicht INPUT sondern INPUT_PULLUP setzen. Es reichen dann zwei Kabel zum Verbinden des Schalters.Zu beachten ist, dass sich die Wirkrichtung des Schalters dann aber  umdreht (was an dem „up“ in Pullup liegt).

Die Schaltung am Beispiel des Arduino Nanos. Für den Arduino Uno funktioniert dies identisch (rotes Kabel an D2).

 

void setup() {
  pinMode(2, INPUT_PULLUP);  //Schalter
  pinMode(13, OUTPUT);       //interne LED
}

void loop() {
  int schalterWert = digitalRead(2);

  if (schalterWert == HIGH) {    //Falls Schalter NICHT gedrückt
    digitalWrite(13, LOW);       //LED ausschalten
  } else {                       //sonst
    digitalWrite(13, HIGH);      //anschalten.
  }
}

Das kannst Du ausprobieren

Du kannst die folgenden beiden Aufgaben als Übung machen.

  1. In Treppenhäusern sorgt das Drücken des Lichtschalters dafür, dass für eine gewisse Zeit das Licht angeht und anbleibt. Danach geht das Licht selbstständig wieder aus, um Strom zu sparen.
  2. Verändere die Funktionsweise des Schalters dahingehend, dass ein Drücken des Schalters den Zustand der LED ändert: War sie zuvor ausgeschaltet, schaltet ein Drücken des Schalters sie ein und umgekehrt.
    Hier kann durch die Mechanik des Schalters etwas ungewöhnliches passieren, was wir im nächsten Kapitel behandeln.

Weiter zum nächsten Tutorial!

 …wo Du erfährst, wie man spezielle Probleme löst, die bei der Verwendung von Schaltern auftreten können.