WS2812-ledpixels begrijpen en aansturen
FunduinoLaatst bijgewerkt op
Einzelne Pixel einer WS2812-Matrix, eines Streifens oder Rings ansteuern
Was LED-Pixel sind
Aufbau: drei Kabel genügen
Bibliothek installieren
Aufgabe 1: Einen einzelnen Pixel leuchten lassen
Aufgabe 1: Einen einzelnen Pixel leuchten lassen
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 9 // Datenleitung an Pin 9
// 64 = Anzahl der Pixel des angeschlossenen Moduls (hier eine 8x8-Matrix)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(64, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
strip.show(); // Alle Pixel zu Beginn ausschalten
}
void loop()
{
// Der Pixel Nr. 23 wird mit der Farbe Rot angesteuert. Der erste Pixel trägt die
// Nummer 0, der letzte der 64 Pixel die Nummer 63. Die Farbe änderst du über die
// drei Zahlen hinter strip.Color: sie stehen für Rot, Grün und Blau. Je größer die
// Zahl zwischen 0 und 255, desto heller leuchtet die jeweilige Farbe. Aus der
// Kombination von zwei oder drei Farben entstehen sehr viele weitere Farbtöne.
strip.setPixelColor(22, strip.Color(255, 0, 0));
// Dieser Befehl schaltet die zuvor gesetzten Pixel ein, hier nur die Nummer 23.
strip.show();
}Aufgabe 2: Zwei Pixel gleichzeitig in unterschiedlichen Farben
Aufgabe 2: Zwei Pixel gleichzeitig in unterschiedlichen Farben
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 9 // Datenleitung an Pin 9
Adafruit_NeoPixel strip = Adafruit_NeoPixel(64, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
strip.show(); // Alle Pixel zu Beginn ausschalten
}
void loop()
{
// Der Pixel Nr. 11 wird mit der Farbe Grün angesteuert.
strip.setPixelColor(10, strip.Color(0, 255, 0));
// Der Pixel Nr. 21 wird mit der Farbe Blau angesteuert.
strip.setPixelColor(20, strip.Color(0, 0, 255));
// Dieser Befehl schaltet die zuvor gesetzten Pixel ein, hier die Nummern 11 und 21.
strip.show();
}Aufgabe 3: Drei Pixel nacheinander leuchten lassen
Aufgabe 3: Drei Pixel nacheinander leuchten lassen
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 9 // Datenleitung an Pin 9
Adafruit_NeoPixel strip = Adafruit_NeoPixel(64, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
strip.show(); // Alle Pixel zu Beginn ausschalten
}
void loop()
{
// Pixel 11 ein- und wieder ausschalten
strip.setPixelColor(10, strip.Color(0, 255, 0)); // Pixel Nr. 11 in Grün
strip.show(); // Pixel Nr. 11 einschalten
delay(1000); // Pixel Nr. 11 bleibt eine Sekunde an
strip.setPixelColor(10, strip.Color(0, 0, 0)); // keine Farbe: (0, 0, 0)
strip.show(); // Pixel Nr. 11 ausschalten
// Pixel 12 ein- und wieder ausschalten
strip.setPixelColor(11, strip.Color(0, 0, 255)); // Pixel Nr. 12 in Blau
strip.show(); // Pixel Nr. 12 einschalten
delay(1000); // Pixel Nr. 12 bleibt eine Sekunde an
strip.setPixelColor(11, strip.Color(0, 0, 0)); // keine Farbe: (0, 0, 0)
strip.show(); // Pixel Nr. 12 ausschalten
// Pixel 13 ein- und wieder ausschalten
strip.setPixelColor(12, strip.Color(255, 0, 0)); // Pixel Nr. 13 in Rot
strip.show(); // Pixel Nr. 13 einschalten
delay(1000); // Pixel Nr. 13 bleibt eine Sekunde an
strip.setPixelColor(12, strip.Color(0, 0, 0)); // keine Farbe: (0, 0, 0)
strip.show(); // Pixel Nr. 13 ausschalten
}Handleiding beoordelen