Problème "glitch" avec bandeau de leds WS2812

Bonjour
Je viens de terminer une horloge avec un “miroir infini”, c’est à dire un miroir et un verre semi réfléchissant avec un bandeau de 60 leds entre les deux. J’ai testé le sketch (que je mettrai dans la section Projets finis bientôt) avec un premier bandeau et tout marchait bien. L’horloge se met à l’heure automatiquement par internet et je peux commander les animations via une interface Blynk.

Le montage est fait d’un NodeMCU 0.9 sur un shield qui fournit une alimentation 5V à partir d’une alimentation externe 6V-24V. Je branche mon bandeau sur ces pins 5V avec une capacité de 1000µF en parallèle. La commande (DIN) du bandeau est directement branchée sur un sortie numérique du NodeMCU.

Mon test avec un premier bandeau ne montrait aucun problème, mais c’était un bandeau dans une gaine plastique. J’ai donc branché un second bandeau à la place, qui n’a pas cette gaine. Et j’ai remarqué à ce moment des sortes de “glitchs”, c’est à dire des leds qui s’allument aléatoirement dans les animations.

J’ai pris deux vidéos qui aident à voir ces phénomènes :

https://youtu.be/cveoMebRNuY
https://youtu.be/ObLMiEiNbv4

Quelqu’un a-t-il une idée de la cause de ces problèmes ? La capa est endommagée ? Le nouveau bandeau est défectueux ? Autre idée ? Ajouter une résistance sur la commande ?
Merci de votre aide

Vérifiez si le glitch est là quand le bandeau est à plat

Quel type de LED? APA102? Vous alimentez / GND des deux côtés (même si pour 60 ce ne devrait pas être nécessaire)

Merci JML
Les LEDs sont collées sur le disque interne de l'horloge, donc je ne peux plus les mettre à plat, à moins de tout démonter :frowning:
Ce sont des WS2812, GND d'un seul côté.

J'ai changé la capa, sans améliorer la situation. J'ai testé en alimentant directement le NodeMCU par le connecteur USB (au lieu du shield qui me donne les tensions de 5V à partir d'une alim 12V de PC portable) et c'est un peu mieux. Je vais voir si j'en ai un autre (shield) pour l'échanger...

Bonjour,

Les WS2812 posent des problèmes quand le signal de commande est en 3.3V. Des fois ça marche bien, des fois ça marche mal.
Il faudrait un adaptateur de niveau 3.3 → 5 V

Merci Kamill
J'ai ça (LM317-DC-DC-Converter-Buck-Step-Down-Circuit-Board-Module-Linear-Regulator-LM317-Adjustable-Voltage-Regulator) : ça conviendrait ?

EDIT : après recherche, il faudrait plutôt ça, non ?
3.3V 5V 8 channel logic level converter TSX0108E

Si je prends ça, j'aurai un mois d'attente, il n'y a pas une solution plus simple (pont diviseur à résistances par exemple) ?

un simple transistor pour amplifier le signal. voir le tuto de 68tjs ici

kamill:
Les WS2812 posent des problèmes quand le signal de commande est en 3.3V. Des fois ça marche bien, des fois ça marche mal.
Il faudrait un adaptateur de niveau 3.3 -> 5 V

Maintenant je comprends pourquoi je n'ai jamais eu de problème de ce genre avec un nano. Merci de l'info !

bricofoy:
un simple transistor pour amplifier le signal. voir le tuto de 68tjs ici

Je vais lire le tuto, mais je ne suis pas très fort en transistor, un coup de main sera bienvenu...

Personnellement j'ai utilisé ça:

A la fréquence ou fonctionnent les neopixel, je ne suis pas convaincu qu'une adaptation de niveau avec un simple transistor fonctionne bien.

Un collègue électronicien m'a soufflé une solution à base d'un double inverseur (un 74AC14 utilisé 2 fois en cascade) alimenté en 5V, avec 2 diodes entre la sortie du NodeMCU et l'entrée du circuit, et une résistance en parallèle connectée au 5V (et une capa de découplage). Je vais tester ce soir...

Une question : comment fait-on pour insérer une image dans un post ?

EDIT : vu, merci. Comme ça je peux mettre le schéma.

Je pense qu'en utilisant deux inverseurs du 74HC14, ça doit fonctionner. Je ne vois pas bien à quoi servent les diodes.
Essaies simplement en connectant la sortie du NodeMCu au 74HC14, le niveau doit être suffisant pour commander ce circuit.

Pour insérer une image

  • soit tu utilises un hébergeur d'images comme casimages et tu copies le lien qu'il te donne dans ton message
  • soit tu attaches ton image à ton message comme fichier attaché, tu envoies ton message puis tu édites ton message, tu copies l'adresse de ton image (click droit sur le lien dans ton message) et tu l’insère en tant qu'image avec l'icone image.

OK, merci, j'ai pu mettre le schéma en ligne.
Les deux LEDS servent à monter la valeur du 0V (à 1.2V) pour que les inverseurs puisque trigguer même en présence de bruit ou de petites variations, et la résistance sert de même à abaisser la valeur du 5V

Je te conseille d'essayer sans les diodes et la résistance. Si ça ne fonctionne pas tu pourras essayer avec les diodes et la résistance.

OK, à suivre donc… Merci

Après avoir réfléchi et en avoir discuté avec moi même :slight_smile: , je me suis dit que les diodes et la résistance c'était pas bête, quoique un peu limite.
Je me suis aussi dit que le 74HC14 ne servait (presque) à rien.

J'ai donc essayé le schéma suivant

Et chez moi ça marche impec!!

Ben, pas moi. Avec et sans les diodes, c'est toujours pareil... :confused: J'ai toujours les glitchs même avec ton schéma...
Par contre ça va (un peu) mieux quand j'alimente avec l'USB, au lieu du shield et de l'alim 12V (le shield prend de 6 à 24V)

C'est bizarre, chez moi ça fonctionne de la même façon qu'avec le level shifter. Par contre si je connecte directement sans adaptation de niveau, soit ça bloque complètement soit de temps en temps on dirait que ça saute des pixels.

Est ce que tu as essayé avec le 74HC14?

Oui, j'ai essayé toutes les solutions évoquées :

  • Avec le 74C14 seul (toutes entrées inutilisées reliées au GND)
  • Avec le 74QC14 et les diodes
  • Avec les diodes seules (ton schéma)

A chaque fois j'ai vérifié mes branchements et j'ai mis une capa de découplage entre le GND et le 5V du 74AC14.

Je vais tester avec un nano, je verrai bien si c'est dû à cette tension de 3.3V. Si oui, j'achèterai un convertisseur bidirectionnel comme celui que tu as montré.

kamill:
Et chez moi ça marche impec!!

Quand tu dis ça, est-ce que ça veut dire que tu as testé avec un NodeMCU ou un ESP8266 et que tu as aussi des glitchs si tu branches directement les LEDs sur la sortie numérique ? Quel genre d'alim utilises-tu ?

J'ai testé avec un NodeMCU cablé à la va-vite sur une breadboard et alimenté par l'usb via un hub usb lui même alimenté par une alim 5V.

Comme je l'ai dit quand je connecte directement, soit ça bloque complètement, soit ça saute des pixels de temps en temps (je fais défiler des pixels sur la barette neopixel)

La seule différence notable serait le nombre de LEDs ? J'en ai 60 et toi 8, donc je tire plus de courant. Tu sais à combien de courant est limité le NodeMCU V0.9 ? J'ai trouvé 12mA sur le net.

La datasheet de la LED WS2812 est ici. Elle dit :
Capture.JPG
Donc, ça voudrait dire que chaque LED consomme 18.5 mA ? Mais quel est le courant tiré par la commande ?

Capture.JPG