Panneau 256 Led WS2812B 32*8

Bonjour,

J’ai un Panneau Led .
J’ai réalisé ce “simple” montage : (edit manque connexion gnd)

Avec ce code récupéré sur ici :

// ce code permet un allumage led par led du bandeau

#include <Adafruit_NeoPixel.h>
#define PIN 2
#define nbLED 256

Adafruit_NeoPixel strip = Adafruit_NeoPixel(nbLED, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
 
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {

// colorWipe(strip.Color( la définition de la couleur), la durée entre l'allumage de chaque led

  colorWipe(strip.Color(250, 0, 0), 100); //rouge
  colorWipe(strip.Color(0, 250, 0), 100); //vert
  colorWipe(strip.Color(0, 0, 250), 100); //bleu
 colorWipe(strip.Color(0, 250, 250), 100); ///cyan
  colorWipe(strip.Color(250, 250, 0), 100); // jaune
  colorWipe(strip.Color(250, 0, 250), 100); //magenta
}

void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

Il allume parfaitement les Leds 1à 1 toussa…

Mais je ne comprends comment elle s’allume…

J’ai compris vaguement que c’etait des WS8212 et qu’elles avaient donc toutes une adresse, ici la librairie les nomme de 1 à #define nbLED 256…

Mais comment sont elles nommés ? par le fabricants lors de l’implémentations des leds ?

Si vous pouvez m’éclairer

Julien.

Bonjour,

C'est par construction.
Si tu veux voir dans quel ordre elle sont, tu les allumes une par une.

kamill:
C'est par construction.

Je n'ais pas compris

kamill:
Si tu veux voir dans quel ordre elle sont, tu les allumes une par une.

c'est ce que fait mon code ^^

Les LEDs fonctionne par réception d'un message série. Elles sont câblée les unes à la suite des autres comme un grand registre à décalage. La première LED prend le premier message puis passe les autres aux Leds suivantes.
C'est la méthode setPixelColor(i, c); qui défini la couleur pour chaque LED.
i correspond à la position de la LED dans la chaîne
c à la couleur
La méthode show() met à jour l'affichage.
Tu peux très bien avoir plusieurs appels à setPixelColor(i, c); pour changer la couleur d'un ensemble de LED et n'appeler qu'une fois la méthode show() lorsque le contenu de l'affichage est totalement défini.

J4l13n:
Je n’ais pas compris

c’est ce que fait mon code ^^

Les leds sont cablées les unes à la suite des autres le DOUT de l’une étant relié au DIN de la suivante, ce qui impose l’ordre des leds.
Tu les allumes une à une avec un délai entre chaque chaque ce qui te permet de suivre l’ordre d’allumage.
Par exemple:

// ce code permet un allumage led par led du bandeau

#include <Adafruit_NeoPixel.h>
#define PIN 2
#define nbLED 256

Adafruit_NeoPixel strip = Adafruit_NeoPixel(nbLED, PIN, NEO_GRB + NEO_KHZ800);

void setup() {

  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  static int i = 0;
  strip.setPixelColor(i, 64, 0, 0);
  strip.show();
  delay(500);
  strip.setPixelColor(i, 0, 0, 0);
  if (i++ >= nbLED)
    i = 0;
}

Bonjour,

C'est bon j'ai piger merci

J-M-L:
suis surpris qu'il n'y ait pas d'interconnexion des GNDs...

je vais modifier mon 1er message

j'ai retiré mon message qui n'a plus lieu d'être