8x8 LED Matrix Animations (12 / 14 étapes)

Étape 12 : Matériel le module 1 - clavier

j’ai aimé les animations aléatoires que je pourrais appeler, mais pour le parti j’ai voulu la remplacer et mis sur une animation particulière seulement et pas le changer. C’est pourquoi le premier Add-on-un clavier pour permettre une animation particulière d’être sélectionné.

Problème avec ceci est que nous n’avons que 3 entrées gauche sur l’Arduino, donc en utilisant un clavier dans sa voie normale ne fonctionnera pas. Donc après quelques recherches ici et sur internet, j’ai trouvé une solution pour utiliser uniquement une seule entrée pour détecter quel bouton a été enfoncé.

Lire cet excellent instructable sur comment détecter les broches sur le fil de votre clavier et howto jusqu'à seulement utiliser une seule entrée. Une fois que j’avais construire la matrice de la résistance, j’ai branché la sortie du clavier à la broche A2. J’ai utilisé une maquette tandis que l’essai de ce matériel. Aussi, j’ai soudé broches d’en-tête pour le clavier donc je peux déconnecter vers et à partir de la maquette plus facile. aussi, lorsque je construis le circuit final, tout est modulaire et peut être facilement branché.

C’est pourquoi j’ai ajouté trois déclarations suivantes juste sous les définitions du tableau
int keyboardPin = A2 ;
int keyboardValue = 0 ;
keypressed int = 0 ;

Puis j’ai ajouté la fonction suivante pour me permettre de lire dans laquelle la touche a été enfoncée sur le clavier. Notez que mes valeurs sont différents de l’instructable ci-dessus car j’ai utilisé des valeurs de résistance différente.

void readkeyboard() {}
keypressed = 0 ;
keyboardValue = analogRead(keyboardPin) ;
Si (keyboardValue < 25) {keypressed = -1;}
Si ((keyboardValue >25) & & (keyboardValue < 45)) {keypressed = 1;}
Si ((keyboardValue >45) & & (keyboardValue < 80)) {keypressed = 2;}
Si ((keyboardValue >80) & & (keyboardValue < 160)) {keypressed = 3;}
Si ((keyboardValue >162) & & (keyboardValue < 253)) {keypressed = 4;}
Si ((keyboardValue >253) & & (keyboardValue < 361)) {keypressed = 5;}
Si ((keyboardValue >361) & & (keyboardValue < 479)) {keypressed = 6;}
Si ((keyboardValue >479) & & (keyboardValue < 585)) {keypressed = 7;}
Si ((keyboardValue >585) & & (keyboardValue < 715)) {keypressed = 8;}
Si ((keyboardValue >715) & & (keyboardValue < 760)) {keypressed = 9;}
Si ((keyboardValue >839) & & (keyboardValue < 880)) {keypressed = 10;}
Si ((keyboardValue >760) & & (keyboardValue < 839)) {keypressed = 11;}
Si ((keyboardValue >880) & & (keyboardValue < 1000)) {keypressed = 12;}
Delay(50) ;
}

Cette fonction fonctionne en détectant quelle touche a été enfoncée basé sur la valeur sur l’axe d’entrée de clavier et puis en définissant la keypressed variable globale à un nombre qui correspond à cela.

La fonction de boucle est ensuite modifiée pour lire comme ça

void loop() {}
int randnumber = 0 ;
readkeyboard() ;
Si (keypressed > 0 & & keypressed < 12) {}
manualEffect = 1 ;
prevKeyPressed = keypressed ;
pour (int x = 0; x < 2; x ++) {}
(*funcAnimate[keypressed]) ();
Delay(1) ;
}
} ElseIf (keypressed = 12) {}
manualEffect = 0 ;
Laisser la boucle parcourent à nouveau et l’instruction else finale fonctionnera alors un effet aléatoire
comme le manualEffect a été remis à zéro
} else if (manualEffect = 1) {}
pour (int x = 0; x < 2; x ++) {}
(*funcAnimate[prevKeyPressed]) ();
Delay(1) ;
}
} else {}
randnumber = random(0,2) ;
pour (int x = 0; x < 2; x ++) {}
(*funcAnimate[randnumber]) ();
Delay(1) ;
}
}
}
Cela fonctionne en lisant la valeur de clavier.

Puis un si instruction vérifie pour voir si une touche a été enfoncée entre 0 et 11
Si cela est vrai alors il définit manualeffect à 1 et exécute ensuite l’effet choisi.
Si la touche dièse a été enfoncée, puis il sera mis manualeffect à 0, alors la boucle temporelle suivante est exécutée car aucune touche et manualeffect est définie sur 0, alors, un effet aléatoire est exécuté
Puis l’instruction If vérifie si manualeffect est égal à 1. Cela se produit si une touche a été enfoncée précédemment et a commencé un effet manuel en cours d’exécution. Cela nous permet de continuer à jouer l’effet manuel choisi précédemment.  Cet effet manuel continuera à fonctionner jusqu'à ce que l’autre touche
L’instruction else finale s’exécute si manualeffect est défini sur 0, ce qui va se passer lorsque l’appareil est allumé ou lorsque la touche aléatoire. Un effet aléatoire sera exécuté.

L’ajustement final à l’esquisse est d’ajouter la fonction suivante

void dummy() {}

Puis dans le tableau des fonctions de changement de lire comme ça

funcAnimate [0] = mannequin ;
funcAnimate [1] = MakeSadSmileFace ;
funcAnimate [2] = MakewinkingFace ;

Puis modifiez le randNumber = random(0,2) ; pour randnumber = random(1,3) ;

Ces changements signifient que lorsque le clavier est enfoncé à la fonction à la position 0 de la matrice n’est jamais exécuté en raison des affectations de variables. Pour nous il suffit d’ajouter une fonction factice il qui ne fait rien. Nous avons aussi changé le randNumber être affecté un nombre aléatoire de recommencer de 1, donc le tableau position 0 n’est jamais exécutée.

Le schéma complet est en dessous.

Articles Liés

Effet de flammes avec un 8 x 8 LED Matrix et ATMega328

Effet de flammes avec un 8 x 8 LED Matrix et ATMega328

il y a quelque temps j'ai trouvé quelques messages de blog expliquant comment utiliser une matrice de LED en pendentif (http://hackaday.com/2013/01/10/8x8-led-matrix-pendant-sealed-in-a-block-of-epoxy/ et https://sites.google.com/site/tinymatrix/ ).
Pong avec 8 x 8 Led Matrix sur Arduino

Pong avec 8 x 8 Led Matrix sur Arduino

jeu Pong créé avec 8 x 8 Led Matrix sur Arduino Diecimila (microcontrôleur Atmel ATMega 168). Pour plus d'informations http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino
Arduino Bi-color LED Matrix Flappy oiseau jeu basé

Arduino Bi-color LED Matrix Flappy oiseau jeu basé

Nous avons construit un certain projets en utilisant les kits Bi-color (rouge et vert) LED Matrix Module pilote de jolliFactory et ont publié leur comme instructables ici. Chacun de ces modules utilise deux MAX7219 Display Driver ICs pour piloter une
Rond LED Matrix - 340 Pixels x WS2801

Rond LED Matrix - 340 Pixels x WS2801

340 morceaux de pixels WS2801 avec LED RGB 12mm ont été utilisés pour créer un simple à assembler RGB LED matrice/écran. Tout genre de cher, ils sont extrêmement faciles à monter, câbler et au contrôle. Ce type de chipset pixel WS2801 a été choisi po
Horloge LED Matrix Arduino 32 X 16

Horloge LED Matrix Arduino 32 X 16

J'ai trouvé un très joli jouet de l'affaire.Je pensais essayer de faire une très jolie horloge avec les jouets de l'affaire.Malheureusement, très joli jouet de l'affaire est introuvable seul.Défaillance n'est pas autorisé * _ *Étape 1: Matériaux/comp
Arduino basé jeu de Pong Bi-color LED Matrix

Arduino basé jeu de Pong Bi-color LED Matrix

Nous avons créé deux projet de jeu instructables jusqu'en utilisant les kits Bi-color LED Matrix Driver Module SLT jolliFactory que nous avons conçu. Ce module LED Matrix est conçu pour pouvoir chain-donc vous pouvez chaîner les modules ensemble au n
Arduino basé Bi-color LED Matrix Snake Game

Arduino basé Bi-color LED Matrix Snake Game

Nous avons démontré comment un Arduino basé jeu de Tetris Bi-color LED Matrix peut être construit dans notre dernière instructable. Nous étions tout à fait surprenant il a été présenté à la page d'accueil de Instructables et lui ont valu une poignée
Arduino basé Bi-color LED Matrix Game of Life

Arduino basé Bi-color LED Matrix Game of Life

Jeu de la vie de Conway n'est pas un jeu de classique. C'est le plus connu automate cellulaire à deux dimensions créée par le mathématicien John Horton Conway en 1970.Il se joue sur une grille à deux dimensions de cellules. Une cellule peut être mort
Voix d’entrée Arduino Bi-color LED Matrix défilement affichage texte (Bluetooth + Android)

Voix d’entrée Arduino Bi-color LED Matrix défilement affichage texte (Bluetooth + Android)

Tout en naviguant sur des projets intéressants à Instructables, nous sommes tombés sur l'impressionnante voix activée Arduino (Bluetooth + Android) instructable. Vous pouvez consulter il àRécemment, nous avons mis en place une instructable pour const
7 affichage du texte de défilement Bi-color LED Matrix

7 affichage du texte de défilement Bi-color LED Matrix

Ici, nous montrons comment un Bi-color 7 8 x 8 LED Matrix Scrolling Text Display est construite, dans laquelle messages et commandes peuvent être envoyées à lui via Bluetooth à l'aide d'un téléphone intelligent Android. Logiquement, tout appareil cap
Arduino basé Bi-color LED Matrix Audio Spectrum Visualizer

Arduino basé Bi-color LED Matrix Audio Spectrum Visualizer

Après que nous sommes arrivés avec le kit de Bi-color LED Matrix Driver Module, nous avons recherché de projets intéressants de travailler avec elle.Pourrait vous intéresser dans certains de ces projets, que nous avons mis en à instructables à l'aide
Son activé 4 X 7 RGB LED Matrix

Son activé 4 X 7 RGB LED Matrix

cette instructable est sur un son activés RGB Led Matrix fabriqué à partir de RVB Led et maison maintiennent les articles. Les utilisations de la matrice de LED trois compteurs binaire de 4 bits et un décalage de 4-bits s'inscrire (pour les fils de t
Table basse de LED Matrix

Table basse de LED Matrix

quelques photos de la construction de mon contrôlé par Arduino 8 x 8 LED matrix LED table basse.
Arduino basé Bi-color LED Matrix Tetris Game

Arduino basé Bi-color LED Matrix Tetris Game

L'un de l'électronique DIY kit jolliFactory est venu vers le haut avec est le Bi-color LED Matrix Driver Kit de Module. Ce module est conçu pour chaîne-en sorte que vous pouvez chaîner les modules ensemble au nombre de modules dont vous avez besoin e