Verstanden
#include "FastLED.h" //Make sure to install the FastLED library into your Arduino IDE
#define NUM_LEDS 60 // alle Streifen sind gleich lang, aber man muss beachten dass für Gezamtanzahl genug Memory ist
//alle sind mit Minus zu Netzteil und Arduino verbunden
#define NUM_STRIPS 5
// The data pin on the strip is connected to the Arduino pins
//Initialise the LED array
CRGB leds[NUM_STRIPS][NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, 4, GRB>(leds[0], NUM_LEDS);
FastLED.addLeds<WS2812B, 5, GRB>(leds[1], NUM_LEDS);
FastLED.addLeds<WS2812B, 6, GRB>(leds[2], NUM_LEDS);
FastLED.addLeds<WS2812B, 7, GRB>(leds[3], NUM_LEDS);
FastLED.addLeds<WS2812B, 8, GRB>(leds[4], NUM_LEDS);
}
void loop() {
byte Rand = random(5);
byte R = random(255);
byte G = random(255);
byte B = random(255);
fill_solid(leds[Rand], NUM_LEDS, CRGB( R, G, B));
FastLED.show();
delay(1000);
fill_solid(leds[Rand], NUM_LEDS, CRGB::Black);
FastLED.show();
}
Das hab ich mir auch gedacht, als ich den Eingangost gelesen habe.
Und das ist so schön einfach, weil hier sogar immer die gleiche Länge für jedes Objekt gegeben ist.
Da ist die Versorgung eher ein Problem
@karbonaterol1 Wenn Du die Stripes alle zusammen lässt und nacheinander verschaltest, kannst Du an jedem Anfang und Ende jeweils die 24V einspeisen und brauchst nur DOUT -> DIN verbinden. Der GND kommt dann mit der Versorgung.
Wieviele LED sind denn auf den 12m-Streifen? (dann kann man einen Sketch bauen, der immer am neuen Stripe anfängt zu zählen.)
Achtung, das sind WS2811 mit wahrscheinlich 6 LEDs pro Segment. Für
NUM_LEDS
braucht man die Anzahl der Segmente = Anzahl WS2811
Oh, darüber hab ich natürlich nicht nachgedacht. Wird das mit 4x12m (48m) in Reihe etwas zu viel wegen dem Spannungsfall des Signals? Den + und - der Streifen kann man ja parallel zum Netzteil schalten, das ist kein Problem. Aber kann der Arduino wirklich ein so langlebiges Signal ausgeben?
Die Menge der LEDs pro Streifen kann ich erst nachschauen wenn ich am Abend daheim bin, das wird bis ungefähr 18 Uhr dauern können. Aber vielen Dank für den Perspektivenwechsel
Ja.
Das ist recht einfach erklärt.
Für jede (RGB)LED gibt es einen Controller.
Dieser Controller übernimmt zwei Funktionen:
a) er frischt das Signal wieder auf - somit ist sichergestellt, das die Flanken immer steil genug sind
b) er zählt mit - (vereinfacht)
Nehmen wir an, Du beschreibst LED 3 mit einem Farbwert, dann liest der erste Controller "3 - rot" Er zieht sich selbst ab udn merkt, das es nicht 0 - rot ist, aöso gibt er an DOUT "2 - rot" aus.
Der nächste Controller merkt das er nicht gemeint ist, zieht sich ab und gibt aus: "1 - rot"
Der letzte Controller zieht sich ab und merkt, das er gemeint ist - und gibt die Farbe wieder.
Wie gesagt: Ich würde am Stripe jeweils am Anfang und am Ende einspeisen, bzw. in Deinem speziellen Fall Ende aktueller Stripe mit Anfang nächster Stripe verbinden und immer an jedem Anfang einspeisen.
Fast exakt ein Jahr her, habe ich 11 solche Ketten in Reihe verbunden, 55m, (dann zweite daneben). Trotz 12V, Spannungsabfall machte Farben am Ende deutlich anders, aber man sah es kaum von 55m Entfernung.
Du hast die Spannungsversorgung nur am Anfang eingespeist? Ok, 12 V macht es einfacher aber, wie Du schriebst, doch bemerkbar.
Da kommt es halt auf die Anwendung an, ob man mehrfach und auch hinten einspeisen muss.
Gruß Tommy
Okay, vielen Dank für die präzise Erklärung wie dieses Signal funktioniert. Das hat mir wirklich die Augen geöffnet. Das mit den Streifen ist etwas kompliziert weil es keine genauen Angaben gibt und ich ungerne LEDs zählen möchte. Laut den Infos die ich habe sind es entweder 150 oder 300 LEDs pro Streifen. Könnten wir es so machen, dass sich dieses Signal alle 30 oder 60 LEDs segmentiert? Das würde uns viel Arbeit mit dem Verlegen der Streifen sparen und eine größere Variation an Möglichkeiten bieten. Wie genau erstelle ich den Code dafür? Das ist wie gesagt mein erstes "Projekt" mit einem Arduino und ich bin noch in der Lernphase.
Nochmal:
【WS2811 Adressierbarer RGB LED Streifen】Adressierbare Gruppen von sechs LEDs. Ein WS2811 IC fahren sechs LEDs.
Du musst die Anzahl der LEDs durch 6 teilen!
Ja.
Du kannst auch einen testsketch schreiben und einen Pixel durchlaufen lassen.
Die Position des Pixels lässt Du Dir auf dem SerMon ausgeben und jedes Mal, wenn eine neue Figur beginnt, schaust auf den SerMon und kennst die Position.
Dazu muesstest Du aber die lib wechseln.
Mit der Fastled-lib geht Dir der Speicher aus.
Ach so, also kann ich nur 6 LEDs auf einmal ansteuern. Das ändert natürlich wieder einiges. Danke für die Info
Auf welche Lib muss ich dann wechseln?
Die neopixel braucht weniger Speicher.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.