Fablab ado > arduino et ruban Led - déplacement A/R aller-retour
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
Partager cette page