Hallo
Ich versuche mit dem ESP32 WS2812b LEDs anzusteuern. Ich habe mich schon
etwas informiert und gesehen das es dabei öfters Probleme gibt. Jedoch
habe ich keine Lösung für mein Problem gefunden.
Problem: Die LEDs lassen sich grundsätzlich mit dem ESP32 ansteuern
jedoch will die erste LED in der Reihe nicht so richtig. Ich habe gesamt
20LEDs angeschlossen.
Wenn ich eine FOR programmiere und alle nacheinander einschalte dann
leuchtet die erste LED immer in einer anderen Farbe. Ich habe es auch
schon mit mehreren LEDs getestet (Da ich mehrere Segmente habe) (Die
beiden im Video sind die beiden der neuesten Generation (Reihenfolge
egal). Ich habe es allerdings auch schon mit den anderen LEDs getestet.
Ich verwende die FastLED lib da ich mit der Adafruit kein Glück gehabt
habe.
Code Video:
1 | #include <FastLED.h>
|
2 |
|
3 | #define NUM_LEDS 20
|
4 |
|
5 | #define DATA_PIN 2
|
6 | CRGB leds[NUM_LEDS];
|
7 |
|
8 | void setup()
|
9 | {
|
10 | FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
|
11 | }
|
12 |
|
13 | void loop()
|
14 | {
|
15 | for(int i = 0; i <20; i++)
|
16 | {
|
17 | leds[i] = CRGB::Red;
|
18 | FastLED.show();
|
19 | delay(50);
|
20 | }
|
21 | delay(50);
|
22 | for(int i = 0; i <20; i++)
|
23 | {
|
24 | leds[i] = CRGB::Black;
|
25 | FastLED.show();
|
26 | delay(50);
|
27 | }
|
28 | }
|
Wenn ich zum testen mal nur die erste [0] und die vorletzte [18]
anschalte dann gibt sich ein komisches verhalten. Wenn ich mache:
leds[0] = CRGB::Red;
leds[18] = CRGB::Red;
dann leuchtet wie im angehängten Bild die Erste in einer anderen Farbe
und die Vorletzte. Wenn ich mache:
leds[0] = CRGB::Blue;
leds[18] = CRGB::Blue;
Dann leuchtet die zweite und die letzte LED (beide Rot).
Das die Farben nicht mit den Codefarben übereinstimmen ist mir bewusst
und es ist für mich kein Problem (es ist einfach die Reihenfolge von RGB
anders)
Mit anderen Farben ergibt sich zum Teil ein noch komischeres Verhalten.
leds[0] = CRGB( 50, 100, 150);
leds[18] = CRGB( 50, 100, 150);
Leuchten dann gleich 4LEds in verschiedenen Farben. (Siehe Bild)
Code Bild:
1 | #include <FastLED.h>
|
2 | #define NUM_LEDS 20
|
3 |
|
4 | #define DATA_PIN 2
|
5 | CRGB leds[NUM_LEDS];
|
6 |
|
7 | void setup()
|
8 | {
|
9 | FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
|
10 | leds[0] = CRGB::Red;
|
11 | leds[18] = CRGB::Red;
|
12 | FastLED.show();
|
13 | }
|
14 |
|
15 | void loop()
|
16 | {
|
17 |
|
18 | }
|
Hat jemand eventuell eine Idee?