Die LED-Matrix besteht aus 64 RGB-LEDs, die alle einzeln über eine einzige Datenleitung programmiert werden können. Da die Matrix relativ viel Strom benötigt, schließen wir sie an eine externe Spannungsquelle an:
Für die Ansteuerung der Matrix benötigen wir die Adafruit_Neopixel Bibliothek, die wir wie üblich in der Arduino-IDE installieren.
Programmiere folgenden Code:
#include <Adafruit_NeoPixel.h>
// Pin für die WS2812 LEDs
#define DATA_PIN 6
// Anzahl der LEDs in der Matrix
#define NUM_LEDS 64
// Erstellen eines NeoPixel-Objekts
Adafruit_NeoPixel matrix = Adafruit_NeoPixel(NUM_LEDS, DATA_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
matrix.begin(); // Initialisieren der NeoPixel-Matrix
matrix.show(); // Alle LEDs ausschalten
Serial.begin(9600); // Serielle Kommunikation starten
randomSeed(analogRead(0)); // Zufallsgenerator initialisieren
}
void loop() {
for (int i = 0; i < NUM_LEDS; i++) {
// Zufällig RGB-Farbe erzeugen
int red = random(0, 256);
int green = random(0, 256);
int blue = random(0, 256);
matrix.setPixelColor(i, matrix.Color(red, green, blue)); // LED einschalten mit zufälliger Farbe
}
matrix.show(); // Aktualisieren der LEDs
delay(500); // Kurze Pause
}
Bindet die Neopixel-Bibliothek von Adafruit ein. Die WS2812-LEDs werden auch als Neopixel bezeichnet.
Erzeugt das Objekt matrix, mit dem die LED-Matrix angesprochen werden kann.
Die Parameter haben folgende Bedeutung:
Mit diesem Befehl wird der Zufallsgenerator auf einen zufälligen Wert gesetzt. Hierzu verwendet man den Wert zwischen 0 und 1023 der gerade zufällig an Pin 0 anliegt.
Setzt den Rot-Wert der Farbe auf eine Zufallszahl zwischen 0 und 255. Die obere Grenze wird 256 wird generell nicht erreicht.
Setzt die Farbe des Pixels mit der Nr. i auf den Farbwert, der in matrix.Color(r,g,b) definiert wird.
Mit diesem Befehl werden die neuen Farben auf den LEDs angezeigt.