Programmer bande leds pour allumer une série de led puis une autre après

Bonjour, je suis débutant et je désire allumer une bande led de 140 leds en les fractionent en deux groupe . exemple (leds 1,2,3,4,5 et,10,11,12,13,14,15 et 19,20 allumer et les 6,7,8,9 et 16,17,18 et 21,22 ect.. éteint ) puis après 10 seconde inverser les leds . Merci pour votre réponse.

ardunio nano
led WS2812

Hello, I'm a beginner and I want to light a led strip of 140 leds by splitting them into two groups. example (LEDs 1,2,3,4,5 and, 10,11,12,13,14,15 and 19,20 light up and 6,7,8,9 and 16,17,18 and 21,22 ect .. off) then after 10 seconds reverse the LEDs. Thank you for your reply.

ardunio nano
led WS2812

Hi davidavid,

This is a great tutorial for using an Arudino to control the WS2812B led strip!

Zeb

Bienvenue,

Tu peux utiliser un tableau pour y stocker le groupe de chaque led (0 ou 1)

Par exemple (avec la librairie FastLED):

size_t const numLeds = 140;

CRGB leds[numLeds];

uint8_t ledsGroups[numLeds]
{
  0,0,0,0,0,
  1,1,1,1,
  0,0,0,0,0,0,
  1,1,1,
  0,0,
  1,1,
  //etc...
}

Puis une petite fonction pour inverser la couleur de chaque led:

void updateLeds()
{
  static uint8_t group = 1;
  group = (group == 0) ? 1 : 0;
  
  for (size_t i = 0; i < numLeds; i++)
  {
    leds[i] = (ledsGroups[i] == group) ? CRGB::Red : CRGB::Black;
  }

  FastLED.show();
}

Puis tu appelles cette fonction toutes les 10 secondes:

void loop()
{
  uint32_t now = millis();
  static uint32_t past = now;
  
  if (now - past >= 10000UL)
  {
    past = now;
    updateLeds();
  }
}