Table des matières:

Matrice LED de bouton-poussoir : 4 étapes
Matrice LED de bouton-poussoir : 4 étapes

Vidéo: Matrice LED de bouton-poussoir : 4 étapes

Vidéo: Matrice LED de bouton-poussoir : 4 étapes
Vidéo: #5 ARDUINO Chenillard de Led 2024, Novembre
Anonim
Matrice de LED de bouton-poussoir
Matrice de LED de bouton-poussoir

Ce projet peut être considéré comme un autre projet d'introduction Arduino qui est légèrement plus avancé que votre projet typique de « clignotement d'une LED ». Ce projet intègre une matrice de LED, des boutons-poussoirs, des registres à décalage (qui peuvent enregistrer des broches sur votre carte Arduino) et un concept clé appelé multiplexage. J'espère que vous trouverez le tutoriel instructif et que vous vous mettrez au défi de l'améliorer !

Fournitures

(1x) Arduino Uno

(5x) Boutons-poussoirs tactiles

(2x) condensateurs 0,1 uF

(2x) 1 uF Condensateurs

(8x) 1k Résistances

(5x) 10k Résistances

(2x) 74HC595 registres à décalage

Fils de cavalier

Fil noir

Cable rouge

Étape 1: Étape 1: Création d'une matrice LED

Étape 1: Création d'une matrice LED
Étape 1: Création d'une matrice LED
Étape 1: Création d'une matrice LED
Étape 1: Création d'une matrice LED
Étape 1: Création d'une matrice LED
Étape 1: Création d'une matrice LED

Le tutoriel que j'ai utilisé pour fabriquer la matrice LED 8x8 dans ce projet peut être trouvé ici. Il existe des configurations courantes pour une matrice LED:

a) Anode de rangée commune

b) Cathode à rangée commune

Puisque j'ai utilisé l'arrangement Common Row Cathode de la matrice, je vais principalement en discuter ici et vous pouvez étendre la même logique à l'arrangement Common Row Anode. Dans l'arrangement de cathode à rangée commune, les cathodes des LED (ou les bornes négatives qui sont la branche la plus courte d'une LED) sont connectées ensemble en rangées tandis que les anodes (ou les bornes positives qui sont la branche la plus longue d'une LED) sont connectées ensemble en colonnes. Pour adresser une LED particulière, tirez la rangée de cathodes où la cathode LED est basse et tirez la colonne d'anode que l'anode LED est haute.

Remarque: lors de la création de la matrice de LED illustrée dans le lien ci-dessus, assurez-vous de connecter les colonnes d'anode aux résistances de 1 k ohm avant d'appliquer une quelconque tension aux LED.

Étape 2: Étape 2: Câblage des boutons-poussoirs et des registres à décalage

Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage
Étape 2: Câblage des boutons-poussoirs et des registres à décalage

Le câblage des boutons-poussoirs et des registres à décalage est illustré ci-dessus. Je voudrais noter que les registres à décalage dans le schéma de circuit n'affichent pas les broches de masse (broche 8 du CI) et Vcc ou d'alimentation (broche 16 du CI) pour les puces; la broche de masse est connectée à la broche GND de la carte Arduino et Vcc est connectée à la broche 5V de la carte Arduino. La broche Vcc de chaque registre à décalage est également connectée à un condensateur de 0,1 uF connecté à la masse.

Remarque: les sorties de chaque registre à décalage sont répertoriées comme QA à QH (ignorer QH*). Ils sont répertoriés du bit le moins significatif (LSB) (pour QA) au bit le plus significatif (MSB) (pour QH), c'est-à-dire que QA contrôlerait la 0ème ligne ou colonne, etc.

Étape 3: Étape 3: Téléchargement du code

Le code pour contrôler la matrice LED est joint à ce tutoriel. J'ai essayé de commenter autant de code que possible afin que le fonctionnement du programme soit très clair. La base principale du programme est qu'il y a une matrice qui garde une trace des LED qui doivent être allumées ou éteintes. Pour que les différentes LED s'affichent correctement sans allumer accidentellement des diodes indésirables, il faut utiliser un concept appelé multiplexage. Le multiplexage allume essentiellement des LED individuelles dans une rangée particulière tandis que toutes les autres LED dans d'autres rangées, puis font de même pour les rangées restantes. L'astuce est que si les LED parcourent les rangées assez rapidement, vos yeux peuvent dire que les rangées individuelles sont allumées une à la fois. Si vous souhaitez explorer d'autres façons de tromper vos yeux avec des LED, vous voudrez peut-être vous pencher sur le concept de persistance de la vision (facilement consultable sur Google ou Instructables).

La façon dont les colonnes d'anodes et les rangées de cathodes sont mises à jour se fait via une fonction définie par l'utilisateur appelée « UpdateShiftRegisters ». Cette fonction active d'abord la broche de verrouillage, qui contrôle si un nouvel octet (8 bits) est envoyé à la sortie, à un niveau bas, de sorte qu'aucune modification des sorties n'est possible pendant que de nouveaux bits sont écrits sur la puce. Ensuite, en utilisant une fonction Arduino intégrée appelée « ShiftOut », qui gère spécifiquement l'envoi de données aux registres à décalage, le programme écrit la ligne (cathode) qui serait basse et les colonnes (anodes) qui devraient être hautes. Enfin, la goupille de verrouillage est tirée vers le haut afin de mettre à jour la sortie (les LED).

Étape 4: Informations/ressources supplémentaires

Voici quelques liens vers des sites Web ou des livres qui peuvent donner des informations supplémentaires concernant ce projet:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/en/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

Premiers pas avec Arduino, 2e édition par Massimo Banzi

Conseillé: