WS2812B LED adressables Image descriptive

WS2812B LED RVB adressables | Contrôle en utilisant Arduino


Dans ce projet, nous examinerons un produit intéressant appelé les LED adressables WS2812B. Ce sont des voyants RVB adressables individuellement et sont également appelés par différents noms tels que NeoPixel de Adafruit, par exemple. Dans ce didacticiel, nous étudierons les voyants WS2812B, leur structure interne et leur construction, ainsi que le contrôle des voyants adressables individuellement à l'aide d'Arduino.

introduction

Si vous avez créé une sorte de projet lié aux voyants, vous avez probablement utilisé des voyants discrets (traversants ou CMS). Ces voyants peuvent être des voyants monochromes ou des voyants RVB.

Le principal inconvénient des voyants discrets est que, si vous les utilisez dans un tableau, vous perdez le privilège de les contrôler individuellement. Par exemple, si vous connectez trois ou quatre DEL à une seule broche d’Arduino à l’aide d’un transistor, toutes les DEL de la matrice auront le même comportement, c’est-à-dire un contrôle de la luminosité ou un changement de couleur.

Un autre scénario est que vous pourriez également avoir utilisé Lumières de bande de LED pour la décoration de Noël ou l'éclairage domestique régulier. Vous avez peut-être remarqué que même dans les lampes à ruban à LED coûteuses, vous n’avez pas la possibilité de contrôler des LED individuelles.

Si votre objectif est de contrôler des voyants individuels dans une bande, les voyants RVB adressables WS2812B sont la solution pour vous.

WS2812B LED adressables

La bande de LED adressable WS2812B est une source de lumière intelligente qui contient un circuit intégré de commande et une LED RVB dans le même boîtier, généralement au format SMD 5050. L'image suivante montre une bande de voyants WS2812B.

WS2812B LED adressables Image descriptive

À première vue, cela ressemble à une bande de LED ordinaire. Mais après une inspection plus minutieuse, vous pouvez trouver le circuit intégré de commande de LED WS2812B intégré dans le groupe de LED RVB SMD 5050. L'image agrandie suivante montre la même chose.

Schéma de circuit des voyants adressables WS2812B

Le bloc de LED WS2812B a quatre broches, à savoir VDD, VSS (GND), DIN et DOUT. Les fonctions de ces broches sont très simples et le tableau suivant donne une description simple des fonctions des broches.

Épingle

Une fonction

DMV

Alimentation pour LED

VSS

Sol

VACARME

Entrée de signal de données de contrôle

DOUT

Sortie du signal de données de contrôle

L'alimentation du circuit intégré WS2812B est également fournie via la broche VDD.

WS2812B Circuit d'application LED

Pour comprendre comment les voyants WS2812B peuvent être contrôlés individuellement, le circuit d’application suivant sera utile. Toutes les LED WS2812B sont connectées en cascade, l’OD de la première LED étant connecté au DIN de la seconde LED, etc.

Mais la première LED doit recevoir les données via son broche DIN d'un microcontrôleur comme Arduino. L'image suivante montre le schéma de principe d'un circuit d'application.

WS2812B Application adressable LED

Le protocole de transfert de données utilisé par les voyants WS2812B est le mode NRZ. Le premier port DIN de la matrice de LED WS2812B reçoit des données du microcontrôleur. Les données pour chaque pixel individuel sont de 24 bits et consistent en des données de commande individuelles des voyants rouges, verts et bleus de 8 bits chacune. L'ordre des données doit être GRB et la composition des données 24 bits est indiquée ci-dessous. Notez que les données de bit HIGH sont envoyées en premier.

WS2812B LED adressables Données 24 bits

Une fois que le premier bloc WS2812B a reçu les premières données de 24 bits, celles-ci sont envoyées à son verrou interne pour un décodage ultérieur. Les données restantes sont remodelées par son circuit de remodelage et d'amplification du signal et sont transmises au pixel suivant de la cascade par l'intermédiaire de la broche DO.

Comment contrôler la LED WS2812B en utilisant Arduino?

Passons maintenant au contrôle du tableau de DEL WS2812B à l’aide d’Arduino. Avant d’aller plus loin dans la conception du schéma, il y a une chose importante à aborder, c'est-à-dire l'alimentation en énergie du projet.

Chaque pixel LED WS2812B est doté de trois LED et d’un circuit intégré de contrôle. L’exigence actuelle d’un pixel est donc d’environ 60 mA. Si votre bandelette contient 20 LED WS2812B adressables individuellement, le courant total requis est de 20 * 60 mA = 1,2 A.

C'est plus que ce que Arduino peut fournir, soit par le port USB (qui peut fournir un maximum de 300 mA), soit par le biais d'une prise jack 5V (qui peut fournir un maximum de 900 mA).

Ainsi, le meilleur moyen de mettre le projet en marche, c’est-à-dire à la fois Arduino et le ruban à LED WS2812B, est à l’aide d’une source 5V externe pouvant fournir suffisamment de courant.

Maintenant que la partie alimentation du projet est claire, nous pouvons maintenant procéder avec le schéma du projet.

Schéma

L'image suivante montre la connexion entre Arduino UNO et le ruban à LED RVB WS2812B. Le 5V d’Arduino UNO et les voyants sont connectés à une alimentation externe avec le GND (VSS).

La broche DIN de la bande de LED est connectée à la broche IO numérique 7 de l'Arduino via une résistance de 330Ω.

Schéma de circuit des voyants adressables WS2812B

Composants requis

  • Arduino UNO
  • WS2812B LED
  • Alimentation 5V (minimum 2A)
  • Résistance de 330Ω

Programmation Arduino

La première étape de la programmation Arduino consiste à télécharger une bibliothèque de support appelée “FastLED”. Vous pouvez télécharger la bibliothèque à partir du lien suivant: “Bibliothèque FastLED”.

Extrayez le contenu du fichier zip et renommez le dossier en «FastLED». Déplacez ce dossier dans le dossier libraries de l'Arduino.

Code

#comprendre 

#define LEDPIN 7
#define NUMOFLEDS 10

Leds CRGB[NUMOFLEDS];

void setup() {

  FastLED.addLeds(leds, NUMOFLEDS);

}

boucle vide () {

  pour (int i = 0; i <= 9; i++) {
    leds[i] = CRGB ( 0, 0, 255);
    FastLED.show();
    delay(40);
  }
  for (int i = 9; i >= 0; je--) {
    leds[i] = CRGB (255, 0, 0);
    FastLED.show ();
    retarder (40);
  }
}

Conclusion

Une introduction simple à des LED adressables individuellement WS2812B est présentée dans ce tutoriel tout au long d’un projet qui montre comment contrôler les LED WS2812B avec Arduino. Si vous comprenez ces bases, vous pouvez alors mettre en œuvre un large éventail de projets.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *