Arduino – der Push Button

In diesem Beitrag zeige ich den Umgang mit dem push button und wie man Statusänderungen beim drücken des Buttons erkennen und darauf reagieren kann. Ein push button ist nicht in der Lage seinen Zustand nach betätigen beizubehalten, wie wir das z.B. von einem normalen Lichtschalter gewohnt sind.  Wenn man einen normalen Lichtschalter drückt dann geht die Lampe an, drückt man diesen Schalter erneut geht die wieder Lampe aus. Bei dem push button würde die Lampe nur so lange leuchten wie wir den Finger auf dem button lassen, sobald wir den Finger aber vom Button nehmen geht das Licht aus. Um nun dem push button die Eigenschaften eines normalen Lichtschalters zu verleihen, müssen wir den aktuellen Zustand des Buttons und den Wert der LED speichern und diese bei jedem betätigen des Buttons abfragen.

Erforderliche Komponenten

  • 1 x Steckbrett
  • 1 x push button
  • 1 x 10 kOhm Widerstand für den push button
  • 1 x LED
  • 1 x 220 Ohm Widerstand für die LED
  • ein paar Kabel

Steckplatine

Schaltung_PushButton

Arduino Sketch

In diesem Sketch können Sie gut erkennen wie man einen push button als Ein- Aus-Schalter benutzen kann. Um die Statusänderung beim Schalten zu erkennen und nutzen zu können, habe ich 3 Variablen angelegt.

  • state = 0 (LOW) wenn der Button los gelassen wird, 1 (HIGH) so lange der Button gedrückt wird
  • lastState = 0 (LOW) wenn die Lampe an ist, 1 (HIGH) wenn die LED aus ist
  • ledState  = 0 (LOW) wenn die Lampe an ist, 1 (HIGH) wenn die LED aus ist

Wenn Sie den Button betätigen dann wird geprüft ob der Wert von lastState mit dem Wert von state übereinstimmt. Stimmen die Werte nicht überein, dann wird als nächstes geprüft ob der Button gerade gedrückt wird. Wird dieser gerade gedrückt dann wird geprüft ob der Wert der Variablen ledState 1 ist, also ob die LED leuchtet und dementsprechend ein oder aus geschaltet.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

3 Kommentare zu “Arduino – der Push Button

  1. Hallo Enrico, nach diesem Sketch und Schaltung für einen „Ein- / Ausschalter“ habe ich schon lange gesucht. Danke für diese Anleitung.

    PS. ledPin = 13 ist in der Grafik aber Pin 3, oder ist das beim UNO anders? Ich habe es für den Nano verwendet.

    • Nein Pin13 ist beim Uno Pin13 und Pin3 ist Pin3 ;-)
      Habe den Fehler eben behoben.
      Danke Dir für den Hinweis.

  2. Mahlzeit. Danke für die kurze Erklärung.
    Eine Frage hätte ich allerdings. Wenn ich einen Taster drücke und dieser z.B. eine Funktion abarbeiten soll bis eine Bedingung erfüllt ist und er dann anschließend wieder auf LOW gesetzt werden soll, wie würde ich das am besten anstellen?
    Danke Vorab und beste Grüße