So I picked up the Spectrum Shield to see about doing an EQ visualizer with LDP8806 LEDs (working to replace them with Neopixels too). Problem being it seems the test libraries available for the shield from Bliptronics appears to be for older Arduino software, and for the wrong LEDs. I’ve managed to get the code to compile from a couple sources, but don’t entirely understand how to make them work with newer LEDs. If anyone knows of some code for this chip that will compile correctly, and give me an EQ, or at least get me in the right direction it’d be appreciated.
If you want to go to NeoPixels then you need to install the NeoPixel library from here:
https://github.com/adafruit/Adafruit_NeoPixel
and replace every instance where the Bliptronics library is used with the equivalent functions from the Adafruit library … assuming they exist. If they don’t exist, you’ll have to write your own. Other mods would include changing the number of pixels and pin assignments due to any interface differences.
If you want to use the LDP8806 LEDs then the same advice follows but that library is here:
https://github.com/adafruit/LPD8806
Here are the lines of code that I could easily find that would be affected.
LEDPixels LP;
//This holds the 15 bit RGB values for each LED.
//You'll need one for each LED, we're using 25 LEDs here.
//Note you've only got limited memory, so you can only control
//Several hundred LEDs on a normal arduino. Double that on a Duemilanove.
int MyDisplay[25];
void setup()
...
//Initialize the LEDPixels library.
// refresh delay, address of data, number of LEDs, clock pin, data pin.
LP.initialize(25, &MyDisplay[0],25, 12, 11 );
// Turn all LEDs off.
LP.setRange(0,24,LP.color(0,0,0));
LP.show(); //Write out display to LEDs
void showSpectrum()
...
for(BarSize=1;BarSize <=5; BarSize++)
{
if( works > BarSize) LP.setLEDFast( LP.Translate(Band,BarSize-1),BarSize*6,31-(BarSize*5),0);
else if ( works == BarSize) LP.setLEDFast( LP.Translate(Band,BarSize-1),BarSize*6,31-(BarSize*5),0); //Was remainder
else LP.setLEDFast( LP.Translate(Band,BarSize-1),5,0,5);
}
...
LP.show();