Étape 2: théorie
Avant de nous plonger dans la tête la première, j’ai pensé que je voudrais expliquer un peu comment ça fonctionne. Pour ceux d'entre vous qui veulent se lancer, vous pouvez ignorer cette section et revenir plus tard si vous voulez apprendre la théorie.Pour ce projet, j’ai voulu faire un fader d’arc-en-ciel de strip LED RGB 15. Celle-ci sera éventuellement monté sur un cadre photo et monté sur le mur comme une humeur légère (dans une version ultérieure Instructable). Afin de changer la couleur de chaque bande, il faut rapidement augmenter/diminuer la luminosité des canaux RVB de chaque LED. Il y a plusieurs façons de le faire. Le moyen le plus efficace de le faire est par le biais de modulation de largeur d’impulsion (PWM). Cela peut ressembler à un bien grand mot, mais c’est en fait tout un concept facile à comprendre. Comme avec la plupart des LED, ces LED RGB bandes normalement ont deux options de couleur par canal: ON ou OFF (un peu comme ce moniteur sur la pomme j’ai de retour à l’école primaire). Mais que se passe-t-il si nous avons décidé de rapidement éteindre la LED puis encore une fois, plusieurs fois par seconde ? Il s’avère que le œil humain perçoit encore le LED, mais nous ne le vois pas activer ou désactiver. Il est simplement moins prometteur. C’est le concept de base du PWM. En le faisant tourner sur et reparti et à des taux très rapides, le œil humain ne pouvait pas être le plus sage pour déterminer si la LED est allumée ou éteinte ! Il semble tout simplement comme s’il effectue un fondu entre les niveaux de luminosité.
Si nous faisions canal rouge de la première LED en fondu c’est couche verte, il ressemblerait il s’estompe du rouge, à l’orange, au jaune et au vert. Si nous l’avons fait avec son canal bleu, bientôt nous avons toutes les couleurs de l’arc-en-ciel, mais nous aurions seulement il se fanent chaque couleur de l’arc-en-ciel sur une bande de LED RGB. Maintenant que se passe-t-il si nous l’avons fait en synchrone avec toutes les LED RGB bandes ? C’est le Shift Registers où entrent en jeu.
Car toutes les communications numériques fonctionnent avec 1 et de 0 (haut et bas ou ON et OFF), nous avons besoin d’un moyen de dire à chacun des fils se tourner activé ou désactivé et assez rapidement. Heureusement, le registre à décalage a été conçu à cet effet. Fondamentalement, nous dire l’Arduino, une chaîne de 1 et de 0 et il nourrit d’eux dans les registres à décalage. Lorsqu’un registre à décalage est plein, il passe les 8 premiers chiffres qui a été nourri à elle sur le prochain Registre, et ainsi de suite jusqu'à ce que tous les 6 registres dit quoi faire. Considérez-le comme une rangée de sièges dans une salle de cinéma. Quand quelqu'un entre en premier dans la ligne, ils vont jusqu’au dernier siège jusqu'à ce que chacun d’eux sont pleins. Lorsque de nouvelles personnes veulent un siège, la première personne ayant entré maintenant se lève et laisse (dans le registre à décalage suivant). Tout le monde se déplace ensuite sur une chaise et la nouvelle personne peut maintenant s’asseoir. Ceci est similaire à comment un changement de Registre œuvres. Nous pouvons parler à toutes les bandes de LED RVB de cette façon.
Mais alors comment faire ce travail au large de seulement 3 broches numériques de l’Arduino ? Pour en revenir à la rangée de sièges dans une comparaison de théâtre de film, nous savons que nous avons seulement besoin d’un câble pour envoyer 1 et de 0 pour le RGB LED strips (la ligne des personnes). Mais les registres à décalage besoin deux broches plus, un pour l’horloge et l’autre pour la goupille de verrouillage. Les broches de l’horloge est assez explicite. C’est essentiellement un moyen de dire le registre à décalage à quelle vitesse se passe des choses, beaucoup comme l’horloge de 16MHz raconte l’Arduino que c’est propre minutage. La goupille de verrouillage joue un rôle essentiel avec les registres à décalage. Il raconte le registre à décalage lorsque nous sommes prêts à écrire pour elle, et quand nous sommes fait écrire dessus. Sans telle une épingle, données voleraient sans cesse à la fin des lignes, tout comme nos patrons pauvres film si quelqu'un décidait de vapeur-charrue à travers le couloir. Ce serait tout aussi mauvais pour nos patrons de film car il serait pour l’électronique. Cette broche conserve les données dans le registre jusqu'à ce que nous sommes prêts à écrire dedans.
Mais qu’en est-il de ces ULN2803 ? Ce qui diable sont ces choses de toute façon ? Eh bien, malheureusement les LEDs RGB sur alimentation 12VDC et le registre à décalage fonctionne sur 5 Vcc. Pour contourner ces limitations, nous viendront enrichir 12VDC l’Arduino et l’accès par le biais de sa broche « Vin » pour alimenter les LED RGB et utiliser la Maj s’inscrit au contrôle de l’ULN2803 (qui sont comme des 8 transistors NPN Darlington entassés dans une seule puce glorieuse d’awesomeness!). La beauté de ceux-ci sont d’avoir un émetteur commun, c'est-à-dire si nous brancher une LED RVB qui possède une anode commune et branchez l’anode à + 12VDC et Branchez chaque cathode dans les collecteurs de l’ULN2803, puis lorsque nous les allumer avec les transistors il ferme le circuit et motifs les cathodes, rendant la LED s’allume. (* ouf * c’était une longue phrase.)
Assez de chit chat, nous avons une RainBoard à faire !