Table des matières:

Compteur à l'aide du MAX7221 : 4 étapes
Compteur à l'aide du MAX7221 : 4 étapes

Vidéo: Compteur à l'aide du MAX7221 : 4 étapes

Vidéo: Compteur à l'aide du MAX7221 : 4 étapes
Vidéo: Interfacing of MAX7221 IC with AVR Microcontroller using SPI Protocol 2024, Juillet
Anonim
Compteur utilisant le MAX7221
Compteur utilisant le MAX7221

Création d'un compteur qui s'incrémente lorsqu'un bouton est enfoncé à l'aide du MAX7221.

Étape 1: Pièces

MAX7221 ou MAX7219

Changer

4 Affichage 7 segments (cathode commune)

2 résistances: 10k et 9.53k (j'ai utilisé un 9.1k et ça marche toujours)

Arduino

Étape 2: Construire le circuit

Construire le circuit
Construire le circuit
Construire le circuit
Construire le circuit
Construire le circuit
Construire le circuit

J'ai seulement noté les broches que j'ai utilisées, vous pouvez trouver la disposition complète des broches sur la fiche technique ou je l'ai jointe. Assurez-vous de rechercher votre affichage à 7 segments car il sera probablement différent du mien, mais la procédure est la même.

1. Connectez les chiffres 0 à 3 du MAX7221 aux chiffres 1 à 4 de l'écran. Le chiffre MAX 0 se connecte au chiffre 1 de l'affichage, etc. Les affichages ne sont tout simplement pas conventionnels et commencent à 1 au lieu de 0.

2. Connectez les segments A - G sur le MAX7221 aux segments A - G sur l'écran.

3. Alimentez et mettez à la terre le MAX. VCC va à la broche 19. La résistance de 10k est également connectée aux broches 19 et 18. La masse va aux broches 4 et 9.

4. Le MAX7221 communique avec l'Arduino via SPI (Serial Peripheral Interface). Dans ce cas, seuls 3 fils sont nécessaires car je n'utilise pas MISO (Master In Slave Out). Sur le MAX7221, connectez la broche 1 (Din) à l'Arduino, dans mon cas, j'ai utilisé la broche 12. Il s'agit de votre MOSI (Master Out Slave In) ou des données. La broche 12 du MAX est CS (Chip Select Input) et c'est ainsi que les données sont chargées dans le registre à décalage, je l'ai connectée à la broche 9 de l'Arduino. La dernière connexion est CLK qui est la broche 13 sur le MAX, je l'ai connectée à la broche 10 sur l'Arduino.

Assurez-vous de fournir l'alimentation et la terre via l'Arduino en utilisant 5 volts. J'ai rencontré le problème où mon Arduino ne donnait pas assez de puissance à ma carte.

Ceci est pour la fiche technique du MAX7221. Aussi d'où viennent les images.

www.mouser.com/datasheet/2/256/max7219-max…

Étape 3: Le commutateur

L'interrupteur
L'interrupteur

J'ai câblé l'interrupteur du schéma ci-dessus. Trouvé sur

J'ai utilisé la broche 8 de l'Arduino pour contrôler le commutateur et une résistance de 10k.

Étape 4: Coder

J'ai utilisé la bibliothèque LedControl.h trouvée sur GitHub et leur code de base pour activer le MAX7221. J'ai ensuite modifié le code pour compter de 0 à 9999 lorsque le bouton est enfoncé.

#include "LedControl.h"

touche int = 8;

LedControl lc=LedControl(12, 10, 9, 1);

void setup() {

pinMode(bouton, INPUT);

lc.shutdown(0, faux); // MAX7221 est en mode d'économie d'énergie, nous devons donc le réveiller

lc.setIntensity(0, 15); // Réglage de la luminosité, max 15

lc.clearDisplay(0); // effacement de l'affichage

}

boucle vide(){

état int = digitalRead (bouton);

entier je = 0;

entier j = 0;

entier k = 0;

entier l = 0;

tandis que(1){

état = digitalRead(bouton);

while(état == 1){

état = digitalRead(bouton);

lc.setDigit(0, 3, i, faux);

je++;

retard (100); // tu peux t'amuser avec ça

si(je == 10){

je = 0;

j++;

si(j == 10){

j = 0;

k++;

si(k == 10){

k = 0;

l++;

si(l == 10){

tandis que(1){

lc.setRow(0, 0, 0x3E); // lorsque l'affichage atteint 9999, il affichera U -- 1

lc.setRow(0, 1, 0x1); // En valeur décimale Hexi

lc.setRow(0, 2, 0x1);

lc.setDigit(0, 3, 1, faux);

}

}

lc.setDigit(0, 0, l, false);

}

lc.setDigit(0, 1, k, faux);

}

lc.setDigit(0, 2, j, faux);

}

}

}

}

Conseillé: