Fablab ado > arduino et ruban Led - déplacement A/R aller-retour

par Antoine

Exercice du jour :

créer un code avec le même montage que la semaine dernière permettant a une bande rouge de faire un aller retour.

nous souhaitons une bande de 5 led :

ruban_led_sensAR
#include <FastLED.h>
#define LED_PIN     11
#define NUM_LEDS    144
#define BRIGHTNESS  30
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];

int ii;
int delai=10;
int sens=1;

void setup()
 {
 Serial.begin(9600);
 delay( 3000 ); // power-up safety delay
 FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
 FastLED.setBrightness(  BRIGHTNESS );
 FastLED.addLeds<WS2812B,LED_PIN,RGB>(leds,NUM_LEDS);
 }

void DeplacementPoint_AR(int taille)
{
    leds[ii] = CRGB::Red;
    if((sens==1)&&(ii>=taille)) //si sens positif et index >=taille (pour éviter d'ecrire dans le tableau leds[] à un index négatif)
       {
       leds[ii-taille] = CRGB::Black;
       }
    else if ((sens==-1)&&(ii<NUM_LEDS-taille)) //si sens négatif et index <NUM_LEDS-taille (pour éviter d'ecrire dans le tableau leds[] à un index supérieur à NUM_LEDS-1)
       {
       leds[ii+taille] = CRGB::Black;
       }    
    FastLED.show();
    delay(delai);
    ii=ii+sens;
    if ((sens==1)&&(ii==NUM_LEDS)||(sens==-1)&&(ii==0)) // On inverse le sens si on arrive à NUM_LEDS dans le sens positif ou à 0 dans le sens négatif
       sens=-sens; // on inverse le sens  
}

void loop()
{

 DeplacementPoint_AR(5);

}

Un exemple de réalisation (merci Kylian) :
Allez les Bleues #FFF

Allez les Bleues #FFF