Grumpy, here is when they start to flicker some, with 14 LEDs:
#include "Tlc5940.h"
#include "tlc_fades.h"
TLC_CHANNEL_TYPE channel;
void setup()
{
Tlc.init();
}
void loop()
{
if (tlc_fadeBufferSize < TLC_FADE_BUFFER_LENGTH - 2) {
if (!tlc_isFading(0)){
uint16_t duration = 4000 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(0, 28, maxValue, startMillis, endMillis );
tlc_addFade(0, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(1)){
uint16_t duration = 4200 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(1, 28, maxValue, startMillis, endMillis );
tlc_addFade(1, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(2)){
uint16_t duration = 4400 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(2, 28, maxValue, startMillis, endMillis );
tlc_addFade(2, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(3)){
uint16_t duration = 4600 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(3, 28, maxValue, startMillis, endMillis );
tlc_addFade(3, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(4)){
uint16_t duration = 4800 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(4, 28, maxValue, startMillis, endMillis );
tlc_addFade(4, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(5)){
uint16_t duration = 5000 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(5, 28, maxValue, startMillis, endMillis );
tlc_addFade(5, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(6)){
uint16_t duration = 3000 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(6, 28, maxValue, startMillis, endMillis );
tlc_addFade(6, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(7)){
uint16_t duration = 3200 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(7, 28, maxValue, startMillis, endMillis );
tlc_addFade(7, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(8)){
uint16_t duration = 3400 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(8, 28, maxValue, startMillis, endMillis );
tlc_addFade(8, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(9)){
uint16_t duration = 3600 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(9, 28, maxValue, startMillis, endMillis );
tlc_addFade(9, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(10)){
uint16_t duration = 3800 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(10, 28, maxValue, startMillis, endMillis );
tlc_addFade(10, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(11)){
uint16_t duration = 5200 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(11, 28, maxValue, startMillis, endMillis );
tlc_addFade(11, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(12)){
uint16_t duration = 3350 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(12, 28, maxValue, startMillis, endMillis );
tlc_addFade(12, maxValue, 28, endMillis, endMillis + duration);}
if (!tlc_isFading(13)){
uint16_t duration = 3750 - (analogRead(0) * 2);
int maxValue = 400;
uint32_t startMillis = millis();
uint32_t endMillis = startMillis + duration;
tlc_addFade(13, 28, maxValue, startMillis, endMillis );
tlc_addFade(13, maxValue, 28, endMillis, endMillis + duration);}
if (channel++ == NUM_TLCS * 16) {
channel = 0;
}
}
tlc_updateFades();
}
Hippynerd:
Yeah, but quick and easy doesn´t seem to be the right words in this situation =(