Sommario:

Contatore utilizzando il MAX7221: 4 passaggi
Contatore utilizzando il MAX7221: 4 passaggi

Video: Contatore utilizzando il MAX7221: 4 passaggi

Video: Contatore utilizzando il MAX7221: 4 passaggi
Video: Matrice Led 8x8 Arduino Tutorial: Creare Scritte Scorrevoli e Blink! 2024, Novembre
Anonim
Contatore utilizzando il MAX7221
Contatore utilizzando il MAX7221

Creazione di un contatore che aumenta quando viene premuto un pulsante utilizzando il MAX7221.

Passaggio 1: parti

MAX7221 o MAX7219

Interruttore

4 Display a 7 segmenti (catodo comune)

2 resistori: 10k e 9.53k (ho usato un 9.1k e funziona ancora)

Arduino

Passaggio 2: costruzione del circuito

Costruire il circuito
Costruire il circuito
Costruire il circuito
Costruire il circuito
Costruire il circuito
Costruire il circuito

Ho annotato solo i pin che ho usato, puoi trovare il layout completo dei pin sul datasheet o l'ho allegato. Assicurati di cercare il tuo display a 7 segmenti perché probabilmente sarà diverso dal mio, ma la procedura è la stessa.

1. Collegare le cifre 0 - 3 sul MAX7221 alle cifre 1 - 4 sul display. La cifra MAX 0 si collega alla cifra 1 dei display, ecc. I display sono semplicemente non convenzionali e iniziano da 1 anziché da 0.

2. Collegare i segmenti A - G sul MAX7221 ai segmenti A - G sul display.

3. Alimentare e mettere a terra il MAX. VCC va al pin 19. Anche il resistore da 10k è collegato ai pin 19 e 18. La massa va ai pin 4 e 9.

4. Il MAX7221 comunica con Arduino tramite SPI (Serial Peripheral Interface). In questo caso sono necessari solo 3 fili perché non sto usando MISO (Master In Slave Out). Sul MAX7221 collega il pin 1 (Din) all'Arduino, nel mio caso ho usato il pin 12. Questo è il tuo MOSI (Master Out Slave In) o i dati. Il pin 12 sul MAX è CS (Chip Select Input) ed è il modo in cui i dati vengono caricati nello Shift Register, l'ho collegato al pin 9 su Arduino. L'ultima connessione è CLK che è il pin 13 del MAX, l'ho collegato al pin 10 dell'Arduino.

Assicurati di fornire alimentazione e messa a terra tramite Arduino utilizzando 5 volt. Mi sono imbattuto nel problema in cui il mio Arduino non dava abbastanza potenza alla mia scheda.

Questo è per la scheda tecnica MAX7221. Anche da dove vengono le immagini.

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

Passaggio 3: l'interruttore

L'interruttore
L'interruttore

Ho cablato l'interruttore dallo schema sopra. Trovato su

Ho usato il pin 8 su Arduino per controllare l'interruttore e un resistore da 10k.

Passaggio 4: codice

Ho usato la libreria LedControl.h trovata su GitHub e il loro codice di base per accendere il MAX7221. Ho quindi modificato il codice per contare da 0 a 9999 quando viene premuto il pulsante.

#include "LedControl.h"

pulsante int = 8;

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

void setup() {

pinMode(pulsante, INGRESSO);

lc.shutdown(0, falso); // MAX7221 è in modalità di risparmio energetico, quindi dobbiamo riattivarlo

lc.setIntensity(0, 15); // Impostazione della luminosità, max 15

lc.clearDisplay(0); // cancellazione del display

}

ciclo vuoto(){

int state = digitalRead(pulsante);

int i = 0;

intj = 0;

intk = 0;

intl = 0;

mentre(1){

stato = digitalRead(pulsante);

while(stato == 1){

stato = digitalRead(pulsante);

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

io++;

ritardo(100); // puoi scherzare con questo

se(io == 10){

io = 0;

j++;

se(j == 10){

j = 0;

k++;

se(k == 10){

k = 0;

l++;

if(l == 10){

mentre(1){

lc.setRow(0, 0, 0x3E); // quando il display ha raggiunto 9999 visualizzerà U -- 1

lc.setRow(0, 1, 0x1); // In valore decimale esadecimale

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

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

}

}

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

}

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

}

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

}

}

}

}

Consigliato: