Étape 2: Le registre à décalage
Le registre à décalage simple
Isolément, un registre à décalage simple vous obtient huit sorties pour le prix de trois I / S sur votre Arduino. C’est un circuit intégré qui nécessite l’alimentation et masse et prend 3 entrées de l’Arduino. Ces broches d’entrée (11,12,14) sont appelés respectivement le NIP de l’horloge, goupille de verrouillage et broche de données. De pins du Registre à décalage seize, huit sont sorties, qui peuvent être utilisés pour différents dispositifs de commande numérique. Les États de ces sorties sont déterminées en envoyant les données de registre de décalage. Compte tenu d’un octet de données du Registre à décalage se transformera ses huit sorties soit haute ou basse, 1 pour la grande, 0 pour « low ». L’Arduino utilise l’horloge et loquet épingles pour raconter la Maj quand s’inscrire pour recevoir des données et le moment de le traiter, alors la la fiche de données soit où les données sont réellement assurées. L’Arduino a construit dans la commande de rendre les données du Registre à décalage. Un tutoriel peut être trouvé ici : http://www.arduino.cc/en/Tutorial/ShiftOut. Connaissance de la commande de shiftOut décrite dans le tutoriel est importante, mais facilement résumées. La syntaxe est :
digitalWrite (latchpin ; FAIBLE) ; signaux de registre qu’il est sur le point de recevoir des données à décalage
shiftOut (dataPin, clockPin, MSBFIRST, données) ; envoie un octet nommé « données », en commençant par le bit le plus significatif.
digitalWrite (latchpin ; HAUTE) ; Registre pour traiter les données, désirés sorties de commutation à décalage des signaux.
Cette commande tout ça dire l’Arduino enverra quelque octet nous avons appelé « données » pour le registre à décalage. Le registre à décalage va prendre un octet et utiliser la valeur de la première mèche pour contrôler sa première sortie et ainsi de suite. La commande MSBFIRST dit le Ardunio qui bit d’envoyer en premier. Le bit de gauche est le plus important. Oui, à titre d’exemple, si données = 11111111, le registre à décalage va écrire toutes ses sorties à vif. Si données = 00000000, le registre à décalage va écrire toutes ses sorties au plus bas.
Plusieurs registres à décalage : La guirlande
Le pouvoir réel dans le registre à décalage vient de leur capacité à être reliés entre eux dans un guirlande. Si deux registres à décalage ont leur horloge broches et goupilles de verrouillage connectés, et nous communiquer les données sur la broche (9) du Registre à un décalage sur la broche de données (14) de l’autre, l’Arduino peut communiquer à la fois en série. De cette façon l’Arduino peut communiquer sur un nombre virtuellement illimité décaler les registres et autres dispositifs, toujours à l’aide de seulement trois j’ai / O du Si nous remplaçons notre seul octet, « données », par un tableau d’octets tels que : données [] = {a, b}; où un = 00000000 et b = 11111111, puis la commande shiftOut (dataPin, clockPin, MSBFIRST, données); donnera octets un deuxième Registre à décalage, et byte b pour le registre à décalage original. De cette façon une guirlande arbitrairement long fonctionne comme un tapis roulant. Le premier octet dans le tableau de données est le premier à déplacer sur et va directement à la première Registre à décalage, qui remet sur le prochain Registre à décalage et ainsi de suite jusqu'à la fin de la chaîne. Cela arrive à chaque octet, donc le dernier changement de Registre finit par recevoir le premier octet du tableau, tandis que le premier registre à décalage reçoit le dernier. Cela rend la chaîne des registres à décalage un excellent moyen de contrôler une série de 54 LED RGB en codage avec un Arduino.