Offline
Newbie
Karma: 0
Posts: 28
|
 |
« on: January 28, 2013, 04:46:25 pm » |
Hi, im trying to use the MAP function to gradually fade in-between colors. When I use this code it does the first fade, but then JUMPS back and does it over, without executing the second fade.
Any advice very appreciated, THANKS
#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; j++) { 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); } }
|