Hallo zusammen, ich will für ein größeres Projekt viele WS2812b über einen Arduino Mega in Rot, Gelb und Orange zum Flackern bringen. Da es eben sehr viele sind und das Projekt ziemlich groß ist, wollte ich einen PCA9685 an den Arduino anhängen und an die Pins des PCA je 5 WS2812b anschließen. Das könnte ja theoretisch nach bedarf jederzeit mit einem oder mehreren weiteren PCA ergänzt werden. Ich habe dafür bereits einen Sketch geschrieben. Allerdings bin ich mir sicher, dass er nicht korrekt ist. Könnt ihr mir helfen, den Sketch zu berichtigen? Ein ganz anderes Problem ist dann auch noch, dass ich nicht sicher bin, ob WS2812b über einen PCA vom Arduino überhaupt angesteuert werden können. Ich habe dazu nichts brauchbares finden können. Weiß jemand dazu etwas?
Der Sketch:
#include <Wire.h> #include <Adafruit_PWMServoDriver.h> #include <Adafruit_NeoPixel.h>
#define LED_COUNT 1
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); // Erstellen Sie eine Instanz des PCA9685-Chips Adafruit_NeoPixel strip(LED_COUNT, 0, NEO_GRB + NEO_KHZ800);
void setup() { Serial.begin(9600); // Starten Sie die serielle Kommunikation pwm.begin(); // Starten Sie den PCA9685 pwm.setPWMFreq(800); // Legen Sie die PWM-Frequenz auf 800 Hz fest
strip.begin(); }
void loop() { strip.setPixelColor(0, strip.Color(239, 58, 51)); // Setze die Farbe des ersten Pixels auf Rot strip.show(); // Aktualisiere die LED delay(random(50, 500)); // Warte für eine zufällige Zeit zwischen 50 und 500 Millisekunden
strip.setPixelColor(0, strip.Color(245, 153, 52)); // Setze die Farbe des ersten Pixels auf Grün strip.show(); // Aktualisiere die LED delay(random(50, 500)); // Warte für eine zufällige Zeit zwischen 50 und 500 Millisekunden
strip.setPixelColor(0, strip.Color(245, 216, 52)); // Setze die Farbe des ersten Pixels auf Blau strip.show(); // Aktualisiere die LED delay(random(50, 500)); // Warte für eine zufällige Zeit zwischen 50 und 500 Millisekunden }