#include "Arduino.h"
#include <FastLED.h>
#define LED_PIN 50
#define NUM_LEDS 650
#define Blinker NUM_LEDS/5
CRGB leds[NUM_LEDS];
void setup()
{
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.clear();
}
void loop()
{
// TwinBlink(); //togliere gli slash dove serve, una subroutine alla volta
// LeftBlink(); //togliere gli slash dove serve, una subroutine alla volta
RightBlink(); //togliere gli slash dove serve, una subroutine alla volta
}
void TwinBlink()
{
for (int i = Blinker; i >= 1; i = i - 5)
{
leds[i] = CRGB(255, 25, 0);
FastLED.show();
delay (10);
}
for (int x = (NUM_LEDS - Blinker); x < NUM_LEDS; x = x + 5) //
{
leds[x] = CRGB(255, 25, 0);
FastLED.show();
delay (10);
}
for (int j = Blinker; j >= 1; j = j - 5)
{
leds[j] = CRGB(0, 0, 0);
FastLED.show();
delay (10);
}
for (int y = (NUM_LEDS - Blinker); y < NUM_LEDS; y = y + 5)
{
leds[y] = CRGB(0, 0, 0);
FastLED.show();
delay (10);
}
}
void LeftBlink()
{
for (int i = Blinker; i >= 1; i = i - 5)
{
leds[i] = CRGB(255, 25, 0);
FastLED.show();
delay (10);
}
for (int j = Blinker; j >= 1; j = j - 5)
{
leds[j] = CRGB(0, 0, 0);
FastLED.show();
delay (10);
}
}
void RightBlink()
{
for (int i = (NUM_LEDS - Blinker); i < NUM_LEDS; i = i + 5) //
{
leds[i] = CRGB(255, 25, 0);
FastLED.show();
delay (10);
}
for (int j = (NUM_LEDS - Blinker); j < NUM_LEDS; j = j + 5)
{
leds[j] = CRGB(0, 0, 0);
FastLED.show();
delay (10);
}
}
Buonasera a tutti, ho ancora bisogno di qualche consiglio.
Quando chiedo aiuto è perchè, nonostante abbia già provato, sono fermo e non trovo spunti per uscirne.
Come potete vedere, ci sono tre subroutine, praticamente sono indicatori di direzione che come effetto fanno accensione e spegnimento shiftato. E' anche chiamato effetto wipe da qualcuno. Per quanto riguarda destra e sinistra ok, invece l emergenza non risco a farla proprio andare sincrona tra i due.
recentemente standardoil mi ha dato un "pussone" e poi sono riuscito ad andare avanti. Adesso mi sà che è ora di un altro. Grazie in anticipo a chi mi dedica un po' del suo tempo.
No! Il primo e il terzo for prima impostano leds[] da blinker a 1 con dei valori e un istante dopo con altri. Sono dei movimenti velocissimi?
...Ma sono forse gli effetti delle frecce scorrevoli di alcune autovetture?
Forse ho capito.
Devi fare prima Blinker e NUMLEDS-Blinker per accendere, poi di nuovo per spegnere con 0,0,0. Però dal telefonino ci sto diventando matto...
Tranquillo, non impazzire per nulla. Quando hai tempo e sei più tranquillo, senza impegno, dagli uno sguardo. Io da domani sono in viaggio per rientrare in Italia.
Ti ringrazio molto per la tua disponibiltà. Comunque è come dici, si accende destra progressivamente e si spegne progressivamente. In contemporanea, ma nel senso inverso, considerando che è una striscia unica, anche la sinistra.
cioè....... la destra parte decrementando, accensione e decrementa anche per spegnere.La sinistra aumenta per accendere e anche per spegnere.
beh.... 50 volte non è definito o mi sfugge qualcosa?
ancora una domanda, ma se il codice legge due for, e li visualizza, non è che mi accende prima una e poi l altra?
dico questo perchè, tra le varie prove che ho fatto, non sono mai riuscito a farli accendere e spegnere sincroni destra e sinistra.
Mi pare che cosi' accenda e spenga la prima e poi incominci la seconda. Stesso ciclo di accensione e spegnimento della seconda per poi ripartire con la prima.
Comunque proverò piu' tardi. dopo le 18.