Arduino-WS (6)
FastLED-Library
1. http://fastled.io/ Klick auf "Releases" im Menü herunterscrollen zu "Downloads" Source code (zip) Source code (tar.gz) 2. auspacken, ins arduino_sketch-Unter-Verzeichnis "libraries" 3. Verzeichnis umbenennnen in "FastLED" 4. Ggf. Arduino neustarten
C-Kenntnisse - Struct
typedef struct { uint8_t r; uint8_t g; uint8_t b; } my_RGB; my_RGB px; px.r=255; my_RGB pxs[3]; pxs[0].r=255;
Das erste Programm mit WS2812b LED-Streifen
#include <FastLED.h> const int LEDPin = 4; const int NPixels = 9; CRGB leds[NPixels]; int pos=0; void setup() { FastLED.addLeds<NEOPIXEL, LEDPin>(leds, NPixels); } void loop() { for (int i=0; i<NPixels; i++) { leds[i].setRGB(0,0,0); } //leds[pos].setRGB(32,16,0); leds[pos].r=32; leds[pos].g=16; FastLED.show(); pos++; if (pos >= NPixels) pos=0; delay(200); } /* Ungefähr (aus FastLEDpixeltypes.h) struct CRGB { union { struct { union { uint8_t r; uint8_t red; }; union { uint8_t g; uint8_t green; }; union { uint8_t b; uint8_t blue; }; }; uint8_t raw[3]; }; ... }; struct CRGB { uint8_t r; uint8_t g; uint8_t b; }; */
Experimental..temporär:
#include <FastLED.h> const int LEDPin = 4; const int NPixels = 18; CRGB leds[NPixels]; typedef struct { uint8_t r,g,b; int pos; } PUNKT; const int NPunkte = 6; PUNKT punkte[NPunkte]; int pos=0; void setup() { FastLED.addLeds<NEOPIXEL, LEDPin>(leds, NPixels+2); // +2 zur Sicherheit für Effekte for (int j=0; j<NPunkte; j++) punkte[j]={random(256),random(256),random(256), random(NPixels)}; } void loop() { for (int i=0; i<NPixels; i++) { leds[i].setRGB(0,0,0); } for (int j=0; j<NPunkte; j++) { leds[ punkte[j].pos ].setRGB(punkte[j].r, punkte[j].g, punkte[j].b); } /* typedef struct { uint8_t r,g,b; int pos; } PUNKT; */ /* //leds[pos].setRGB(32,16,0); //leds[pos].r=32; //leds[pos].g=16; for (int i=0; i<NPixels; i++) { leds[(i+pos)%NPixels].r= i* (int)255 /(NPixels-1); leds[(i+pos)%NPixels].g= (NPixels-i-1)* (int)255 /(NPixels-1); }*/ FastLED.show(); // Alternative zu untenstehendem: pos = (pos+1)%NPixels; pos++; if (pos >= NPixels-1) pos=0; delay(200); } /* Ungefähr (aus FastLEDpixeltypes.h) struct CRGB { union { struct { union { uint8_t r; uint8_t red; }; union { uint8_t g; uint8_t green; }; union { uint8_t b; uint8_t blue; }; }; uint8_t raw[3]; }; ... }; struct CRGB { uint8_t r; uint8_t g; uint8_t b; }; a[1] = {60,0,0}; */ }