Hallo,
ich bin eben dabei einen 60er WS2811B LED-Stripe mit WS2811 Controller mit meinem Aquino Nano zum laufen zu bringen. Amazon Link zum LED-Stripe: https://www.amazon.de/gp/product/B00GXDBLP6/ref=ox_sc_sfl_title_1?ie=UTF8&psc=1&smid=A1DMSD13LMYETC
Strom per USB und der LED-Streifen hängt direkt am Nano, Data mit 400 Ohm am Stripe. Wenn ich den Testcode "RGBWstrandtest" aus der Adafruit Neopixel library ausführe klappt der Testcode wunderbar.
Für mein erdachtes Projekt wird aber die FastLED library angesteuert, daher wollte ich auch hier ein wenig Testcode ausführen. Und hier hänge ich fest:
#include "FastLED.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// RGB Calibration code
//
// Use this sketch to determine what the RGB ordering for your chipset should be. Steps for setting up to use:
// * Uncomment the line in setup that corresponds to the LED chipset that you are using. (Note that they
// all explicitly specify the RGB order as RGB)
// * Define DATA_PIN to the pin that data is connected to.
// * (Optional) if using software SPI for chipsets that are SPI based, define CLOCK_PIN to the clock pin
// * Compile/upload/run the sketch
// You should see six leds on. If the RGB ordering is correct, you should see 1 red led, 2 green
// leds, and 3 blue leds. If you see different colors, the count of each color tells you what the
// position for that color in the rgb orering should be. So, for example, if you see 1 Blue, and 2
// Red, and 3 Green leds then the rgb ordering should be BRG (Blue, Red, Green).
// You can then test this ordering by setting the RGB ordering in the addLeds line below to the new ordering
// and it should come out correctly, 1 red, 2 green, and 3 blue.
//
//////////////////////////////////////////////////
#define NUM_LEDS 6
// Data pin that led data will be written out over
#define DATA_PIN A0
// Clock pin only needed for SPI based chipsets when not using hardware SPI
//#define CLOCK_PIN 8
CRGB leds[NUM_LEDS];
void setup() {
// sanity check delay - allows reprogramming if accidently blowing power w/leds
delay(2000);
// Uncomment one of the following lines for your leds arrangement.
// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
// FastLED.setBrightness(CRGB(255,255,255));
// FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
//FastLED.addLeds<LPD8806, 9, 10, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
}
void loop() {
leds[0] = CRGB(255,0,0);
leds[1] = CRGB(0,255,0);
leds[2] = CRGB(0,255,0);
leds[3] = CRGB(0,0,255);
leds[4] = CRGB(0,0,255);
leds[5] = CRGB(0,0,255);
leds[random8()%NUM_LEDS] = CRGB(0,0,0);
// leds[10] = CRGB(0,0,0);
FastLED.show();
// delay(1000);
FastLED.showColor(CRGB::Black);
}
Eigentlich müssten doch nun die ersten 6 LED's in den Farben Rot, Grün und Blau zu 1, 2 und 3 LED's leuchten. Tatsächlich leuchten die ersten 6 aber Weiß, während die LEDs dahinter (also bis 60) abwechselnd aus, Grün, Rot, Blau leuchten.
Was mache ich denn falsch? Könnte es auch sein, dass ich noch einen speziellen Controller benötigen würde um den LED-Streifen mit FastLED zu steuern?
Ich bin für jeden noch so kleinen Hinweis dankbar