57 lines
1.6 KiB
C++

/*****************************************************************************
*
* P0211 LED fading
* This is for music symbol with fading rgb backlight
* put this to a TNY85 with 8 MHz internal oscillator
* Color changes slightly every 100ms, so one cycle is about 3 minutes
*
****************************************************************************
*
* 2025-10-05 xsider created for C-Hack
*
****************************************************************************/
#include <Adafruit_NeoPixel.h>
#define NUMPIXELS 45
#define PIN 2
#define DELAY 100
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop()
{
uint8_t red;
uint8_t green;
uint8_t blue;
/* this are the start values for every interation loop */
uint8_t settingstableRed[] = { 0xFF,0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, };
uint8_t settingstableGreen[] = { 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff } ;
uint8_t settingstableBlue[] = { 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff };
/* which direction should the color fade to */
int8_t dirRed[] = {0,-1,0,0,1,0,0};
int8_t dirGreen[] = {1,0,0,-1,0,1,-1};
int8_t dirBlue[] = {0,0,1,0,0,0,-1};
for ( int k=0; k<7;k++) {
for (int i=0;i<=255;i++) {
red = settingstableRed[k] + dirRed[k]*i ;
green = settingstableGreen[k] + dirGreen[k]*i;
blue = settingstableBlue[k] + dirBlue[k]*i;
for (int l=0;l<NUMPIXELS;l++) {
pixels.setPixelColor( l, pixels.Color(red,green,blue) );
}
pixels.show();
delay(DELAY);
}
}
}