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);    
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
}
 |