Der NeoPixel-Ring besteht aus mehreren miteinander verbundenen RGB-LEDs. Jede besitzt einen eigenen Controller und kann einzeln angesteuert werden. Er benötigt nur einen digitalen Eingang. Der NeoPixel-Ring ist in verschiedenen Bauformen zwischen 12 und 60 LEDs erhältlich.
Die Programmierung unterscheidet sich nicht.
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.
🔗RGB-Codes (externer Link abgerufen am 22.10.24)
Beispiele:
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 |
Der Schaltplan:
Achte auf die Polung. Sie kann bei den NeoPixel-Ringen verschiedener Hersteller unterschiedlich sein.
Jede LED kann einzeln angesprochen werden.
Die Zählung beginnt mit 0!
So sieht es aus:
Benötigte Bibliothek:
#include "Adafruit_NeoPixel.h"
#define RING 7
// Anzahl der LEDs ⇒ muss angepasst werden
#define AnzahlLED 32
// LEDRing -> Name des LED-Rings
Adafruit_NeoPixel LEDRing(AnzahlLED, RING, NEO_GRB + NEO_KHZ800);
void setup()
{
// setBrightness(0..255)
LEDRing.setBrightness(200);
// NeoPixel Bibliothek initialisieren
LEDRing.begin();
}
void loop()
{
// rot
LEDRing.fill(LEDRing.Color(255, 0, 0), 0, AnzahlLED);
LEDRing.show();
delay(1000);
// grün
LEDRing.fill(LEDRing.Color(0, 255, 0), 0, AnzahlLED);
LEDRing.show();
delay(1000);
// blau
LEDRing.fill(LEDRing.Color(0, 0, 255), 0, AnzahlLED);
LEDRing.show();
delay(1000);
// gelb
LEDRing.fill(LEDRing.Color(255, 255, 0), 0, AnzahlLED);
LEDRing.show();
delay(1000);
// pink
LEDRing.fill(LEDRing.Color(255, 20, 147), 0, AnzahlLED);
LEDRing.show();
delay(1000);
LEDRing.clear();
LEDRing.show();
delay(2000);
// Lauflicht
for (int i = 0; i < AnzahlLED; i++)
{
LEDRing.setPixelColor(i, LEDRing.Color(255, 0, 0));
LEDRing.show();
delay(500);
}
LEDRing.clear();
LEDRing.show();
delay(2000);
}
Letzte Aktualisierung: