Étape 8: Projet 3 [pt 2]: affichage à matrice de led 4 x 4 « 2 fils »
bit 1 = la colonne 1 (à droite)
bit 2 = colonne 2
bit 3 = colonne 3
bit 4 = colonne 4
bit 5 = ligne 1 (le plus haut)
bit 6 = 2ème rang
bit 7 = rang 3
bit 8 = ligne 4
Pour rendre une image dessiner un carré de 4 x 4 sur du papier quadrillé et remplir dans lesquels vous souhaitez afficher, puis faites une table YX. Ci-dessous, vous verrez un mappage pour une comparaison, bien mieux on peut faire sur 4x4 « pixels »
Pour chaque rempli à la section que j’ai écrire quelle colonne (Y), il se trouve, alors quelle ligne il est en (X)
Maintenant Ouvrez le fichier _4x4.pde dans l’arduino IDE, vous pourrez voir nos vieux 2 amis
#define données 2
#define horloge 3
puis un tableau d’entiers
int, [img] = {1,1,4,1,1,3,4,3,2,4,3,4} ;
Si vous regardez son juste coordonne une liste de mes YX écrit vers le bas, ce serait une grande douleur dans le cul pour convertir ces valeurs à la main et nous avons un ordinateur... laissez-le faire !
Aller là-bas est configuré Sub où nous faisons notre horloge et données de sorties
void setup()
{
pinMode (horloge, sortie) ; faire l’horloge à épingler une sortie
pinMode (données, sortie) ; faire de la broche de données un output3
}
Et une boucle Sub recherche déroutante, pour commencer les choses nous devez déclarer quelques variables locales
void loop()
{
int Y ;
int X ;
octet
Ensuite, une boucle for, cette boucle doit être aussi longtemps que le nombre d’entrées dans le tableau de l’img, pour cette image, j’ai utilisé seulement 6 pixels, ce qui fait 12 YX coordonnées. Je me fais sauter chaque autre chiffre en utilisant i += 2, car nous lisons 2 coordonnées par boucle
pour (int i = 0; j’ai < 12 ; j’ai += 2) / / nombre de points du tableau img, ce cas 12
{
Maintenant nous lire l’entery Y à [i] dans le tableau et soustraire un de sa valeur, car octets ne commencent pas à l’un, ils commencent à zéro, mais nous avons compté du 1er
obtenir la première paire de cordons YX
Y = (img [i] - 1) ; soustraire une valeur puisque le nombre de bits commence à 0
Ensuite nous avons lu le X entery [i + 1] dans le tableau et soustraire un de sa valeur, pour la même raison
X = (img [i + 1] - 1) ;
Après nous avons les valeurs YX du pixel, nous faire un peu au niveau du bit ou de mathématiques et de décalage vers la gauche.
Tout d’abord il faut lire la valeur de X, et quelle que soit sa valeur est quart-que de nombreux lieux + 4 à gauche, donc si X est 4 et ajouter 4 il est de type bit 8 (MSB), observant le graphique à nouveau...
bit 1 = la colonne 1 (à droite)
bit 2 = colonne 2
bit 3 = colonne 3
bit 4 = colonne 4
bit 5 = ligne 1 (le plus haut)
bit 6 = 2ème rang
bit 7 = rang 3
bit 8 = ligne 4
Bit 8 est la dernière ligne
Ensuite la valeur de Y est également décalée vers la gauche, cette fois juste par son auto, rien ajouté.
Enfin les deux sont opérateur or ensemble dans 1 octet au lieu de 2 demi octets (amuse-gueules), à l’aide au niveau du bit ou (le symbole | ) prend deux octets et fondamentalement les additionne, permet de supposer
X = 10000000
Y = 00000001
--------------------
RC = 10000001
ligne 4, colonne 1
sortir = 1 << (X + 4) | 1 << Y ;
Et enfin shiftOut pour afficher la photo en cours et continuer à faire que jusqu'à ce que nous n’avons pas davantage de données dans le tableau... retarder un moment et boucles pour toujours, puisque nous étions décalage des données vers la gauche et nous devons le MSB de l’être sur la dernière broche de sortie de la Maj Registre envoyer en premier.
shiftOut (données, horloge, MSBFIRST, out) ; décalage de l’octet à notre registre
Delay(1) ; Il retarder abit donc il a une chance de laisser une tache de lumière dans vos yeux
N’hésitez pas à faire vos propres images et les effets, il y a 3 fichiers d’exemple, le visage souriant et un damier (qui ressemble plus comme rayures) et enfin un fabricant sparkle aléatoire