leOS2 vanno in conflitto con qualcosa, i led si accendono a caso.
leOS1 funzionano come millis()
Credo che non si possa fare... mentre scrivevo mi è venuta l'idea:
basta togliere previousMillis0 = millis();
quindi: le strisce partono al tempostriscia previsto, e poi proseguono per i fatti suoi!!
Ora vedo di integrare il tutto sul programma più complesso.
Ciao e grazie
#include <FastLED.h>
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
#define BRIGHTNESS 84
#define NUM_LEDS 20
#define NUM_STRIPS 2
CRGB leds[NUM_STRIPS][NUM_LEDS];
#define UPDATES_PER_SECOND 100
//parte millis
unsigned long previousMillis0= 0;
unsigned long previousMillis1= 0;
const long tempostriscia0 = 3000;
const long tempostriscia1 = 8000;
CRGBPalette16 currentPalette;
TBlendType currentBlending;
extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;
uint8_t colorIndex = 0;
void setup() {
Serial.begin(19200);
delay( 1000 ); // power-up safety delay
//7 strisce nei pin da 4 a 10
FastLED.addLeds<LED_TYPE, 4, COLOR_ORDER>(leds[0], NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.addLeds<LED_TYPE, 5, COLOR_ORDER>(leds[1], NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
currentPalette = RainbowColors_p;
currentBlending = LINEARBLEND;
}
void loop()
{
singola_striscia0();
singola_striscia1();
}
void singola_striscia0(){
Serial.println(millis());
if (millis() - previousMillis0 > tempostriscia0) {
//previousMillis0 = millis();
for( int i = 0; i < NUM_LEDS; i++) {
leds[0][i] = ColorFromPalette(currentPalette, colorIndex, BRIGHTNESS, currentBlending); //striscia0
colorIndex += 1;//quanti colori salta da un loop all'altro, con 1 i colori sono contigui rosso-arancione-giallo-verde et.
FastLED.show();
FastLED.delay(1000/ UPDATES_PER_SECOND);
}
}
}
void singola_striscia1(){
Serial.println(millis());
if (millis() - previousMillis1 > tempostriscia1) {
// previousMillis1 = millis();
for( int i = 0; i < NUM_LEDS; i++) {
leds[1][i] = ColorFromPalette(currentPalette, colorIndex, BRIGHTNESS, currentBlending); //striscia0
colorIndex += 1;//quanti colori salta da un loop all'altro, con 1 i colori sono contigui rosso-arancione-giallo-verde et.
FastLED.show();
FastLED.delay(1000 / UPDATES_PER_SECOND);
}
}
}