Le registre à décalage 74HC164 et votre Arduino (8 / 9 étapes)

Étape 8: Projet 3 [pt 2]: affichage à matrice de led 4 x 4 « 2 fils »

La Maj inscrire des contrôles tant l’anode et la cathode des LEDs dans un YX format, regardez à ce qui suit

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

Articles Liés

Contrôle d’affichage LCD ATTiny45/85 avec un registre à décalage, programmé dans l’Arduino

Contrôle d’affichage LCD ATTiny45/85 avec un registre à décalage, programmé dans l’Arduino

Arduino en cours d'exécution sur un ATTiny45 de puce 85 est un gain de coût énorme pour les mini projets. Toutefois, vous impossible de connecter un écran compatible HD44780 comme vous avez besoin de 6 sorties, mais vous n'avez que 5. Ce problème peu
Premiers pas avec le traitement et Arduino (contrôler le registre à décalage d’ordinateur)

Premiers pas avec le traitement et Arduino (contrôler le registre à décalage d’ordinateur)

Hey encore une fois ! J'ai quelques pièces, alors j'ai décidé de commencer le bâtiment virtuel ! J'ai eu le traitement sur mon ordinateur, mais je n'avais jamais utilisé, car i´m juste un étudiant et je don´t savoir Java du tout. Tout d'abord, j'ai d
Conduite de deux tubes Nixie avec un Arduino via un registre à décalage et deux SN74141s.

Conduite de deux tubes Nixie avec un Arduino via un registre à décalage et deux SN74141s.

tubes Nixie sont vraiment cool, à la recherche et deviennent très populaires pour leur look « rétro ». Bien qu'il existe un certain nombre de tutoriels là-bas sur l'utilisation de tubes nixie et certaines unités préemballées sympa (voir ces gentils d
En utilisant une LED Dot Matrix avec un Arduino et un registre à décalage

En utilisant une LED Dot Matrix avec un Arduino et un registre à décalage

The Siemens DLO7135 Dot matrix LED est un étonnant morceau de l'optoélectronique. Il a présenté comme un 5 x 7 matricielle affichage Intelligent (r) avec mémoire/décodeur/conducteur. Avec cette mémoire, il a obtenu un affichage de ASCII caractères 96
Comment utiliser un registre à décalage - Arduino Tutorial

Comment utiliser un registre à décalage - Arduino Tutorial

Dans ce tutoriel, vous apprendrez comment utiliser un registre de décalage (ou série-parallèle contrôleur). Le registre à décalage donnera à votre Arduino un 8 sorties numériques supplémentaires, en utilisant seulement 3 points sur votre carteDans ce
Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Il s'agit de mon premier espoir instructable, que vous l'aimerez. J'ai été jouer avec LEDs pour un certain temps et j'ai réalisé que je suis assez bien limitée avec broches de l'Arduino et ne peut pas faire des projets énormes qui exige beaucoup d'ép
Arduino 8 * 8 Led Matrix pilote avec des registres à décalage de 2 * 74HC595

Arduino 8 * 8 Led Matrix pilote avec des registres à décalage de 2 * 74HC595

J'ai acheté une matrice de 8 x 8 Led y compris une carte de conducteur avec une puce MAX7219CNG. Malheureusement cette puce ne fonctionnait pas correctement. J'ai donc décidé de construire mon propre pilote avec l'aide de 2 registres à décalage 74HC5
Berlin horloge, Arduino Nano, DS1307 horloge en temps réel. Registre à décalage 8 bits 74HC595N.

Berlin horloge, Arduino Nano, DS1307 horloge en temps réel. Registre à décalage 8 bits 74HC595N.

Depuis un certain temps, j'ai voulu construire une horloge de Berlin. Je ne sais vraiment pas pourquoi ? J'aime juste la démarche « différente » pour dire l'heure.Alors, comment ça marche??Commençant par le bas il y a 4 jaune s'allume chaque lumière
Contrôleur de matrice de LED RVB Arduino 8 x 8 avec sonde de température et les registres à décalage 4

Contrôleur de matrice de LED RVB Arduino 8 x 8 avec sonde de température et les registres à décalage 4

La première moitié de cette vidéo d'enseignement montre qu'un projet fini d'un Arduino avec 4 registres à décalage (74HC595) utilisé pour contrôler et 8 x 8 matrice de LED RVB. Il y a aussi un capteur de température DS18B20 utilisé pour afficher la t
RegisterWrite - prolonger les sorties d’Arduino/microcontrôleur avec registres à décalage

RegisterWrite - prolonger les sorties d’Arduino/microcontrôleur avec registres à décalage

Registre Write est un exemple de programme pour prolonger les sorties de l'Arduino à l'aide d'un registre à décalage.J'ai écrit un simple croquis qu'utilisera 3 sorties de l'Arduino pour conduire le registre à décalage.J'ai écrit ce que je ne pouvais
TimeDuino - 7 Segment Arduino horloge (sans registres à décalage nécessaires!)

TimeDuino - 7 Segment Arduino horloge (sans registres à décalage nécessaires!)

Hé tous les amateurs instructable ! C'est mon premier projet. Oui, je sais que ces mots généralement obtenir le stéréotype « Cela ne va pas être un bon projet » attitude, mais j'ai attendu longtemps pour un projet qui mérite peut-être briser la premi
Comment utiliser un registre à décalage 74HC595 avec un AVR ATtiny13

Comment utiliser un registre à décalage 74HC595 avec un AVR ATtiny13

si vous avez joué avec des microcontrôleurs et de l'électronique, alors vous avez probablement vu des afficheurs à LED à matrice de points et autres projets qui utilisent des registres à décalage comme affichage à 7 segments et plus. Cette instructab
Tutoriel débutant : contrôler la matrice de LED avec 2 595 registres à décalage et POTENTIOMETRE

Tutoriel débutant : contrôler la matrice de LED avec 2 595 registres à décalage et POTENTIOMETRE

Je viens juste de commencer avec Arduino et les instructables d'amandaghassaei m'a beaucoup aidé. Dans son second tutorialabout entrées et sorties, elle explique comment utiliser des registres à décalage et comment contrôler une matrice de LED par mu
À l’aide d’un registre à décalage avec Raspberry Pi

À l’aide d’un registre à décalage avec Raspberry Pi

cette instructable va tenter de l'expliquer, en termes simples, ce qu'un changement de Registre est, et comment vous pouvez l'utiliser avec le Raspberry Pi pour étendre le port GPIO en exécutant huit sorties avec seulement quatre ports GPIO.Pour comm