57 lines
1.6 KiB
C++
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);
|
|
}
|
|
}
|
|
|
|
}
|