Taula de continguts:

Comptador amb MAX7221: 4 passos
Comptador amb MAX7221: 4 passos

Vídeo: Comptador amb MAX7221: 4 passos

Vídeo: Comptador amb MAX7221: 4 passos
Vídeo: КАК НАСТРОИТЬ L4D2 2024, Juliol
Anonim
Comptador amb el MAX7221
Comptador amb el MAX7221

Creació d’un comptador que s’incrementa quan es prem un botó amb el MAX7221.

Pas 1: parts

MAX7221 o MAX7219

Interruptor

4 Pantalla de 7 segments (càtode comú)

2 resistències: 10k i 9.53k (he utilitzat un 9.1k i encara funciona)

Arduino

Pas 2: Construir el circuit

Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit

Només he escrit els pins que he utilitzat, podeu trobar el disseny complet del pin al full de dades o l’he adjuntat. Assegureu-vos de buscar la pantalla de 7 segments perquè probablement serà diferent de la meva, però el procediment és el mateix.

1. Connecteu els dígits 0 - 3 del MAX7221 als dígits 1 - 4 de la pantalla. El dígit MAX 0 es connecta al dígit 1 de la pantalla, etc. Les pantalles no són convencionals i comencen per 1 en lloc de 0.

2. Connecteu els segments A - G del MAX7221 als segments A - G de la pantalla.

3. Alimentació i connexió a terra del MAX. VCC va al pin 19. La resistència de 10 k també està connectada al pin 19 i 18. La terra va als pins 4 i 9.

4. El MAX7221 es comunica amb l'Arduino mitjançant SPI (Serial Peripheral Interface). En aquest cas, només es necessiten 3 cables perquè no estic fent servir MISO (Master In Slave Out). Al MAX7221 connecteu el pin 1 (Din) a l'Arduino, en el meu cas he utilitzat el pin 12. Aquest és el vostre MOSI (Master Out Slave In) o les dades. El pin 12 del MAX és CS (entrada de selecció de xip) i és com es carreguen les dades al registre de majúscules, ho vaig connectar al pin 9 de l’Arduino. L'última connexió és CLK, que és el pin 13 del MAX, ho vaig connectar al pin 10 de l'Arduino.

Assegureu-vos de subministrar energia i terra a través de l’Arduino mitjançant 5 volts. Em vaig trobar amb el problema en què el meu Arduino no donava prou potència a la meva placa.

Això és per al full de dades MAX7221. També d’on van sortir les imatges.

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

Pas 3: el commutador

El canvi
El canvi

He connectat l'interruptor de l'esquema anterior. Es troba a

Vaig utilitzar el pin 8 de l’Arduino per controlar l’interruptor i una resistència de 10 k.

Pas 4: Codi

He utilitzat la biblioteca LedControl.h que es troba a GitHub i el seu codi bàsic per activar el MAX7221. Aleshores vaig modificar el codi per comptar del 0 al 9999 quan es prem el botó.

#include "LedControl.h"

botó int = 8;

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

configuració nul·la () {

pinMode (botó, INPUT);

lc.shutdown (0, false); // MAX7221 està en mode d'estalvi d'energia, de manera que l'hem de despertar

lc.setIntensity (0, 15); // Configuració de la brillantor, màxim 15

lc.clearDisplay (0); // neteja de pantalla

}

bucle buit () {

int state = digitalRead (botó);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

mentre (1) {

estat = DigitalRead (botó);

while (estat == 1) {

estat = DigitalRead (botó);

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

i ++;

retard (100); // podeu fer-ho amb això

if (i == 10) {

i = 0;

j ++;

if (j == 10) {

j = 0;

k ++;

if (k == 10) {

k = 0;

l ++;

if (l == 10) {

mentre (1) {

lc.setRow (0, 0, 0x3E); // quan la pantalla arribi a 9999, apareixerà U - 1

lc.setRow (0, 1, 0x1); // En valor decimal Hexi

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

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

}

}

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

}

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

}

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

}

}

}

}

Recomanat: