Bei­spiel­pro­gramm NeoPixel-Ring

Lese­zeit: 3 Minu­ten

Der Neo­Pi­xel-Ring besteht aus meh­re­ren mit­ein­an­der ver­bun­de­nen RGB-LEDs. Jede besitzt einen eige­nen Con­trol­ler und kann ein­zeln ange­steu­ert wer­den. Er benö­tigt nur einen digi­ta­len Ein­gang. Der Neo­Pi­xel-Ring ist in ver­schie­de­nen Bau­for­men zwi­schen 12 und 60 LEDs erhältlich.

Die Pro­gram­mie­rung unter­schei­det sich nicht.

RGB ist eine Mischung der Far­ben Rot, Grün und Blau. Jede Far­be kann von 0 bis 255 gesetzt wer­den, die Wer­te wer­den durch Kom­ma­ta getrennt.

 🔗RGB-Codes (exter­ner Link abge­ru­fen am 18.12.23)

Bei­spie­le:

Funk­tio­nen der Biblio­thek Adafruit_NeoPixel (Aus­wahl)

Schlüs­sel­wortAkti­on
begin()LED-Ring star­ten
num­Pi­xels()Anzahl der LEDs lesen
show()LED-Ring ein­schal­ten
clear()LED-Ring aus­schal­ten
setPixelColor(LED-Nummer, rot, grün, blau)Far­be einer LED setzen
LED-Nummer
rot -> 0 - 255
grün -> 0 - 255
blau -> 0 - 255
set­Bright­ness()Hel­lig­keit set­zen (0−255)
Color(rot, grün, blau)Far­be für alle LEDs setzen
rot -> 0 - 255
grün -> 0 - 255
blau -> 0 - 255

Bei­spiel rot:
int Far­be = LEDStreifen.Color(255, 0, 0);

Bei­spiel grün:
int Far­be = LEDStreifen.Color(0, 255, 0);

Bei­spiel blau:
int Far­be = LEDStreifen.Color(0, 0, 255);
fill(Farbe, Start, Ende)Far­be für die mit Start und Ende bezeich­ne­ten Pixel setzen

Der Schalt­plan:

Ach­te auf die Polung. Sie kann bei den Neo­Pi­xel-Rin­gen ver­schie­de­ner Her­stel­ler unter­schied­lich sein.

Jede LED kann ein­zeln ange­spro­chen werden.

Die Zäh­lung beginnt mit 0!

So sieht es aus:

Benö­tig­te 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: 18. Dez 2023 @ 11:15