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};
*/
}