Essai : LED WS2812B

Bonjour,

Je me suis intéressé à une LED intelligente du constructeur WORLDSEMI, la référence WS2812B (merci jC-Omega pour cette trouvaille).

Cette LED intègre un circuit qui permet de la commander en liaison série.

Voici la configuration des pattes et les dimensions :

WS2812B_doc

L’avantage de cette LED, c’est que l’on peut en mettre un très grand nombre en série et qu’elle est très réactive, on peut ainsi faire des matrices de LED :
matrice_WS2812

J’ai fait un essai sur ces LEDs avec un PIC18F, la vitesse de commande est assez élevée (800KHZ) ce qui a comme conséquence de faire tourner le PIC à grande vitesse (64MHZ pour mon essai) et d’optimiser au maximum les lignes de programme. En effet la moindre ligne supplémentaire au programme fait que le signal de commande n’est plus correcte.

Voici comment les signaux de commande doivent être réalisés :
WS2812B_data

Voici mon premier essai avec une LED :
WS2812B_test

Le PIC18F n’étant pas assez rapide pour mon futur projet, je vais faire un essai avec un microcontrôleur 16 bits dsPIC30F6015.

Une technique consiste à utiliser une sortie PWM de fréquence 800KHZ et de modifier le rapport cyclique en fonction du signal de commande souhaité, je pense faire des essais prochainement.

Pour marque-pages : Permaliens.

5 réponses à Essai : LED WS2812B

  1. jC_Omega dit :

    Sympa, pas d’autre moyen que de changer de PIC ?
    Les autres auront quasiment la même vitesse qu’un 18F a fond.
    A tu essayer avec des macro a base de Nop() et commande de port en direct? car a 64Mhz un cycle fait 62nS, c’est rapide.

    • Thienou dit :

      Si il y a moyen de faire autrement avec du PWM comme écrit en fin d’article.

      Mon programme fonctionne avec des Nop() effectivement qui durent 62ns mais le problème et que dés que tu ajoute une condition dans ton programme comme un IF et bien tu a 62ns et le temps d’exécution du IF ce qui prend plus de temps.

  2. jC_Omega dit :

    http://forum.43oh.com/topic/4920-led-ring-clock/
    Autre solution : le mec utilise un simple micro à 20Mhz, mais il programme en asm.
    Si ta besoin de faire des macro en asm, en gardant le code en C, ca peut ce faire.

    Sympa le PCB modulaire, mais il y a un paquet de capa.

    d’après http://rgb-123.com/ws2812b-vs-ws2811/
    les version B sont mieux

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *