Einleitung
Willkommen zu deinem ersten Arduino-Eingangsprojekt! In diesem Tutorial baust du eine Schaltung, bei der ein Taster eine LED steuert. Drückst du den Taster, leuchtet die LED; lässt du ihn los, erlischt sie. Dieses einfache Projekt führt dich in das Auslesen digitaler Eingänge, die Verwendung interner Pull-up-Widerstände und das Schreiben sauberen Arduino-Codes ein.
Wir nutzen den Velxio-Browser-Simulator, der eine SPICE-genaue Umgebung bietet, sodass du deine Schaltung ohne Hardware testen kannst. Los geht’s!
Schaltungsaufbau

Die Schaltung besteht aus drei Hauptkomponenten:
- Arduino Uno – das Gehirn der Operation.
- Taster – ein Momentanschalter, der beim Drücken zwei Pins verbindet.
- Rote LED – das Ausgabegerät.
Verdrahtungsdetails
-
Taster zum Arduino:
- Ein Bein des Tasters (Pin
1.l) verbindet sich über ein blaues Kabel (#00aaff) mit dem digitalen Pin 2 des Arduino. - Das andere Bein (Pin
2.l) verbindet sich über ein schwarzes Kabel mit GND.
- Ein Bein des Tasters (Pin
-
LED zum Arduino:
- Die Anode (langes Bein, Pin
A) verbindet sich über ein rotes Kabel (#ff0000) mit dem digitalen Pin 13 des Arduino. - Die Kathode (kurzes Bein, Pin
C) verbindet sich über ein schwarzes Kabel mit GND.
- Die Anode (langes Bein, Pin
Beachte, dass der Taster keinen externen Pull-up-Widerstand hat. Stattdessen verwenden wir im Code den internen Pull-up-Widerstand des Arduino. Wenn der Taster nicht gedrückt ist, wird der Eingangspin auf HIGH gezogen; beim Drücken liest er LOW.
Code-Erklärung

Hier ist der vollständige Arduino-Sketch:
// Taster-LED-Steuerung
// Taster drücken, um LED einzuschalten
const int BUTTON_PIN = 2;
const int LED_PIN = 13;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
Erklärung
- Konstanten:
BUTTON_PINist auf 2 gesetzt,LED_PINauf 13. Die Verwendung von Konstanten macht den Code lesbarer und leichter anpassbar. setup():pinMode(BUTTON_PIN, INPUT_PULLUP)konfiguriert Pin 2 als Eingang mit aktiviertem internem Pull-up-Widerstand. Das bedeutet, der Pin liest standardmäßig HIGH und beim Drücken des Tasters (der ihn mit GND verbindet) LOW.pinMode(LED_PIN, OUTPUT)setzt Pin 13 als Ausgang, um die LED anzusteuern.
loop():digitalRead(BUTTON_PIN)liest den Tasterzustand. Ist er LOW (Taster gedrückt), schalten wir die LED mitdigitalWrite(LED_PIN, HIGH)ein. Andernfalls schalten wir sie aus.
Wichtige Konzepte
Digitaler Eingang und Pull-up-Widerstände
Wenn ein digitaler Pin als Eingang konfiguriert ist, liest er entweder HIGH (5V) oder LOW (0V). Ohne Pull-up- oder Pull-down-Widerstand kann der Pin zwischen Zuständen schweben, was zu unregelmäßigen Messwerten führt. Der interne Pull-up-Widerstand (typischerweise 20k-50k Ohm) sorgt für einen stabilen HIGH-Zustand, wenn der Taster offen ist. Das Drücken des Tasters verbindet den Pin direkt mit GND, überschreibt den Pull-up und liefert einen LOW-Wert.
Entprellung
Mechanische Taster prellen oft, was mehrere schnelle Zustandswechsel verursacht. In diesem einfachen Beispiel ignorieren wir die Entprellung, da die LED schnell reagiert und der Effekt minimal ist. Für kritischere Anwendungen kannst du eine kleine Verzögerung einfügen oder eine Entprellbibliothek verwenden.
Verwendung von Konstanten
Das Definieren von Pin-Nummern als Konstanten am Anfang des Sketches erleichtert das Ändern der Verdrahtung, ohne im Code suchen zu müssen. Es verbessert auch die Lesbarkeit.
Häufige Fehler und Tipps zur Fehlersuche
- Tasterverdrahtung: Stelle sicher, dass ein Bein zum Arduino-Pin und das andere zu GND führt. Wenn du beide Beine in derselben Reihe anschließt, funktioniert der Taster nicht.
- LED-Polarität: Die Anode (langes Bein) muss mit dem digitalen Pin verbunden werden, die Kathode (kurzes Bein) mit GND. Ein Vertauschen beschädigt die LED nicht, aber sie leuchtet nicht.
- Pull-up nicht aktiviert: Wenn du
INPUT_PULLUPvergisst und nurINPUTverwendest, schwebt der Pin und die LED könnte zufällig flackern. - Falsche Pin-Nummern: Überprüfe, ob dein Code mit der Verdrahtung übereinstimmt. In diesem Beispiel ist der Taster an Pin 2, die LED an Pin 13.
Den Velxio-Simulator verwenden

Klicke auf die Schaltfläche Run in der Symbolleiste, um die Simulation zu kompilieren und zu starten. Dann kannst du auf der Leinwand auf den Taster klicken, um die LED reagieren zu sehen.

Nutze die Leinwand-Symbolleiste, um die Simulation zu pausieren, zurückzusetzen oder die Geschwindigkeit anzupassen.

Um weitere Komponenten hinzuzufügen, öffne die Komponentenauswahl und durchsuche Kategorien wie “Eingabe” oder “Ausgabe”.

Wenn du zusätzliche Bibliotheken benötigst (z. B. zum Entprellen), verwende den Bibliotheksmanager.
Vorschläge für Erweiterungen
Sobald die Grundschaltung funktioniert, probiere diese Verbesserungen aus:
- Umschaltmodus: Ändere den Code so, dass jeder Tastendruck die LED ein- oder ausschaltet, anstatt sie gedrückt zu halten.
- Mehrere LEDs: Füge weitere LEDs und Taster hinzu, um ein einfaches Eingabefeld zu erstellen.
- Entprellung: Implementiere eine Software-Entprellung mit einer 50ms-Verzögerung oder einem Timer.
- Serieller Monitor: Gib den Tasterzustand über den Seriellen Monitor zur Fehlersuche aus.
- PWM-Helligkeit: Ersetze
digitalWrite()durchanalogWrite(), um die LED-Helligkeit basierend auf der Tasterdrückdauer zu steuern.