Suchcode

Lektion 98-7: Lauflicht mit Arduino und 5 LEDs

Lektion 98-7: Lauflicht mit Arduino und 5 LEDs

Ein Lauflicht (auch „Chasing"- oder „Knight Rider"-Licht genannt) ist eines der klassischen Anfänger-Arduino-Projekte — und das aus gutem Grund. Es bringt dir bei, wie du mehrere Ausgänge nacheinander steuerst, wie du Ereignisse zeitlich taktest und wie du über strombegrenzende Widerstände nachdenkst — und das alles, während etwas visuell Ansprechendes entsteht. In diesem Projekt verdrahtest du fünf LEDs mit einem Arduino und programmierst sie so, dass jede der Reihe nach aufleuchtet, wodurch die Illusion entsteht, dass ein einzelnes Licht entlang der Reihe „wandert".

5 LEDs auf dem Breadboard mit Widerstand, verbunden mit einem Arduino UNO
5 LEDs auf dem Breadboard mit Widerstand, verbunden mit einem Arduino UNO

Sobald du das Muster verstanden hast, kannst du es in einer überraschend großen Anzahl realer Projekte wiederverwenden:

  • Dekorative Beleuchtung: eine laufende Umrandung für ein Regal, einen Bilderrahmen oder ein Modell.
  • Richtungsanzeiger: ein sequenzieller Blinkereffekt für ein Requisitenfahrzeug oder ein E-Bike.
  • Fortschritts- oder Statusanzeige: eine LED-Reihe, die fortschreitet, wenn ein Prozess abgeschlossen wird.
  • Spiel- und Anzeigetafel-Requisiten: ein „bewegtes Ziel" oder eine Pegelanzeige.
  • Lehrmittel: die klarstmögliche Demonstration digitaler Ausgänge und Timing.

Dieselbe Verkabelung mit fünf LEDs wird in mehreren anderen Projekten in diesem Kurs wiederverwendet, sodass die Hardware, die du hier aufbaust, zu einer wiederverwendbaren Plattform wird.

Wie das Lauflicht funktioniert

Das Prinzip ist genau dasselbe wie beim Einschalten einer einzelnen LED — es wird einfach fünfmal wiederholt (im Video bei 30:47). Jede LED ist über ihren eigenen strombegrenzenden Widerstand mit ihrem eigenen Arduino-Pin verbunden, und alle Widerstände teilen sich eine gemeinsame Masse-Schiene. Der Sketch schaltet dann einen Pin auf HIGH, wartet, schaltet ihn auf LOW, wartet und geht zum nächsten Pin über. Da immer nur eine LED gleichzeitig leuchtet, nimmt das Auge die Sequenz als Bewegung wahr.

Die beiden Timing-Werte verleihen dem Effekt seinen Charakter. Die Einschaltzeit steuert, wie lange jede LED leuchtet, und die Ausschaltzeit steuert die Pause, bevor die nächste LED aufleuchtet. Eine kurze Einschaltzeit mit einer langen Ausschaltzeit erzeugt einen einzelnen Punkt, der sich schnell bewegt; eine lange Einschaltzeit mit einer kurzen Ausschaltzeit erzeugt einen gleichmäßigeren, kontinuierlicheren Durchlauf (im Video bei 35:00).

Hardware und Komponenten

  • 1 × Arduino-Board (Uno, Nano oder ähnlich)
  • 5 × LEDs (beliebige Farbe; das Mischen von Farben macht den Effekt leichter erkennbar)
  • 5 × Widerstände — 300 Ω bis 1 kΩ funktionieren gut
  • 1 × Breadboard
  • Jumper-Kabel
  • USB-Kabel oder Batteriepack für die Stromversorgung

Wenn du später eine Variante mit Drucktaster hinzufügen möchtest, benötigst du außerdem einen Taster und zwei zusätzliche Jumper-Kabel.

Wahl des Widerstandswerts

Eine LED hat eine Durchlassspannung von ungefähr 2 V und möchte für volle Helligkeit etwa 10 mA (im Video bei 03:49). Bei einer Versorgung von 5 V muss der Widerstand die verbleibenden 3 V abfallen lassen. Wendet man das Ohmsche Gesetz an, ergibt sich R = V / I = 3 V / 0,01 A = 300 Ω. In der Praxis funktioniert alles von 300 Ω bis etwa 1 kΩ — je höher der Widerstand, desto dunkler die LED, aber desto sicherer und effizienter die Schaltung (im Video bei 05:33).

Schaltplan für Arduino-Lauflicht-LEDs mit Drucktaster
Schaltplan für Arduino-Lauflicht-LEDs mit Drucktaster

Verkabelungsanleitung

Verkabelung von 5 LEDs am Arduino
Verkabelung von 5 LEDs am Arduino

Stecke die fünf LEDs so in das Breadboard, dass ihre Anoden (der längere Schenkel) in dieselbe Richtung zeigen. Verbinde jede Kathode (den kürzeren, flachseitigen Schenkel) mit ihrem eigenen Widerstand und verbinde das andere Ende aller fünf Widerstände mit einer gemeinsamen Masse-Schiene. Führe dann von jeder Anode ein Jumper-Kabel zu einem Arduino-Pin.

In diesem Aufbau sind die LEDs den Pins 3, 4, 5, 6 und 7 zugewiesen (im Video bei 31:29). Die Pin-Nummern werden oben im Sketch definiert. Wenn du also eine andere Anordnung bevorzugst, musst du nur diese fünf Zeilen ändern.

Code-Erklärung

Der Sketch ist bewusst einfach gehalten, damit ein Anfänger jeder Zeile folgen kann. Nur der Block ganz oben muss für deinen eigenen Aufbau bearbeitet werden.

const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30;  // the time each LED waits in the OFF state
int onTime = 100;  // the time each LED is ON

Pin-Definitionen. Die fünf const int-Zeilen ordnen jede LED einem physischen Arduino-Pin zu. Da sie als const deklariert sind, können die Werte später im Programm nicht geändert werden — das ist eine Sicherheitsgewohnheit, die versehentliche Neuzuweisungen verhindert. Wenn du deine LEDs an andere Pins anschließt, ändere hier die Nummern und sonst nichts.

onTime und offTime. Diese beiden Integer sind die einzigen „Verhaltens"-Variablen im Projekt, und mit ihnen wirst du experimentieren wollen:

  • onTime — wie lange (in Millisekunden) jede LED eingeschaltet bleibt. Größere Werte lassen jeden Schritt langsamer und bedächtiger wirken.
  • offTime — die Pause, nachdem eine LED ausgeschaltet wurde, bevor die nächste aufleuchtet. Kleinere Werte lassen das Licht schneller wandern.

Versuchen Sie onTime = 200 und offTime = 200 für eine gleichmäßige Verfolgung mit mittlerer Geschwindigkeit, oder onTime = 30 und offTime = 30 für einen sehr schnellen, fast verschwommenen Effekt (im Video bei 36:06).

Die Funktion setup() wird einmal ausgeführt und setzt einfach alle fünf Pins in den Modus OUTPUT. Die Funktion loop() wiederholt dann dasselbe vierstufige Muster für jede LED: den Pin auf HIGH setzen, onTime warten, ihn auf LOW setzen, offTime warten. Wenn die fünfte LED fertig ist, beginnt die Schleife wieder bei der ersten, wodurch ein endloses Wandern entsteht.

Live-Projekt und Demonstration

Mit den Standardwerten wandern die LEDs in einem entspannten Tempo die Reihe entlang. Wenn Sie den Sketch mit onTime und offTime auf 200 ms hochladen, ergibt sich ein stetiger, gleichmäßiger Marsch; wenn Sie beide auf 30 ms reduzieren, huscht das Licht fast zu schnell über die Reihe, um ihm folgen zu können (im Video bei 36:21).

Zwei nützliche Experimente, die Sie ausprobieren können, sobald es funktioniert:

  • Machen Sie die Einschaltzeit kürzer als die Ausschaltzeit, um einen deutlich wandernden Punkt zu erzeugen.
  • Machen Sie die Einschaltzeit länger als die Ausschaltzeit, um ein weiches, überlappendes Leuchten zu erzeugen.

Die gleiche Verkabelung mit fünf LEDs wird im nächsten Projekt wiederverwendet, bei dem ein Druckknopf das Licht Schritt für Schritt weiterschaltet. Dieser Aufbau wird in Lektion 98-8: Wanderndes Licht mit Druckknopf und LEDs mit Arduino behandelt.

Wenn Sie die Reihe lieber über einen analogen Eingang statt über einen Knopf steuern möchten, sehen Sie sich Lektion 98-9: LED-Spannungspegelmesser mit Arduino oder wanderndes Licht mit Potentiometer an.

Weiterführende Möglichkeiten

Sobald das grundlegende Wandern funktioniert, ist ein natürlicher nächster Schritt, das Licht hin und her springen zu lassen, anstatt von der letzten LED zur ersten zu springen. Das ist eine reine Code-Übung — keine zusätzliche Hardware — und es ist eine gute Möglichkeit, Schleifen und Arrays zu üben. Sie können dieses Projekt auch mit der Druckknopf-Version kombinieren, um eine manuell weitergeschaltete Anzeige zu bauen.

Verwandte Projekte aus diesem Video

Kapitel

  • [00:00] Überblick über die zehn LED-Projekte
  • [01:22] Einführung in den Arduino-Schritt-für-Schritt-Kurs
  • [02:29] Was eine LED ist und wie man ihre Pins identifiziert
  • [03:49] Berechnung des strombegrenzenden Widerstands
  • [30:47] Einführung in das Projekt „wanderndes Licht“
  • [31:06] Schaltplan für fünf LEDs
  • [32:52] Durchgehen des Codes für das wandernde Licht
  • [34:39] Demonstration und Ändern der Zeitwerte
  • [36:41] Weiterschalten des Lichts mit einem Druckknopf (separates Tutorial)
  • [42:25] LED-Spannungsbalken mit Potentiometer (separates Tutorial)
  • [49:25] Arduino-Ampel (separates Tutorial)

Bilder

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
5 LEDs auf Steckbrett mit Widerstand, verbunden mit Arduino UNO
5 LEDs auf Steckbrett mit Widerstand, verbunden mit Arduino UNO
939-Lessson 98-LED-7: Arduino code walking LED light
Sprache: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Dateien📁

Arduino-Bibliotheken (zip)

|||Benutzerhandbuch