

Der LED-Stick besteht aus mehreren miteinander verbundenen RGB-LEDs. Jede besitzt einen eigenen Controller und kann einzeln angesteuert werden. Der LED-Stick benötigt nur einen digitalen Eingang.
RGB ist eine Mischung der Farben Rot, Grün und Blau. Jede Farbe kann von 0 bis 255 gesetzt werden, die Werte werden durch Kommata getrennt.

Hier findest du einen Überblick über die 🔗RGB-Farbcodes (externer Link abgerufen am 19.02.24).
Die Ampel soll nach einem festgelegten Takt geschaltet werden:
| rot | rot-gelb | grün | gelb |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| 5 Sekunden | 1 Sekunde | 3 Sekunden | 1 Sekunde |
| LEDs 8, 7, 6 | LEDs 8, 7, 6, 5, 4 | LEDs 3, 2, 1 | LEDs 5, 4 |
Benötigte Bauteile:
- LED-Stick
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)

Achte auf die Polung. Sie kann bei den LED-Sticks verschiedener Hersteller unterschiedlich sein.
Benötigte Bibliothek:

oder: Sketch -> Bibliothek einbinden -> Bibliotheken verwalten

Jedem Befehl muss der Name des LED-Sticks vorangestellt werden.
Direkt weiter zur ⇒ Programmierung
Funktionen der Bibliothek Adafruit_NeoPixel (Auswahl)
| Schlüsselwort | Aktion |
|---|---|
| begin() | LED-Ring starten |
| numPixels() | Anzahl der LEDs lesen |
| show() | LED-Ring einschalten |
| clear() | LED-Ring ausschalten |
| setPixelColor(LED-Nummer, rot, grün, blau) | Farbe einer LED setzen LED-Nummer rot -> 0 — 255 grün -> 0 — 255 blau -> 0 — 255 |
| setBrightness() | Helligkeit setzen (0–255) |
| Color(rot, grün, blau) | Farbe für alle LEDs setzen rot -> 0 — 255 grün -> 0 — 255 blau -> 0 — 255 Beispiel rot: int Farbe = LEDStreifen.Color(255, 0, 0); Beispiel grün: int Farbe = LEDStreifen.Color(0, 255, 0); Beispiel blau: int Farbe = LEDStreifen.Color(0, 0, 255); |
| fill(Farbe, Start, Ende) | Farbe für die mit Start und Ende bezeichneten Pixel setzen |
Das Beispiel nutzt einige Funktionen der Bibliothek:
Das dazugehörige Programm. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | #include “Adafruit_NeoPixel.h” // digitaler Pin des LED-Sticks int PinLEDStick = 7; // Anzahl der LEDs #define AnzahlLED 8 /* Initialisierung des LED-Sticks Parameter: LEDStick -> Name des LED-Sticks AnzahlLED -> Anzahl der LEDs PinLEDStick -> verwendeter Pin NEO_GRB + NEO_KHZ800 -> Typ des verwendeten LED-Sticks */ Adafruit_NeoPixel LEDStick = Adafruit_NeoPixel(AnzahlLED, PinLEDStick, NEO_GRB + NEO_KHZ800); void setup() { // NeoPixel Bibliothek initialisieren LEDStick.begin(); // setBrightness(0..255) LEDStick.setBrightness(200); } void loop() { // Farbe rot schrittweise von 0 bis 255 aufhellen for (int i = 0; i < 255; i++) { // alle LEDs mit der Leuchtstärke i zum Leuchten bringen for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(i, 0, 0)); LEDStick.show(); } } // LEDs von der maximalen Leuchtstärke 255 auf 0 abdunkeln for (int i = 255; i > 0; i–) { for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(i, 0, 0)); LEDStick.show(); } } // LED aus, kurze Pause LEDStick.clear(); delay(1000); // Farbe grün schrittweise von 0 bis 255 aufhellen for (int i = 0; i < 255; i++) { for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, i, 0)); LEDStick.show(); } } // LEDs von der maximalen Leuchtstärke 255 auf 0 abdunkeln for (int i = 255; i > 0; i–) { for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, i, 0)); LEDStick.show(); } } // LED aus, kurze Pause LEDStick.clear(); delay(1000); // Farbe blau schrittweise von 0 bis 255 aufhellen for (int i = 0; i < 255; i++) { for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, i)); LEDStick.show(); } } // LEDs von der maximalen Leuchtstärke 255 auf 0 abdunkeln for (int i = 255; i > 0; i–) { for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, i)); LEDStick.show(); } } // LED aus, kurze Pause LEDStick.clear(); delay(1000); // vorwärts mit rot for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(255, 0, 0)); LEDStick.show(); delay(100); } // rückwärts mit grün for (int LEDNummer = LEDStick.numPixels(); LEDNummer >= 0 ; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 255, 0)); LEDStick.show(); delay(100); } // LED aus, kurze Pause LEDStick.clear(); delay(1000); // vorwärts mit blau for (int LEDNummer = 0; LEDNummer < LEDStick.numPixels(); LEDNummer++) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, 255)); LEDStick.show(); delay(100); } // rückwärts mit gelb for (int LEDNummer = LEDStick.numPixels(); LEDNummer >= 0 ; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(255, 255, 0)); LEDStick.show(); delay(100); } // LED aus, kurze Pause LEDStick.clear(); delay(1000); } |
Die Programmierung der Ampel:
Der zeitliche Ablauf:

Binde die benötigte Bibliothek ein und definiere die Variablen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | include “Adafruit_NeoPixel.h” int PinLEDStick = 7; int AnzahlLED = 8; /* Initialisierung des LED-Sticks Parameter: LEDStick -> Name des LED-Sticks AnzahlLED -> Anzahl der LEDs PinLEDStick -> verwendeter Pin NEO_GRB + NEO_KHZ800 -> Typ des verwendeten LED-Sticks */ Adafruit_NeoPixel LEDStick = Adafruit_NeoPixel(AnzahlLED, PinLEDStick, NEO_GRB + NEO_KHZ800); |
Der setup-Teil:
1 2 3 4 5 6 7 8 | void setup() { // NeoPixel Bibliothek initialisieren LEDStick.begin(); // setBrightness(0..255) LEDStick.setBrightness(200); } |
Der loop-Teil. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | void loop() { // Zählung beginnt oben am LED-Stick // rot ein for (int LEDNummer = AnzahlLED; LEDNummer > 4; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(255, 0, 0)); LEDStick.show(); } delay(3000); // gelb an for (int LEDNummer = 4; LEDNummer > 2; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(255, 255, 0)); LEDStick.show(); } delay(1000); // rot aus for (int LEDNummer = AnzahlLED; LEDNummer > 4; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, 0)); LEDStick.show(); } // gelb aus for (int LEDNummer = 4; LEDNummer > 2; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, 0)); LEDStick.show(); } // grün an for (int LEDNummer = 2; LEDNummer >= 0; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 255, 0)); LEDStick.show(); } delay(3000); // grün aus for (int LEDNummer = 2; LEDNummer >= 0; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, 0)); LEDStick.show(); } // gelb an for (int LEDNummer = 4; LEDNummer > 2; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(255, 255, 0)); LEDStick.show(); } delay(1000); // gelb aus for (int LEDNummer = 4; LEDNummer > 2; LEDNummer–) { LEDStick.setPixelColor(LEDNummer, LEDStick.Color(0, 0, 0)); LEDStick.show(); } } |
Verwandte Anleitungen:
- Ampel
- Ampel mit dem Beschleunigungssensor ADXL335 schalten
- Ampel mit Bluetooth schalten
- Ampel mit einem Ethernet-Shield schalten
- Ampel mit Fußgängerampel
- Ampel mit Fußgängerampel und Taster
- Ampel mit UNO R4 WiFi schalten
- Ampel mit WiFi schalten
- Ampelanlage an einem Fußgängerüberweg
- Ampel mit Ultraschallsensor schalten
Letzte Aktualisierung:










