Question:
Comment une LED dans une bande LED comme WS2811 sait-elle quand elle doit être allumée ou éteinte
Anne Mabellon
2018-06-17 23:40:02 UTC
view on stackexchange narkive permalink

J'expérimentais avec une carte Arduino et une LEDstrip WS2811 cela fonctionne parfaitement, mais je ne comprends pas comment une led particulière sait quand elle est appelée ou adressée. Chaque LED a-t-elle une adresse unique?

Vous pouvez trouver les explications sur https://www.edn.com/design/led/4438797/Tips-and-tricks-for-driving-WS2811-LED-strips---Part-1, https: // forum. arduino.cc/index.php?topic=365474.0 et la fiche technique https://cdn-shop.adafruit.com/datasheets/WS2811.pdf utiles.
** après une réinitialisation **, le WS2811 enregistre la ** première valeur de couleur qu'il reçoit ** et transmet le reste des valeurs de couleur à sa sortie ..... imaginez une ligne de personnes et un jeu de cartes colorées ... les gens sont informés `` lorsque vous entendez la cloche (c'est-à-dire la réinitialisation), conservez la première carte que vous recevez et passez toute autre carte à la personne suivante '' ... utilisez votre imagination pour remplir le reste
Deux réponses:
chrisl
2018-06-17 23:51:28 UTC
view on stackexchange narkive permalink

Le WS2811 est la puce de pilote, qui est intégrée dans la bande. En principe, c'est une sorte de registre à décalage, qui produit des valeurs PWM, et sur la bande, elles sont chaînées (la sortie de données de l'un est connectée à l'entrée de données de la suivante). Avec l'Arduino, vous décalez un flux d'octets, lorsque vous utilisez une bande RVB de 3 octets par LED (1 octet par couleur). Le premier WS2811 lit ces 3 octets, définit ses sorties (PWM) en fonction d'eux et envoie le reste du flux de données à une autre broche, afin qu'il puisse atteindre le WS2811 suivant. Les LED sur la bande sont connectées aux sorties du WS2811.

Donc, dans l'ensemble, la puce WS2811 enregistre l'état actuel souhaité de sa LED, qu'elle a obtenue par le flux de données de l'Arduino. Les puces n'ont pas d'adresse directe, mais peuvent être identifiées par leur position dans la bande. Vous ne pouvez donc pas uniquement écrire sur la 5ème LED sans écrire également des valeurs sur les LED qui la précèdent. Mais, si vous ne voulez pas définir la bande entière, vous pouvez produire moins de données que la bande sous forme de LED, ignorant effectivement les LED à la fin.


EDIT:

mais comment reconnaît-il la première led?

La bande a un peu comme une ligne de données. Lorsque vous regardez les marques de cette ligne sur les deux extrémités de la bande, vous devriez normalement voir quelque chose comme «DI» et «DO», qui signifie Data In et Data Out, chacun à une extrémité de la bande. Chaque LED a ses propres données d'entrée et de sortie de données, qui sont enchaînées à la LED suivante et précédente. La première et la dernière LED exposent leurs données d'entrée ou de sortie de données (respectivement) à l'extérieur de la bande. Vous introduisez les données dans Data In du premier pilote de LED, qui sort le reste des données sur sa broche Data Out, où les données peuvent aller au pilote suivant. Ainsi, la direction dans laquelle les données circulent à travers la bande est déjà définie et câblée. Vous ne pouvez pas envoyer de données dans l'autre sens à travers la bande. Donc, la première LED est celle-là, qui est directement attachée à la ligne Data In de la bande et sera connectée à l'Arduino.

Gardez à l'esprit que ce n'est pas une adresse. Vous pouvez couper la bande à un endroit approprié (afin de ne pas détruire le circuit. La plupart des bandes ont ces pièces régulièrement après chaque ou chaque troisième LED) et obtenir une nouvelle première LED, si vous connectez maintenant le Data In, où vous couper la bande, à l'Arduino. Une bande de LED avec WS2811 n'est pas un tableau ou une matrice de LED, c'est une chaîne de LED. Cette différence est importante dans la façon dont vous les contrôlez.

Réponse claire, mais comment reconnaît-il la première led?
@AnneMabellon J'ai ajouté des explications supplémentaires à ce sujet. J'espère que c'est clair maintenant.
vurp0
2018-06-18 03:20:29 UTC
view on stackexchange narkive permalink

Les unités LED n'ont pas d'adresse unique, elles sont plutôt indexées par leur position dans la chaîne de LED. Lorsque vous introduisez des données dans la première LED, vous placez toute la séquence de valeurs de couleur dans la première. Il définira ensuite sa propre couleur sur la première de la séquence, puis émettra tout le reste vers la LED suivante de la série.

Aucune des LED ne «sait» réellement où elle se trouve dans la bande localisés, ils ne prennent que la première valeur qui entre et définissent leur propre couleur sur cette valeur, puis envoient le reste des valeurs à la LED suivante de la série.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...