Étape 2: multiplexage
L’image dans cette étape montre un groupe de 9 LEDs, 3 lignes et 3 colonnes. Les lignes et les colonnes n’importent pas de quel ordre ils sont dans ou celui qui est l’anode/cathode, mais le matériel doit correspondre le logiciel ! Dans le cas de l’image, la ligne est la « dominante » sur la colonne. J’entends par c’est si vous regardez les étapes, une ligne est activée alors que certaines colonnes sont définies pour alimenter les LEDs. Comment cela se fait ? Eh bien selon le code que vous avez besoin de faire un "dominante" je fais cela en ayant une fonction de ligne qui appelle une fonction de colonne chaque fois que la ligne change.
Depuis lors, il y a 3 étapes et au final des images dit « what you see », comment ça marche ? Eh bien, si le changement est une réalité disons tous 1ms puis le œil humain ne peut pas dire la différence, de la même manière un taux de rafraîchissement ou images par second ouvrage sur un téléviseur. Donc vraiment qu’une seule ligne de LEDs sont allumées en même temps, mais à l’oeil ils semblent tous être sur à la fois.
Ratio de multiplexage améliore encore plus lorsque vous ajoutez des lignes et des colonnes plus ! que vous voulez un écran de 16 par 16, c'est-à-dire 256 LEDs. Avec multiplexage qui est 16 rangs, 16 colonnes donc 32 broches pour contrôler 256 LEDs ! 32 est encore beaucoup de broches numériques (Arduino a seulement 12...) mais c’est où vous pouvez utiliser des registres à décalage à utiliser encore moins épingles.
Maintenant, cela apparaître un problème, afin de regarder constamment cette image, sur que le code doit continuer à changer les lignes toutes les quelques ms donc toutes les lignes semblent être. Si des choses comme les retards ne peuvent servir avec multiplexage. Arduino code semble malheureusement s’appuient fortement sur les retards... La solution ? Utilisez l’un de l’Atmega328s Timer/compteurs, dans mon dernier exemple, vous pouvez voir le code pour implémenter un des timers.