Problème pilotage WS2812B Cramées ? Fonctionnement étrange

Bonjour,

Je souhaite monter un projet ambilight (pour PC dans un premier temps et pourquoi pas multi plus tard (HDMI))

Cependant je fais face au premier problème : l'allumage de mes LEDs WS2812B

  • Je dispose d'une alimentation 20A 5V réglée avec potentiomètre/multimètre pour 5m de 60LEDs/m et un arduino nano "Old bootloader".

  • J'ai branché l'alim directement aux bornes des LEDs, l'arduino à la masse des LEDs (celui du bout du rouleau), et la D2 de l'arduino a la Din des LEDs.

  • Je précise que j'ai branché dans le sens de la flèche des LEDs (Alim => Led =>Led)

  • J'ai également testé avec une résistance de 220 Ohms entre D2(arduino) et Din(LEDs)

  • J'ai essayé toutes sortes de librairies Arduino, NeoPixel, FastLED et leur exemples, rien à faire pas de signe de fonctionnement.

Il n'y a qu'a un moment quand j'ai voulu vérifier sur une LED au hasard avec un ampèremètre j'ai du déraper et ca l'a allumée... en mettant un coup du 5V de la précédente au Din de la suivante, j'ai allumé plusieurs LEDs pleine puissance en faisant ça, pas recommandé j'imagine mais ca prouve qu'elles peuvent fonctionner non ?

Du coup j'ai essayé de faire toucher la pin data de l'arduino sur les LEDs suivantes, et ca fonctionne sur la led précédente, et la suivante mais émettent une lumière très faible (bleu). Ceci lorsque j'ai essayé directement un programme exécutant Ambibox (Oui, on sait jamais ce qui peut se passer en Elec :smiley: ), j'ai vérifié avec le logiciel, et le pilotage ne se fait pas (test des LEDs etc...)

Est-ce que quelqu'un a une intuition sur le moment, des vérifications à faire pour m'éclairer ? je peux poster une photo de mon montage plus tard car je ne l'ai pas sous les yeux actuellement.
Merci d'avance :slight_smile:

Voir ici

Il faut prévoir un gros condensateur de lissage sur l’alimentation, entre 470µF et 1mF.
Ce condensateur a pour mission de lisser le pic de courant lors du branchement des leds à l’alimentation.
Prévoir un condensateur de bonne qualité et avec une tension de travail d’au moins 15v. Le pic de courant est de l’ordre de plusieurs ampères. Ces petites leds consomment ~60mA chacune à plein régime.

Il faut prévoir une résistance de 300 ohms en série avec la ligne DATA de la première led.
Il semblerait que l’entrée de données DATA des leds WS2812 ne demande qu’a cramer.

On trouve des liens qui parlent d'un condo de 1500 µF.
L'alimentation doit délivrer un 5V très précis.

Le problème de ces LEDS (WS2811, 2812) est qu'elles sont chaînées : si une est abîmée, les suivantes ne s'allument plus. Dans un tel cas, il faut identifier celle qui est out et la bypasser.

Salut lesept, merci beaucoup pour ton retour

Super article de blog même si c'est un peu décourageant :stuck_out_tongue:
il mérite d'être plus référencé car je n'étais tombé que sur la partie du blog ou l'auteur décidait d'abandonner son projet après avoir justement fait sauter les 3/4 de ses LEDs :confused:

J'ai confondu avec les WS2813 qui elles sont en "dérivation" si une est défectueuse...
Je vais du coup bypasser la première car ca a été le punching bag jusqu'a maintenant mais pour éviter au maximum les soudures et manipulations (je n'ai pas énormément de matériel chez moi c'est mon premier projet :slight_smile: ) que penses tu d'essayer avec une petite partie de led et l'arduino en alimentation ?

je vois qu'un arduino nano peut sortir 40mA par Pin ca veut dire que je peux en allumer qu'une seule à la fois ?
Comment identifier si d'autres sont out ? je ne peux pas amener les fils d'alimentation à la main ca risque de les cramer non ?
Je pensais que mon alimentation faisait déjà le rôle d'un condensateur mais c'est une bonne idée pour ne pas prendre de risque !

Pour allumer plusieurs, tu peux jouer sur le paramètre Brightness de la bibliothèque, tu le mets à 40 ou 60 ce qui limitera la conso.
Si tu utilises FastLED, une option permet de limiter la conso (en lui indiquant le max en paramètre)

D'accord c'est noté merci :slight_smile:

Comment être sûr de ne pas cramer la data in ? Y mettre une résistance n'y réduit pas les risques pour moi, si ?

J'ai quelques notions en électricité il me semble que ça puisse éventuellement réduire le bruit mais pas de risque de baisse de tension ?

J'ai utilisé des WS2812 dans la résistance, mais avec le condo, sans problème.

Bonjour Tawtam

Tawtam:
Comment être sûr de ne pas cramer la data in ? Y mettre une résistance n'y réduit pas les risques pour moi, si ?

Ici ce qui est préconisé pour le bon usage de ces LED.

lesept:
J'ai utilisé des WS2812 dans la résistance.

C'était pour envoyer des signaux aux avions de la RAF? :slight_smile:

Cordialement
jpbbricole

Je parlais de la guerre de 70 bien sûr, donc pour les ballons à air chaud...

Mais j'ai aussi appliqué ça pour la DCA en 40, parce que ça consomme un max !

Rebonjour, :confused:

Je reviens après avoir acheté un condensateur de 1mF (12V) une résistance de 470 ohms ai viré les 3 premières LEDs (j'en ai 300 donc j'suis un peu large) mais je suis toujours au même point ...
(J'ai changé d'arduino car je l'ai cramé avec une fausse manip)
Rien ne s'allume quelquesoit l'exemple/programme

A part si je fais une connexion entre le 5v d'une led au Din d'une autre, elles s'allument d'une couleur random comme on peut le voir sur la photo.

J'ai ajouté une photo du montage je ne sais pas si c'est très visible mais en gros
J'ai bien le sens des LEDs pour la din, l'alim a la fin de la chaîne de LEDs
Les 3 masses sont connectées a la borne V- de l'alim
J'ai directement soudé la résistance à la led car apparemment c'est conseillé qu'elle soit la plus proche possible de la led
Il y a bien un beau 5,01V a la sortie de l'alim ...


Je sèche, malgré les super articles pour les meilleures pratiques j'ai besoin d'aide là :confused:
Merci d'avance !

Quand je fais la manipulation étrange (borne 5v din suivante) sur la première Led, je m'aperçois qu'elle fonctionne normalement ! ...

Tawtam:
J'ai essayé toutes sortes de librairies Arduino, NeoPixel, FastLED et leur exemples, rien à faire pas de signe de fonctionnement.

Ok d'accord mais jusqu'ici, on a pas vu une seule ligne de code.
Tu as testé plusieurs librairies mais les as-tu correctement paramétrées?

La position de la résistance n'est pas critique. Elle sert à limiter le courant qui pourrait passer par la broche Din. En effet comme souvent l'alimentation de l'arduino et celle des LEDs sont différentes si l'arduino est mis sous tension avant les LEDs celles-ci se trouvent alimentées par la sortie de l'arduino ce qui peut:

  1. flinguer la sortie de l'arduino
  2. flinguer l'entrée Din en y faisant circuler un courant important à travers la diode de protection qui se trouve entre Din et la ligne de +5V des LEDs
  3. créer une situation de latchup qui bloque (ou tue si on a vraiment pas de bol) les LEDs

Selon moi, il serait préférable de mettre d'abord sous tension les LEDs puis ensuite l'arduino.

Il faut regarder sur les rubans de LEDs, sur certains la résistance est déjà présente. J'ai récemment fait l'acquisition d'anneaux de LEDs il y avait une résistance sur le Din de certains d'entre eux.

On voit mal sur ta photo, mais le GND de l'arduino est aussi relié au GND du bandeau de leds ?

fdufnews:
Ok d'accord mais jusqu'ici, on a pas vu une seule ligne de code.
Tu as testé plusieurs librairies mais les as-tu correctement paramétrées?

Pour ce qui est des exemples je comprends ton point de vu, on peut fixer un exemple à exécuter et j'envoie le code que je fais passer. A part le nombre de LEDs (297) la Pin (6) et type de LEDs WS2812B je n'ai pas vu d'autres paramètres influençables.

fdufnews:
La position de la résistance n'est pas critique. Elle sert à limiter le courant qui pourrait passer par la broche Din. En effet comme souvent l'alimentation de l'arduino et celle des LEDs sont différentes si l'arduino est mis sous tension avant les LEDs celles-ci se trouvent alimentées par la sortie de l'arduino ce qui peut:

  1. flinguer la sortie de l'arduino
  2. flinguer l'entrée Din en y faisant circuler un courant important à travers la diode de protection qui se trouve entre Din et la ligne de +5V des LEDs
  3. créer une situation de latchup qui bloque (ou tue si on a vraiment pas de bol) les LEDs

Selon moi, il serait préférable de mettre d'abord sous tension les LEDs puis ensuite l'arduino.

Effectivement je suis la procédure proposée par NeoPixel, à savoir brancher les masses, allumer l'alim, alimenter les LEDs et brancher en dernier temps la Din et procédure inverse pour l'arret.

lesept:
On voit mal sur ta photo, mais le GND de l'arduino est aussi relié au GND du bandeau de leds ?

Désolé, j'en referai une spécifique s'il faut car pas facile de tout montrer pour ne laisser aucun détails échapper :slight_smile:
C'est la dessus que j'ai un doute, j'ai branché le tout sur la borne V- de l'alimentation (GND arduino, Leds et Condo) a priori pas de raison pour que ca ne puisse pas faire office de plan de masse ? est-ce qu'il faut également relier à la masse de l'entrée 220V ? c'est l'icone masse qui me fait douter plutot que V- mais logiquement V- est la différence de potentiel donc fait bien le role de masse il me semble ?

J'ai vérifié également la tension aux bornes des LEDs il est pas mal en dessous de 5v, a peu près 4.5V il faut pas augmenter (un peu) la tension de l'alim pour atteindre 5v dans les LEDs ? j'ai pas osé le faire :stuck_out_tongue:

Bonjour,

Il se peut que la première led soit détruite.
Tu peux essayer de relier la sortie de l'arduino sur le DIN de la deuxième led (avec une résistance de 330 ou 470 Ω)

kamill:
Bonjour,

Il se peut que la première led soit détruite.
Tu peux essayer de relier la sortie de l'arduino sur le DIN de la deuxième led (avec une résistance de 330 ou 470 Ω)

Bonjour kamill, je suis à 297 LEDs car j'ai pensé avoir cramé la première LEDs et dans le doute passé à la suivante afin d'être sur.
Quand je tente de bypasser rien ne se passe, j'ai l'impression qu'il y a un soucis dans la chaine Din comme si elle manquait de puissance, un arduino peut il commander autant de LED ?

Je ne suis plus en école donc je n'ai pas d'oscillo pour vérifier et encore moins d'infos sur ces LEDs avec une datasheet de 2 pages :frowning:

A priori c'est bon pour les masses, tu peux vérifier au multimètre que les masses 220V et V- de ton alim sont bien au même potentiel.

Pour 300 leds qui consomment chacune jusqu'à 60mA, ton alim doit pouvoir fournir 18A au moins (si elles sont toutes allumées à plein tube ensemble)

J'ai piloté plus de 100 leds avec la commande d'un nano sans problème.
Par contre, pour un grand nombre de leds, il faut "distribuer l’alimentation" : tu connectex le 5V et le GND sur la première led, sur la dernière voire même sur celle du milieu.

Quelques infos ici et

Bonjour Tawtam

Tawtam:
comme si elle manquait de puissance, un arduino peut il commander autant de LED ?

Je ne peut pas te garantir que l'Arduino peut commander un bus avec 300 LED, mais comme tu sembles débuter avec ces bestioles, sit tu n'en a pas d'autres, et que tu as un fer à souder, coupes en un bout de bande de ~20 diodes et entraînes-toi déjà avec ça en lisant cette page.

Tawtam:
Je ne suis plus en école donc je n'ai pas d'oscillo pour vérifier

Deux ou trois outils, pas chères, pour bricoler sur des Arduino et leur entourage, un oscillo à ~20€ et un analyseur logique 8 pistes capable de décoder une grande quantité de protocoles à moins de 10€, j'utilise aussi beaucoup, une sonde logique, ces versions chinoises ne sont, peut âtre, pas le sommet de la précision, mais pour le prix ça dépanne pas mal.

Bonne bricole
Cordialement
jpbbricole

Je ne connais pas trop le besoin mémoire de ces librairies. Je me pose une question est-ce qu'avec quasiment 300 LEDs on n'aurait pas un petit problème de débordement de RAM.

Si tu déclares 50 LEDs est-ce que cela fonctionne?

Tawtam:
un arduino peut il commander autant de LEDs

Quel que soit le nombre de leds, l'arduino ne commande électriquement qu'une led.
C'est la led précédente qui transmet le signal à la led suivante.

fdufnews:
Si tu déclares 50 LEDs est-ce que cela fonctionne?

Non, malheureusement cela ne fonctionne pas :frowning:

lesept:
Pour 300 leds qui consomment chacune jusqu'à 60mA, ton alim doit pouvoir fournir 18A au moins (si elles sont toutes allumées à plein tube ensemble)

J'ai piloté plus de 100 leds avec la commande d'un nano sans problème.
Par contre, pour un grand nombre de leds, il faut "distribuer l’alimentation" : tu connectex le 5V et le GND sur la première led, sur la dernière voire même sur celle du milieu.

C'est pour ca que 'jai pris une alim de 20A 5v, je viens de brancher au début et à la fin, ca a reglé le soucis de la tension aux bornes des LEDs, elles sont toute à 5,00V maintenant.
Il est possible qu'elles soient toute morte par la faible tension qui passait dedans en alimentant que d'un coté ?

jpbbricole:
Bonjour TawtamJe ne peut pas te garantir que l'Arduino peut commander un bus avec 300 LED, mais comme tu sembles débuter avec ces bestioles, sit tu n'en a pas d'autres, et que tu as un fer à souder, coupes en un bout de bande de ~20 diodes et entraînes-toi déjà avec ça en lisant cette page.
Deux ou trois outils, pas chères, pour bricoler sur des Arduino et leur entourage, un oscillo à ~20€ et un analyseur logique 8 pistes capable de décoder une grande quantité de protocoles à moins de 10€, j'utilise aussi beaucoup, une sonde logique, ces versions chinoises ne sont, peut âtre, pas le sommet de la précision, mais pour le prix ça dépanne pas mal.

J'envisage "d'anticiper" une bande correspondant a un bord de mon écran mais je ne vois pas pourquoi elles fonctionneraient en petite bande :confused: je suis quasi sur que j'aurai le même résultat.

Ce test personnel est la première étape, si jamais j'y prends goût ou je me trouve d'autre projet sympas à réaliser avant d'acheter du matériel afin de ne pas dépenser dans le vent pour un "coup de tête" et les laisser prendre la poussière ensuite (même si ça m'étonnerait :p)
Surtout que je commence à croire que ce sont les LEDs qui sont endommagées (Trop longtemps déballées, soudures, etc...)

Je joins une photo d'un montage plus récent (on peut croire que la masse de l'arduino n'est pas en face du fil branché mais c'est bien le cas, faute de perspective)

Je ne prends pas le temps de vous remercier car je test quand j'ai du temps libre, mais merci pour l'apport d'information et d'astuces :slight_smile: j'espère vraiment y arriver !