Eine LED mit einem Taster steuern

 Die Kontrolle einer LED mit einem Taster ermöglicht uns, die physikalische Interaktion mit unserem Arduino zu erleben und die Beleuchtung nach unseren Vorstellungen zu steuern. Durch die Kombination eines Tasters und einer leuchtenden LED können wir verschiedene Schaltungen erstellen und unsere Kreativität entfalten.

Der Sketch für die Steuerung einer LED mit einem Taster demonstriert die Verwendung des if-Konstrukts, das in der Programmierung zum Treffen von Entscheidungen verwendet wird. Mit Hilfe dieses Codes können wir den Tasterzustand auslesen und basierend darauf die LED ein- und ausschalten. Das Ein- und Ausschalten der LED erfolgt durch das Setzen des entsprechenden Ausgangspins des Arduino auf HIGH oder LOW.

In diesem Artikel werden wir die Grundlagen lernen, wie man eine LED mit einem Taster steuert. Wir werden die Verbindung zwischen Taster und Arduino herstellen, den Tasterzustand auslesen und die LED entsprechend steuern. Dabei werden wir die Vielseitigkeit und Flexibilität dieser Art der Steuerung erkunden und mögliche Erweiterungen für unser Projekt betrachten.

Egal ob du ein Anfänger im Arduino-Bereich bist oder bereits über fortgeschrittene Kenntnisse verfügst, die Kontrolle einer LED mit einem Taster ist ein aufregendes Projekt, das dir ermöglicht, dein Verständnis für Schaltungen und Programmierung zu erweitern. Also lass uns gemeinsam in die Welt der LED-Taster-Steuerung eintauchen und spannende Projekte erschaffen.

Der Sketch

Der folgende Sketch zeigt, wie du eine LED mit einem Taster steuern kannst:

Sketch-Details und Erläuterungen

Die meisten Befehle sind dir wahrscheinlich bereits bekannt, dennoch fassen wir sie kurz zusammen.

Zu Beginn definierst du zwei Integer-Variablen, buttonPin und ledPin, die den Pins deines Tasters und deiner LED zugewiesen werden.

intledPin = 13;     //Pin für die LED
int buttonPin = 3;  //Pin für den Taster

Im setup()-Bereich informierst du den Arduino, dass ledPin als OUTPUT (Ausgang) und buttonPin als INPUT (Eingang) dient.

void setup() 
{
  pinMode(ledPin, OUTPUT);      // LED-Pin als Ausgang konfigurieren
  pinMode(buttonPin, INPUT);    // Taster-Pin als Eingang konfigurieren
}

Dann initialisierst du eine weitere Variable, buttonState, um den Zustand des Tasters zu speichern. Mit digitalRead(buttonPin) liest du den Tasterstatus aus und weist diesen Wert buttonState zu.

int buttonState = digitalRead(buttonPin);    //Tasterzustand abfragen und in buttonState speichern

Jetzt kommen wir zum spannendsten Teil deines Sketches, der if-else-Konstruktion. Die if-Anweisung funktioniert wie eine Bedingung: wenn die Bedingung erfüllt ist, führt das Programm die Befehle innerhalb der if-Klammern aus. Ist die Bedingung nicht erfüllt, überspringt das Programm die Befehle und geht weiter zur else-Anweisung.

if (buttonState == HIGH) {
  // Wenn der Taster gedrückt ist (buttonState = HIGH), schalte die LED ein
  digitalWrite(ledPin, HIGH);
} else {
  // Andernfalls (buttonState = LOW), schalte die LED aus
  digitalWrite(ledPin, LOW);
}

Es ist wichtig, den Unterschied zwischen = (Zuweisungsoperator) und == (Vergleichsoperator) zu beachten. = weist einen Wert zu, während == überprüft, ob zwei Werte gleich sind.

Wenn die if-Bedingung nicht erfüllt ist, springt das Programm zur else-Anweisung. Hier wird die LED ausgeschaltet, falls der Taster nicht gedrückt ist. Mit dieser Übung hast du eine wesentliche Fähigkeit erlangt, um die Verbindung von Hardware und Software zu verstehen und zu gestalten.

Übungsaufgaben

Wir vertiefen dein Verständnis über die Programmierung mit Arduino und der Unterscheidung zwischen den Operatoren = und ==. Darüber hinaus werfen wir einen Blick darauf, wie man mit zwei Tastern arbeitet. Hier sind zwei Übungen dazu:

Übung 1: Die fehlerhafte Verwendung von = und ==
Es ist wichtig, den Unterschied zwischen dem Gleichheitsoperator (==) und dem Zuweisungsoperator (=) zu verstehen. Versuche, in der if-Abfrage den Zuweisungsoperator (=) zu benutzen. Welche Art von Fehlermeldung bekommst du? Teste es aus und lies dann weiter.

if(buttonState = HIGH); // Falsche Verwendung

Überraschenderweise erhältst du keine Fehlermeldung. Die if-Anweisung erwartet ein boolesches Ergebnis, also entweder wahr oder falsch (HIGH oder LOW). Wenn du if(buttonState = HIGH) verwendest, weist du der Variable buttonState direkt den Wert HIGH zu. Die Bedingung ist somit immer wahr. Der Inhalt der if-Anweisung wird bei jedem Durchlauf des Programms ausgeführt, unabhängig davon, ob der Taster gedrückt ist oder nicht. Andererseits würde die folgende Zeile dafür sorgen, dass die if-Anweisung nie ausgeführt wird, da die Bedingung mit LOW niemals wahr sein kann.

if(buttonState = LOW); //Falsche Verwendung

Das Verwechseln dieser beiden Operatoren kann zu unerwarteten Fehlern im Programm führen. Eine spezifische Fehlermeldung wird nicht ausgegeben. Ein solcher Fehler, der oft als logischer Fehler bezeichnet wird, kann schwer zu entdecken sein und viel Zeit in Anspruch nehmen.

Übung 2: Die Verwendung eines zweiten Tasters
Erweitere deinen Sketch um einen weiteren Taster, so dass beim Drücken des zweiten Tasters eine andere LED, sagen wir mal eine grüne, leuchtet und beim Loslassen erlischt. Du musst hierfür eine zweite if-Anweisung für den neuen Taster schreiben. Es ist ein guter Weg, um zu üben und zu verstehen, wie man mit mehreren Eingabe- und Ausgabegeräten arbeitet. Viel Spaß beim Experimentieren!

//Festlegung der Pinnummer für den Taster
int buttonPin = 3;

//Festlegung der Pinnummer für die LED
int ledPin = 13;

//Variable zum Speichern des Tasterzustands
int buttonState = 0;

  
void setup() 
{
  //Festlegung des Pinmodus für den Taster
  pinMode(buttonPin, INPUT);
  
  //Festlegung des Pinmodus für die LED
  pinMode(ledPin, OUTPUT);
}

  
void loop() 
{
  //Auslesen des Tasterzustands
  buttonState = digitalRead(buttonPin);
  
  //Überprüfung, ob der Taster gedrückt wurde
  if (buttonState == HIGH) 
  {
    //Einschalten der LED
    digitalWrite(ledPin, HIGH);
  } else 
  {
    //Ausschalten der LED
    digitalWrite(ledPin, LOW);
  }
}

Aufbau und Verkabelung

Um eine LED mit einem Taster zu steuern, verbinde den GND-Anschluss des Taster-Moduls mit einem GND-Anschluss auf dem Arduino. Verbinde den Signalausgang des Taster-Moduls mit dem digitalen Pin 3 auf dem Arduino. Für das LED-Modul verbinde den VCC-Anschluss mit einem 5V-Anschluss auf dem Arduino und den LED-Steuerpin mit dem digitalen Pin 13. Verbinde schließlich den GND-Anschluss des LED-Moduls mit einem weiteren GND-Anschluss auf dem Arduino. Konsultiere die Anleitungen und Datenblätter deiner Module, um korrekte Verbindungen herzustellen und Schäden zu vermeiden. Behalte beim Experimentieren und Aufbau immer den Überblick und achte auf korrekte Verbindungen. Nur so kannst du garantieren, dass dein Projekt wie geplant funktioniert.