Lektion 98-8: Gehlicht mit Druckknopf und LEDs mit Arduino
Dieses Projekt zeigt dir, wie du ein „laufendes Licht" baust, das bei jedem Tastendruck einen Schritt weiterrückt. Statt eines Lichts, das nach einem eigenen Timer läuft, erhältst du eine direkte, haptische Steuerung: Jeder Tastendruck bewegt die leuchtende LED eine Position nach vorne, und nach der letzten LED springt es wieder zur ersten zurück. Dies ist einer der nützlichsten Bausteine im Arduino-Lernen, denn er lehrt dich, wie du einen digitalen Eingang (den Taster) mit einer rotierenden Zustandsmaschine (welche LED gerade leuchtet) kombinierst — ein Muster, das du ständig wiederverwenden wirst.
Sobald du dieses Muster verstanden hast, treibt dieselbe Logik eine riesige Bandbreite realer Projekte an. Hier sind ein paar praktische Ideen, die du damit umsetzen kannst:
- Ein Menüauswahl auf einem Gerät, bei dem jeder Tastendruck die nächste Option hervorhebt.
- Eine sequenzielle Schrittanzeige für eine Maschine oder einen Prozess (Schritt 1, Schritt 2, Schritt 3 ...).
- Eine Punktestand- oder Levelanzeige, die du manuell mit einem Taster weiterschaltest.
- Eine „nächster Kanal"- oder „nächster Modus"-Anzeige für einen Lichtcontroller.
- Ein einfacher Spiel- oder Quiz-Buzzer, bei dem die Spieler abwechselnd die nächste Lampe zum Leuchten bringen.
- Ein Relais- oder Lastsequenzer, bei dem jeder Tastendruck den nächsten Ausgang der Reihe nach aktiviert.
Der entscheidende Vorteil gegenüber einem automatisch laufenden Licht ist die Kontrolle: Nichts passiert, bis du drückst, sodass das Licht nur weiterrückt, wenn du es entscheidest. Das Video merkt außerdem an, dass dieselbe Umschalt- und Sequenzidee auch ein Relais ansteuern kann, um ein AC-Licht zu schalten oder einen Motor zu steuern, nicht nur LEDs (im Video bei 19:52).
Hardware und Komponenten
Die Teileliste ist kurz und günstig:
- Ein Arduino-Board (Uno, Nano, Mega oder ein beliebiges kompatibles Board).
- Fünf LEDs — 5 mm oder 3 mm, in beliebigen Farben.
- Fünf strombegrenzende Widerstände, 200 Ω bis 1000 Ω (das Video verwendet 1 kΩ).
- Ein Tastschalter (ein momentaner taktiler Schalter ist ideal).
- Ein Breadboard und einige DuPont-Jumperkabel.
Ein kurzer Hinweis zu den LEDs: Die Kathode ist das kürzere Bein und die Seite mit der flachen Kante, während die Anode das längere Bein ist (im Video bei 03:13). Der Widerstandswert ist nicht kritisch — ein höherer Widerstand macht die LED einfach dunkler, sodass alles von etwa 300 Ω bis 1000 Ω gut funktioniert (im Video bei 05:33).
Verdrahtungsanleitung
Die Verdrahtung ist im Wesentlichen dieselbe wie bei einem Standard-Lauflicht mit fünf LEDs, ergänzt um einen Taster. Die Anode jeder LED wird mit ihrem eigenen Arduino-Pin verbunden, und jede Kathode wird über ihren eigenen Widerstand mit einer gemeinsamen Masse-Schiene auf dem Breadboard verbunden. In diesem Aufbau sind die LEDs mit den Pins 3, 4, 5, 6 und 7 verdrahtet (im Video bei 31:37). Der Taster wird auf dem Breadboard platziert, mit einem Bein an Masse und dem anderen Bein an Pin 2 — derselbe Pin, den der Code für den Taster verwendet (im Video bei 37:04).
Da der Code den internen Pull-up-Widerstand des Arduino aktiviert, ist kein externer Widerstand am Taster nötig. Wenn der Taster nicht gedrückt wird, liest der Pin HIGH, und wenn du ihn drückst, wird der Pin auf Masse gezogen und liest LOW (im Video bei 14:02).
Code-Erklärung
Das vollständige Programm ist unten in diesem Artikel verfügbar. Hier konzentrieren wir uns auf die Teile, die du tatsächlich ändern möchtest.
Oben im Sketch wird jede LED und der Taster einem Pin zugewiesen. Hier passt du den Aufbau an deine eigene Verdrahtung an:
const int pushButtonPin = 2; // push button pin
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int LED_ON = LED1; // which LED is currently lit
Die Variable LED_ON ist das Herzstück des Projekts. Sie merkt sich, welche LED gerade leuchtet, beginnend bei LED1. Jedes Mal, wenn du den Taster drückst, rückt der Code LED_ON zur nächsten LED in der Sequenz weiter und schaltet die vorherige aus, sodass immer nur eine LED gleichzeitig leuchtet.
Außerdem gibt es eine kleine Verzögerung nach jedem Tastendruck:
delay(200); // debounce / give the user time between presses
Diese Pause von 200 Millisekunden verhindert, dass ein einzelner physischer Tastendruck als mehrere Tastendrücke registriert wird. Wenn dein Finger zittert oder sich der Taster zu empfindlich anfühlt, erhöhe diese Zahl; wenn du eine schnellere Reaktion möchtest, verringere sie. Beachte, dass ein zu niedriger Wert dazu führen kann, dass das Licht unerwartet weiterspringt (im Video bei 41:20).
Die Hauptlogik befindet sich in der loop(). Sie liest den Taster, und nur wenn der Taster gedrückt wird (LOW gelesen wird), schaltet sie das Licht weiter. Die Sequenz verwendet eine Kette von if / else if-Prüfungen, um von LED1 zu LED2 zu LED3 und so weiter zu wechseln und nach der letzten wieder zu LED1 zurückzuspringen. Wenn Sie die Richtung oder die Reihenfolge der LEDs ändern möchten, ist dies der Block, den Sie bearbeiten müssen — weisen Sie einfach neu zu, welcher Pin auf welchen folgt.
Live-Projekt und Demonstration
Nach dem Hochladen des Codes bringt das Drücken des Tasters die erste LED zum Leuchten; beim Loslassen bleibt diese LED an. Der nächste Tastendruck bewegt das Licht zur zweiten LED, dann zur dritten, vierten und fünften, und der folgende Tastendruck kehrt zur ersten zurück — eine kontinuierliche Rotation (im Video bei 40:22).
Ein schöner Nebeneffekt der Verzögerung von 200 Millisekunden ist, dass das Licht, wenn Sie den Taster gedrückt halten, von selbst alle 200 Millisekunden weiterwandert, wodurch das Projekt effektiv zu einem automatischen Lauflicht wird, solange der Taster gedrückt ist (im Video bei 42:07). Lassen Sie den Taster los, bleibt es bei der aktuellen LED stehen. So erhalten Sie sowohl manuelles Weiterschalten als auch freihändigen Betrieb mit nur einem Taster.
Wenn Sie das Licht lieber ganz ohne Taster automatisch laufen lassen möchten, ist das ein separates Projekt. Die automatische Version wird in Lektion 98-7: Lauflicht mit Arduino und 5 LEDs behandelt.
Verwandte Projekte aus diesem Video
- Lektion 98-1: Wie man eine LED mit Arduino ein- und ausschaltet
- Lektion 98-2: Wie man eine LED mit einem Taster und Arduino ein- und ausschaltet
- Lektion 98-3: Wie man eine Toggle-LED mit einem Taster und Arduino ein-/ausschaltet
- Lektion 98-4: Dimmen einer LED mit Arduino: Helligkeitssteuerung
- Lektion 98-5: Licht dimmen, wenn ein Taster gedrückt wird, mit Arduino
- Lektion 98-6: Wipp-LED-Spiel mit Arduino
- Lektion 98-7: Lauflicht mit Arduino und 5 LEDs
- Lektion 98-9: LED-Spannungspegelmesser mit Arduino oder Lauflicht mit Potentiometer
- Lektion 98-10: Arduino-Ampel
Kapitel
- [00:00] Überblick über die 10 Arduino-LED-Projekte
- [01:22] Einführung in den Arduino-Schritt-für-Schritt-Kurs
- [02:29] LEDs verstehen: Symbole, Polarität und Pins
- [03:49] Berechnung des LED-Strombegrenzungswiderstands
- [30:47] Lauflicht mit 5 LEDs: Verdrahtung und Prinzip
- [32:52] Lauflicht-Code: Pins, Timing und Loop
- [36:41] Weiterschalten des Lichts mit einem Taster
- [37:44] Lauflicht mit Taster: Code-Durchlauf
- [40:22] Demonstration und Anpassen der Tastverzögerung
- [57:16] Schlussbemerkungen und Kurs-Outro
This code has not been parsed yet. Please return to the admin panel to parse it.
Dinge, die Sie vielleicht brauchen
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Ressourcen & Referenzen
-
DokumentationDokumentation für das SunFounder 3 in 1 IoT/Smarte Auto/Lernkitdocs.sunfounder.com
-
Extern
-
Extern
-
Extern
Dateien📁
Arduino-Bibliotheken (zip)
-
SunFounder 3-in-1 Smart Car Lernkit Quellcode
3in1-kit-main-v2.zip12.80 MB
|||Benutzerhandbuch
-
SunFounder 3-in-1 Arduino Smart Car MontageanleitungDieses Dokument zeigt die Schritt-für-Schritt-Montage des SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB