Étape 7: Envoi d’octets vers une matrice de LED multiplexé
Jusqu'à présent, le code que nous avons utilisé pour envoyer des données la LED est un peu maladroit d’écrire. Il a impliqué assignant explicitement un État haut ou bas pour chacune des broches Arduino connectés à une colonne. Si nous voulions la matrice pour afficher un motif différent pour chacune de ses 8 lignes de programme, nous aurons à écrire beaucoup de ligne de code. Voici une façon d’organiser les choses :
Rappelez-vous comment nous avons utilisé un nombre compris entre 0 et 255 (un octet) pour définir les États de 8 LED connectée à la 595 ? Maintenant, j’ai ajouté une fonction appelée setStates() qui nous permet de régler les États de 8 LEDs dans chaque ligne de la matrice de LED à l’aide d’un octet. La première action de setStates vous accueille tous les pins reliés aux colonnes de matrice de LED faible pour éteindre les LEDs qui pourraient être sur. Il vérifie ensuite chaque chiffre binaire de l’octet de 8 chiffres à l’aide de l' opérateur &; Si un des chiffres est 1, il définit la broche correspondante haute.
Le code ci-dessus définit la ligne connectée à la broche numérique 8 en utilisant le numéro 56. En binaire, 56 est représenté par :
00111000
Et le résultat de LED est montré dans la première image ci-dessus, vous pouvez voir que chaque 1 du nombre binaire correspond à une LED dans la matrice.
Ensuite, essayez chaque ligne de la matrice de LED pour afficher le numéro de la broche numérique il est attaché à de la programmation :
La sortie s’affiche dans la deuxième image ci-dessus.