Hallo an alle, ich verwende derzeit erstmalig die WS1812B RGBW Stripes auch SK6812 genannt.
Nun, nachdem die Bibliotheken von FastLED erst Mal noch keinen Support für das Ambylight hergeben und der Stripe auf meinem Monitor angebracht ist, möchte ich bis zur Verfügbarkeit einen eigenen Sketch erstellen, welche mir folgendes Bild bringen soll.
Verwendet wird der Arduino Nano und oben genannte Neopixel mit einer Bestückung von 180 Stck gesamt.
Gewünscht ist folgender Effekt:
es soll vom Anfang und vom Ende des Stripes ein Lauflicht von etwa 7-15 Leds bis zur Mitte synchron laufen. zunächst ist erst Mal ein Wasserfalleffekt geplant, also die LEDs laufen von den äusseren Punkten des Stripes zur Mitte und starten dann erneut aussen. Gewünscht ist eine Abstufung der Helligkeit der Äuseren 3 Pixel auf beiden Seiten der 7-15 LEDS. Beim aufeinandertreffen der Pixel ist dann die Helligkeit bis alle Lichter ineinader gelaufen sind und mit den abgestuften äußeren erlöschen in der selben Helligkeit (Symetrisch eben).
Als Optio hätte ich gerne, dass evtl. mehrere Lauflichter in einer Phase erscheinen, quasi nach dem passieren der 20sten bzw. in der anderen Richtung der 160sten, soll dann bei = und 180 der neue Pixelstrang starten.
So nun noch eines obendrauf, wobei das Programmiertechnisch wohl schon früher dran kommt.
Alle Pixel, die in der zwischenzeit nun nicht an wären, sollen in einem langsamen Takt pulsieren, jedoch die Lauflicht LEDs von der Helligkeit nicht überblenden, jedoch auch nie ganz aus gehen. Gehen wir mal von einem Wert der Lauflichter von 100 aus, so sollte der Puls zwischen 20 und 75 liegen. Die Farbe ist das einfachste, es soll ein schönes Blau sein als Beispiel kann man sich den Warpkern aus dem Raumschiff Enterprise anlehnen. Wobei das ja dann nur noch simple spielereien sind...
Was den Code angeht ... ich habe sogut wie gar nichts ... ich würde als Ausgangsposition mit dem Strandtes RGBW von Adafruit arbeiten, da die Libary die Stripes wunderbar unterstützt ... lediglich was das Programmieren angeht bin ich echt am Arsch ... ich habe schon viel im Netz gesucht aber so eine richtige übersicht an Befehlen konnte ich nicht finden um mein Projekt um zu setzen und wenn nur auf Englisch, was grundsätzlich kein Problem ist, jedoch an manchen Punkten für das Sachverständnis doch recht schwierig ist ... Interpretationsfreiheit eben =)
Nun gut dann hoffe ich mal, dass Ihr mir weiter helfen könnt und wollt ... Vielen Dank schon mal dafür !!
Hier besagter RGBW Strandtestsketch :
[*code]
// NeoPixel test program showing use of the WHITE channel for RGBW
// pixels only (won't look correct on regular RGB NeoPixel strips).
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN 6
// How many NeoPixels are attached to the Arduino?
#define LED_COUNT 60
// NeoPixel brightness, 0 (min) to 255 (max)
#define BRIGHTNESS 50
// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
void setup() {
// These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
// Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
// END of Trinket-specific code.
strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
strip.show(); // Turn OFF all pixels ASAP
strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)
}
void loop() {
// Fill along the length of the strip in various colors...
colorWipe(strip.Color(255, 0, 0) , 50); // Red
colorWipe(strip.Color( 0, 255, 0) , 50); // Green
colorWipe(strip.Color( 0, 0, 255) , 50); // Blue
colorWipe(strip.Color( 0, 0, 0, 255), 50); // True white (not RGB white)
whiteOverRainbow(75, 5);
pulseWhite(5);
Leider nur ein Teil da keine Zeichen mehr =(