Étape 1: Considérations matérielles 1: conduite des LEDs
L’Arduino normal a seulement 6 sorties PWM, ce qui signifie qu'il peut piloter 2 LEDs RGB par lui-même. Vous aurez besoin de certains matériels supplémentaires au contrôle 15 d'entre eux. Dans mon projet, j’utilise un panneau personnalisé qui est essentiellement une variante Arduino Mini équipé de 3 pilotes LED ; vous devrez venir avec votre propre solution. Dans cette section, je vais essayer d’expliquer les options disponibles.
Il y a quatre manières de conduire un tas de LED éteint un Arduino : un pilote dédié de LED ; un registre à décalage ; un chauffeur de multiplexage/charlieplexing ; ou à del avec une puce à bord. J’ai peu ou aucun moi-même l’expérience avec les deux options de ce dernier, donc je vais être court à leur sujet.
Multiplexage des pilotes, comme la très connue dans l’Arduino cercles MAX7219, sont destinés à LED affiche numéro et matrices de 8 x 8 LED. Ils peuvent conduire jusqu'à 64 LEDs individuelles, de sorte qu’ils semblent être assez bon pour ce projet, car elle nécessite 45 connexions. Toutefois, ces pilotes n’ont pas d’options de PWM, afin que vous ne serez pas en mesure de régler Luminosité individuelle de chaque LED et sera collé avec 7 couleurs de base de LED RGB avec pas d’options supplémentaires comme des animations fluides, les fondus et les autres (pour être précis, il y a un projet rajoutant rudimentaire possibilité PWM de 4 bits à MAX7219, vous pouvez voir ses limites sur la vidéo il). Il sera également assez dur au fil de leur, car ils sont destinés à un usage différent. Enfin, LED cligno en raison de multiplexage-la plupart des gens ne remarquent pas cela, mais je n’aime pas l’idée. En tout, ce n’est pas recommandé.
LED avec une puce contrôleur est WS2812B (commercialisé aux États-Unis comme NeoPixels) ou APA102 (aka DotStar). Le premier est plus ou moins connues, étant sur le marché depuis un certain temps ; J’ai jamais même considéré cette chose en raison de sa méthode de contrôle absolument infernal avec des délais précis. Le APA102 est apparu assez récemment, alors que mon projet était en cours, et celui-ci semble beaucoup mieux que son prédécesseur, car il peut être contrôlé avec SPI ou même bit-frapper. Dans les États APA102 encore a une étiquette de prix très convenable, la vente à 4,5 $ pour 10 LEDs. Malheureusement je ne suis pas là, donc pour moi celui-ci n’est toujours pas une option. Cependant, quelques notes sont dus. Tout d’abord, APA102 est actuellement disponible que sous forme SMD (5050): aucun trou de LEDs pour vous. Deuxièmement, même avec WS2812B étant sur le marché depuis un certain temps, il n’a pas à devenir une industrie standard. Personnellement, j’ai des doutes sérieux au sujet de ces LEDs de vie en raison de chauffage. En troisième lieu, Notez que même aux États-Unis, vous pouvez rencontrer problèmes lors afin d’obtenir un remplacement de la LED grillée. Cela dit, je trouve encore les LEDs APA102 d’être un développement intéressant qui mérite d’être vu, même si pour l’expérimentation seulement.
Et maintenant pour les options sérieuses, approuvé par l’industrie.
1. LED driver
Ces puces sont assez communs, car ils sont utilisés dans les écrans LED publicité énorme. Ils sont spécifiquement conçus pour voiture LED, elles sont la meilleure option évidente. Ces drivers sont destinés à être connectés en guirlande, donc vous pouvez les connecter en chaîne à la lumière des LEDs autant que vous le souhaitez en utilisant le même nombre de sorties de l’Arduino. Ils sont des dispositifs d’évier actuel, ce qui ne signifie que l’anode commune que RVB LED peut être utilisé ; mais cela signifie également que vous n’aurez pas besoin de résistances pour chaque jambe de LED, seule par puce (ou pas du tout avec certains pilotes).
Le plus connu parmi les pilotes amateurs LED Arduino est pilote d’évier actuel Texas Instruments TLC5940 16 canaux 12 bits. Il est devenu populaire car il est un des très rares pilotes LED maquette facile, étant disponible en paquet DIP. Il y a une très complète et très-testé bibliothèque disponible pour cette puce. TLC5940 a besoin de lignes de données seulement 5 de la contrôleur ainsi la tension et la terre.
J’utilise obscurs pilotes LED appelés DM633 et DM634 de certains fabricants taïwanais. Je suis tombé sur eux en attendant que le paquet de TLC qui n’est jamais arrivé et je suis assez heureux à ma chance, car ces gars-là est 3 fois moins cher et fait mieux : ils ont leur propre PWM de course libre, donc besoin de lignes de données seulement trois du contrôleur. Ils disposent également de réglage de la luminosité globale (c'est-à-dire, en fait, une résistance interne – il est donc possible d’abandonner à l’externe, même si je ne le recommanderais pas) et 634 a profondeur de 16 bits en niveaux de gris. Cependant, ils sont disponibles en paquets SMD seulement, donc vous avez à souder (même si sur le connecteur de la SSOP-DIP à utiliser sur une maquette). Si vous avez réussi à obtenir ces puces et avez des problèmes, faire travailler, n’hésitez pas à utiliser mon croquis avec les fonctionnalités de base ici (à noter qu’il s’agit de work-in-progress et pas une bibliothèque encore, donc il suffit d’inclure le code dans votre croquis).
Le moyen le plus rapide et de pilotes LED de contrôle consiste à utiliser l’interface SPI. Toutefois, ces puces ne sont pas conçus spécifiquement pour le SPI, donc ils peuvent être programmés à l’aide technique de bit-claquement simple si vous avez besoin de sorties SPI (10-13 broches Arduino) pour autre chose. Voir la bibliothèque TLC5940 pour plus de détails.
En prime, LED drivers permet également aux moteurs et servos en voiture. Ils sont, après tout, juste des multiplicateurs de sorties PWM.
2: registres à décalage
Registres à décalage sont disponibles dans une variété de forfaits presque partout, ils sont exceptionnellement bon marché et il est facilement utilisable comme pilotes LED grâce à l’excellente bibliothèque shiftPWM. Ils peuvent également être connectés en guirlande. Ce qui les rend le deuxième meilleur choix, surtout pour prototypage maquette (à condition que vous trouverez un endroit pour mettre 6 d'entre eux).
Le registre à décalage plus courante et la moins chère est bon vieux 74HC595. Vous pouvez utiliser fois common anode et cathode commune LED RGB avec elle, mais il a un inconvénient important : vous aurez besoin de mettre une résistance à chaque jambe de données de chaque LED, et c’est 45 résistances en tout pour ce projet (assez faisable, en fait).
L’alternative est un registre à décalage évier actuel, qui est essentiellement un LED driver sans n’importe quel PWM en construction. Ici, vous aurez besoin seulement une résistance par le registre à décalage, mais sera également limité à l’utilisation d’anode commune uniquement des LEDs. Ces puces sont également plus chers.
Comme changement de registres n’ont pas tout intégré PWM, tous la modulation se fera par la bibliothèque ShiftPWM dans le microcontrôleur, et ces calculs consommer des ressources. Pour ce projet cet évier de ressource ne sera pas encore perceptible, à moins que vous essayez de faire quelques graves visualisations avec anticrénelage et tel. Il y a un calculateur de ressources à la page ShiftPWM qui va vous donner une idée de combien de temps le contrôleur sera occupé PWMing. Encore une fois, il est recommandé d’utiliser le SPI pour communiquer avec les registres à décalage, car c’est plus rapide ; bit-claquement est également disponible.
Pour résumer :
-Pilotes LED sont les meilleurs mais pas l’option la moins chère. Si vous êtes intéressé à faire des visualisations de LED avec Arduino, vous devez certainement aller pour elle : finalement, vous devrez vous familiariser avec ces puces, alors pourquoi ne pas commencer dès maintenant ? Vous aurez besoin de trois pilotes de LED 16 canaux plus trois résistances pour ce projet.
-Registres à décalage, à savoir 74HC595, présentent l’option la moins chère, avec un inconvénient d’avoir besoin de beaucoup de résistances. Pourtant, registres à décalage étant présents dans n’importe quel atelier Arduino, cette option est idéale pour les gens qui errent dans la LED conduite champ qu’occasionnellement et ne voulez pas investir dans un matériel dédié. C’est aussi une bonne (mais pas le seul) option si vous avez l’intention de tout miser sur une maquette. Vous aurez besoin de six registres à décalage de 8 canaux plus 45 résistances à ce projet.
-LED avec puce sur carte, à savoir APA102, sont à considérer si vous avez accès à eux et se contentent de leur forme SMD uniquement. Notez que ce sont nouvelles et uniques, alors vous ne serez pas en mesure de trouver le remplacement si ils obtenir interrompus pour une raison quelconque. Vous devez seulement 15 Ces LEDs ici.
-Multiplexage pilotes comme MAX7219 doivent être considérées uniquement si vous avez eux déjà et souhaitez mettre à quelque usage significatif, comme ils ne procurent pas la pleine capacité PWM. Ne les acheter pour ce projet : un véritable MAX7219 coûte la même chose que trois TLC5940s. Un MAX7219 peut conduire 15 LEDs RGB.