I am currently trying to fade from blue to red and then red back to blue, etc.........
When I upload the code, it does the first fade then jumps back to blue !!
Ive tried changing the int and various timing differences. Here is the sample code, any help appreciated !
- Code: Select all
#include "LPD8806.h"
#include "SPI.h"
// Example to control LPD8806-based RGB LED Modules in a strip
/*****************************************************************************/
// Number of RGB LEDs in strand:
int nLEDs = 4;
// Chose 2 pins for output; can be any valid output pins:
int dataPin = 11;
int clockPin = 13;
// Magenta:
#define COLOR1_R 0
#define COLOR1_G 0
#define COLOR1_B 255
// Blue:
#define COLOR2_R 255
#define COLOR2_G 0
#define COLOR2_B 0
// First parameter is the number of LEDs in the strand. The LED strips
// are 32 LEDs per meter but you can extend or cut the strip. Next two
// parameters are SPI data and clock pins:
LPD8806 strip = LPD8806(4, dataPin, clockPin);
// You can optionally use hardware SPI for faster writes, just leave out
// the data and clock pin parameters. But this does limit use to very
// specific pins on the Arduino. For "classic" Arduinos (Uno, Duemilanove,
// etc.), data = pin 11, clock = pin 13. For Arduino Mega, data = pin 51,
// clock = pin 52. For 32u4 Breakout Board+ and Teensy, data = pin B2,
// clock = pin B1. For Leonardo, this can ONLY be done on the ICSP pins.
//LPD8806 strip = LPD8806(nLEDs);
void setup() {
// Start up the LED strip
strip.begin();
// Update the strip, to start they are all 'off'
strip.show();
}
void loop() {
int r,g,b;
uint16_t i, j, k;
for (j=0; j < 140; j++) {
r = map(j, 0, 140, COLOR1_R, COLOR2_R);
g = map(j, 0, 140, COLOR1_G, COLOR2_G);
b = map(j, 0, 140, COLOR1_B, COLOR2_B);
for (i=0; i < 4; i++) {
strip.setPixelColor(i,(strip.Color(r,g,b) ));
}
strip.show(); // write all the pixels out
delay(50);
}
for (k=0; k < 140; k++) {
r = map(k, 0, 140, COLOR2_R, COLOR1_R);
g = map(k, 0, 140, COLOR2_G, COLOR1_G);
b = map(k, 0, 140, COLOR2_B, COLOR1_B);
for (i=0; i < 4; i++) {
strip.setPixelColor(i,(strip.Color(r,g,b) ));
}
strip.show(); // write all the pixels out
delay(100);
}
}

