Arduino cible pratique (4 / 5 étapes)

Étape 4: affichage

La partie suivante est une explication détaillée de la façon de mettre en place les écrans utilisés dans le projet.

Dans cette section, nous avons utilisé quatre 8 x 8 matrices de LED de OOLOUT.com. Chacun dispose de 128 LED. C’est 512 LED. Se détendre ; Nous utilisons seulement la moitié d'entre eux. Les matrices sont bicolores avec LED rouge et verte. Nous avons choisi d’utiliser les rouges. Une autre grande chose est que les lignes et les colonnes ont été faites pour communes. Les rails de la colonne se comportent comme l’anode et les rails de la ligne se comportent comme des cathodes. Pour allumer une seule LED connecter le rail de la ligne pour 5Volts via la résistance et le rail de colonne correspondant à la masse. Par exemple, lumière led en ligne 2 et la colonne 6.

Lorsque la matrice est remise un coin que se trouvent un minuscule 1 qui correspond à la broche 1 sur la matrice.

Le « matrixone.jpg » montre la matrice, son NIP et où le 1 est imprimé sous la matrice. Le second schéma dans l’image décrit quelle broche contrôle chaque rail. Notez que nous avons sélectionné les LED rouges donc nous utilisons les broches 2,5,8,11,14,17,20,23 pour les colonnes. Si nous utilisions de la LED verte nous utiliserions broches 1,4,7,10,13,16,19,22 mais le rail de la ligne reste la même.
Comme le montre le schéma chaque colonne et chaque ligne a une épingle désignée. Dans « matrixtwo.jpg », les colonnes et les lignes ont été numérotées afin d’éviter toute confusion supplémentaire. Donc si vous voulez allumer la Led dans la colonne 6 et la rangée 2 connecter le circuit in"step3.jpg".

Un simple guide de matrice est disponible sur le site Web OOMLOUT. Dans le guide ils ont connecté les broches de rang de matrice par l’intermédiaire de résistances de 1K sur les broches de l’Arduino d’e/s et directement branché les colonnes et les broches de l’Arduino. Dans l’exemple de programme fourni, ils ont utilisé une fonction appelée « showsprite » qui se met en marche toutes les LED dans une colonne, un par un les virages eux tout au loin. Ensuite, il répète le processus pour la colonne suivante et ainsi de suite. Cela peut sembler absurde, mais ceci est fait pour réduire le courant tiré de l’Arduino. Vu qu’il traite si vite, même si les LEDs sont allumées colonne par colonne, tout se passe tellement vite que le œil humain, l’image apparaît aussi constante.

Dans l’exemple précédent, pour une matrice, nous avons utilisé un total de 16 broches, et donc, si nous devions utiliser les 4 matrices nous utiliserions 64 broches. Dont nous n’avons pas, alors la seule solution consiste à utiliser des registres à décalage.

Registres à décalage: (74HC595) "step5.jpg"

Exemples de programmes sont disponibles sur le site de l’Arduino pour obtenir une compréhension de base du comment Maj enregistre les travaux mais je ferai de mon mieux pour le résumer.

Le registre à décalage accepte les données comme un train d’impulsions de 8 bits. Pour permettre le registre à décalage accepter des données, nous envoyons un creux d’entrée sur sa broche de verrouillage. Les données sont envoyées à la broche de données et ensuite le verrou est fermé avec un sommet sur la broche de verrouillage. Afin de synchroniser l’Arduino et le changement de Registre nous envoyons l’horloge de l’Arduino au déplacement enregistre la broche horloge. Tout cela sera couvert à nouveau lors de l’explication du code.

Affichage sur une matrice en utilisant shift 2 registres :

Maintenant que nous pouvons envoyer des données d’un registre à décalage nous pouvons l’utiliser pour piloter la matrice. De notre compréhension plus tôt nous envoyer une contribution forte à la ligne et une faible contribution à la colonne pour allumer une LED.
Comme les registres ont 8 sorties chaque nous pouvons sélectionner une seule colonne en affectant les autres 1 et la colonne requise à 0. Puis envoyer les données spécifiques à cette colonne pour les ligne registres à décalage. Par exemple, si vous vouliez le modèle suivant : Registre à décalage 10101101 (indiqué dans l’image), vous pouvez envoyer le modèle pour le registre à décalage ligne et 11011111 à la colonne.

Maintenant que nous avons examiné comment le registre à décalage fonctionne avec une matrice, nous pouvons regarder comment l’appliquer pour enfoncer les 4 écrans. Le registre à décalage a 8 sorties et donc sa sortie peut être directement connectée à la matrice.

Nous sommes arrivés avec deux façons de le faire
Registre 1) ayant une ligne et colonne à décalage pour chacun des 4 écrans. La ligne de données est commune à tous comme Registre à seul décalage recevra des données à la fois. L’horloge est commun à tous les registres à décalage, comme ils doivent être synchronisés, et pourtant ils ont tous besoin de séparer verrous afin qu’ils peuvent être activés séparément. C’est pourquoi nous avons besoin d’un total de 10 quilles (8 loquets, 1 horloge et 1 données).
2) l’autre option pour réduire le nombre de quilles utilisé est d’avoir un décalage de colonne commune s’inscrire pour tous les écrans et que la ligne individuelle s’inscrit pour chaque matrice. Il s’agit de la méthode que nous avons choisi car elle a comporté un plus petit nombre de broches (5 broches de loquet, 1 données et 1 horloge).

Donc, essentiellement, nous pouvons envoyer données à chacun de la ligne s’inscrire et ensuite allument la colonne correspondante, à l’affichage 1 colonne chaque des matrices. Ce processus est à vélo et données s’affichent sur chaque écran à haute vitesse et par conséquent l’image apparaît constante sur tous les 4 écrans.

Dans l’Arduino, langage de programmation, un type spécial d’entier est disponible appelé un masque de bits qui vous permet d’écrire un nombre en binaire, par exemple "répertoire int = B11001010". Cela vous permet d’écrire ce que chaque ligne de l’écran devrait ressembler. En faisant un tableau de ces pour chaque colonne, que vous pouvez définir ce qui ressemble à un écran pour chaque caractère qui doit être affiché. Pour stocker chaque caractère et ses colonnes, nous utilisons un tableau de pointeurs qui pointent à l’emplacement en mémoire le personnage, afin qu’il soit plus facile d’accès.

Pour afficher sur un écran, nous avons besoin d’envoyer des données vers le changement souhaité s’inscrire en utilisant la fonction prédéfinie d’Arduino :
"digitalwrite (latchrow, basse) ; Pour définir le loquet du registre requis Maj faible.
shiftOut (datapin, clockpin, MSBFIRST, Rowmsk1) ; “
Le changement de fonction envoie des données vers le registre à décalage. La première entrée est le numéro pin d'où données sont envoyées de l’arduino, puis le code pin de l’arduino que l’horloge est envoyé, ensuite le format dans lequel les données sont envoyé, dans ce cas il est d’abord le bit le plus significatif. La dernière entrée est un nombre entier (au format normal ou masque de bits) longueur qui est les données envoyées vers le registre à décalage de 8 bits.
"digitalWrite (latchrowone, HIGH) ; Cette fonction redéfinir le loquet sur élevé une fois que les données ont été envoyées. »

Nous avons besoin afficher le temps nécessaire pour atteindre une cible et par conséquent nous devons recevoir le temps comme une entrée de type entier long, la convertit en chaîne afin que nous puissions trouver le caractère correspondant à chaque écran.

Ceci est fait en utilisant le constructeur de chaîne, une fonction disponible qui convertit un entier Long en une chaîne contenant chaque chiffre. Chaîne « timeString = String(123456,DEC); "
fait! timeString = {1,2,3,4,5,6}; ".

Nous utilisons un switch case pour sélectionner quel tableau de masque binaire pour afficher, puis envoyez-le à la fonction d’affichage à la sortie elle aussi l’écran.

Articles Liés

Arduino Nerf cible pratique

Arduino Nerf cible pratique

Arduino + 2 servos + laserAllumez-le et les servos se déplacent à une position aléatoire et tourner sur la cible du laser. Vous avez 2 secondes pour le frapper avant qu'il s'éteint et se déplace vers une nouvelle position aléatoire. Postes de servo s
LEGO Micro-Manager cible pratique

LEGO Micro-Manager cible pratique

LEGO aimant sur le point d'être âgé de 9 ans ayant son anniversaire party à la maison et qui veulent une fête avec un tas d'autres 8/9 ans (plus sa sœur âgée de 6 an). Thème est bien sûr les Lego. Déchiraient l'arrière-cour pour créer un parcours d'o
MakeyMakey Build nuit--Cible pratique

MakeyMakey Build nuit--Cible pratique

Nous avons été assez chanceux pour accrocher une janvier Instructables MakeyMakey constituer le Kit. Nous avons obtenu 5 kits de MakeyMakeyet pensé que nous étions dans la ville de graisse. Notre climat est devenue une réalité. Nos deux premières nui
Star Trek cible pratique

Star Trek cible pratique

Original ici : http://tsjwang.blogspot.com/2013/09/star-trek-target-practice.htmlJe suppose que je regardais un peu trop Star Trek avec mon frère. J'ai décidé de faire un phaser.Certains d'entre vous le savent qu'il existe plusieurs types de phaseurs
K ' NEX pistolet cible pratique (HD)

K ' NEX pistolet cible pratique (HD)

Salut.Juste une vieille vidéo.
Vue d’ensemble de l’Arduino croquis téléchargement des processus et des FAI

Vue d’ensemble de l’Arduino croquis téléchargement des processus et des FAI

Vous pouvez télécharger le logiciel à un Arduino à l'aide de deux méthodes. Vous pouvez entendre sur les deux méthodes communément appelé programmation ISP et FTDI ou télécharger serial. Je recommande d'apprendre et de devenir à l'aise avec l'utilisa
BRICOLAGE cibles réactives pour la plupart des matériaux recyclés.

BRICOLAGE cibles réactives pour la plupart des matériaux recyclés.

Si vous êtes comme moi et profiter de tir à votre domaine vital (ou back yard/sous-sol, peu importe) vous avez obtenu sans doute fatigué de s'arrêter pour mettre en place des cibles toutes les quelques minutes, ou en essayant de trouver cet équilibre
Arduino ISP - LOG

Arduino ISP - LOG

Arduino ISP - Connectez-vousDonc ce Geek vieux paresseux (LOG) a eu beaucoup de mal à obtenir le bootload Arduino Atmega les puces.Je ne pouvais pas un de ces pour travailler avec Arduino UNO Rev3.http://Arduino.cc/en/Tutorial/ArduinoISPhttp://letsma
Comment faire pour télécharger le croquis à Pro Micro/Leonardo via bluetooth serial

Comment faire pour télécharger le croquis à Pro Micro/Leonardo via bluetooth serial

À l'aide de Optiboot bootloader avec Arduino axée sur les ATmega32U4 télécharger des sketches via le matériel UART et module Bluetooth au lieu de l'USBExpansion de l'ordre de faire ici :http://Makezine.com/Projects/DIY-Arduino-Bluetooth-Programming-S
BeDazzler : Armes non létales DIY

BeDazzler : Armes non létales DIY

Notre premier projet open source Homeland Security arme non létale - le "THE BEDAZZLER: A libre-service poche LED-Incapacitator".Après avoir assisté à une conférence où le $ 1 million "flashlight de mal de mer" (nommé "THE DAZZLER
Infra rouge veste Code

Infra rouge veste Code

cette instructable est sur le code et les dispositifs utilisés pour le gilet infra-rouge. La couture que vous avez inventer vous-même !Cette veste montre les codes infrarouges qui sont nous bombarder tout le temps dans les chambres. L'infrarouge est
Sharp Tip Darts

Sharp Tip Darts

ces fléchettes sont fabriqués spécifiquement pour et seulement pour 1) cibler pratique (pas de cibles vivantes)2) étalonnage étendues laser aim pointeur etc..Étape 1: Ce que vous aurez besoin (Dart par 1)1) élite 1 nerf dart (voir photo)2) punaise3)
Logiciel pour la conception solaire. Aidez-nous à améliorer l’explication.

Logiciel pour la conception solaire. Aidez-nous à améliorer l’explication.

C'est travail ! 2august 2009 et le dernier fichier de scène est wfunnelandotherstiltedforward et est disponible pour le téléchargement et amélioration ci-dessoushttp://blip.TV/file/2429375/ est le dernier comment sur l'utilisation de l'art du logicie
Course d’obstacles de LEGO - pour les enfants

Course d’obstacles de LEGO - pour les enfants

En préalable Instructables que j'ai décrit la raison pour laquelle je faisais une Course d'obstacles de Lego. En fait, mon fils a eu sa fête d'anniversaire 9 ans à la maison. Il aime Legos. Et je veux dire qu'il les aime vraiment. Donc, pour son anni