Come Collegare Il Registro A Scorrimento Ad Arduino

Sommario:

Come Collegare Il Registro A Scorrimento Ad Arduino
Come Collegare Il Registro A Scorrimento Ad Arduino

Video: Come Collegare Il Registro A Scorrimento Ad Arduino

Video: Come Collegare Il Registro A Scorrimento Ad Arduino
Video: Usare un registro a scorrimento shift register con Arduino - #48 2024, Maggio
Anonim

In uno dei precedenti articoli abbiamo già brevemente accennato all'utilizzo di un registro a scorrimento, in particolare il 74HC595. Diamo un'occhiata più da vicino alle capacità e alla procedura per lavorare con questo microcircuito.

Registro di spostamento 74HC595
Registro di spostamento 74HC595

Necessario

  • -Arduino;
  • - registro a scorrimento 74HC595;
  • - fili di collegamento.

Istruzioni

Passo 1

Il registro a scorrimento 74HC595 e simili vengono utilizzati come dispositivi per convertire i dati seriali in paralleli e possono anche essere utilizzati come "latch" per i dati, mantenendo lo stato trasferito.

Il pinout (pinout) è mostrato nella figura a sinistra. Il loro scopo è il seguente.

Q0… Q7 - uscite dati parallele;

GND - massa (0 V);

Q7' - uscita dati seriale;

^ MR - reset master (attivo basso);

SHcp - ingresso dell'orologio del registro a scorrimento;

STcp - ingresso a impulsi di clock "latch";

^ OE - abilitazione uscita (attivo basso);

Ds - ingresso dati seriale;

Vcc - alimentazione +5 V.

Strutturalmente, il microcircuito è realizzato in diversi tipi di casi; Userò quello mostrato nella figura a destra - l'output - perché è più facile da usare con una breadboard.

Aspetto e piedinatura del registro di spostamento
Aspetto e piedinatura del registro di spostamento

Passo 2

Vorrei ricordare brevemente l'interfaccia seriale SPI, che utilizzeremo per trasferire i dati al registro a scorrimento.

SPI è un'interfaccia seriale bidirezionale a quattro fili alla quale partecipano un master e uno slave. Il master nel nostro caso sarà Arduino, lo slave sarà il registro 74HC595.

L'ambiente di sviluppo per Arduino ha una libreria integrata per lavorare sull'interfaccia SPI. Quando lo si applica, vengono utilizzate le conclusioni contrassegnate nella figura:

SCLK - Uscita orologio SPI;

MOSI - dati da master a slave;

MISO - dati da slave a master;

SS - selezione dello schiavo.

Pin SPI standard della scheda Arduino
Pin SPI standard della scheda Arduino

Passaggio 3

Mettiamo insieme il circuito come in foto.

Collegherò anche un analizzatore logico a tutti i pin del microcircuito del registro a scorrimento. Con l'aiuto di esso, vedremo cosa sta succedendo a livello fisico, quali segnali stanno andando dove e capiremo cosa significano. Dovrebbe assomigliare alla foto.

Schema di cablaggio per il registro a scorrimento 74HC595 ad Arduino
Schema di cablaggio per il registro a scorrimento 74HC595 ad Arduino

Passaggio 4

Scriviamo uno schizzo come questo e carichiamolo nella memoria di Arduino.

La variabile PIN_SPI_SS è una costante standard interna che corrisponde al pin "10" di Arduino quando viene utilizzata come master dell'interfaccia SPI che stiamo usando qui. In linea di principio, potremmo anche usare qualsiasi altro pin digitale su Arduino; quindi dovremmo dichiararlo e impostarne la modalità operativa.

Alimentando questo pin LOW, attiviamo il nostro registro a scorrimento per la trasmissione/ricezione. Dopo la trasmissione, aumentiamo nuovamente la tensione su HIGH e lo scambio termina.

Uno schizzo per dimostrare il funzionamento del registro a scorrimento
Uno schizzo per dimostrare il funzionamento del registro a scorrimento

Passaggio 5

Mettiamo in funzione il nostro circuito e vediamo cosa ci mostra l'analizzatore logico. La vista generale del diagramma di temporizzazione è mostrata in figura.

La linea tratteggiata blu mostra 4 linee SPI, la linea tratteggiata rossa mostra 8 canali di dati paralleli del registro a scorrimento.

Il punto A sulla scala temporale è il momento in cui il numero "210" viene trasferito al registro a scorrimento, B è il momento in cui viene scritto il numero "0", C è il ciclo che si ripete dall'inizio.

Come puoi vedere, da A a B - 10,03 millisecondi e da B a C - 90,12 millisecondi, quasi come abbiamo chiesto nello schizzo. Una piccola aggiunta in 0, 03 e 0, 12 ms è il tempo per il trasferimento dei dati seriali da Arduino, quindi non abbiamo esattamente 10 e 90 ms qui.

Diagramma temporale dello scambio Arduino e registro a scorrimento 74HC595
Diagramma temporale dello scambio Arduino e registro a scorrimento 74HC595

Passaggio 6

Diamo un'occhiata più da vicino alla sezione A.

In cima c'è un lungo impulso con cui Arduino avvia la trasmissione sulla linea SPI-ENABLE - selezione dello slave. A questo punto iniziano a essere generati gli impulsi di clock SPI-CLOCK (seconda riga dall'alto), 8 pezzi (per il trasferimento di 1 byte).

La riga successiva dall'alto è SPI-MOSI, i dati che trasferiamo da Arduino al registro a scorrimento. Questo è il nostro numero "210" in binario - "11010010".

Dopo il completamento del trasferimento, al termine dell'impulso SPI-ENABLE, vediamo che il registro a scorrimento ha impostato lo stesso valore sulle sue 8 gambe. L'ho evidenziato con una linea tratteggiata blu e ho etichettato i valori per chiarezza.

Impostazione del numero 210 su un bus parallelo tramite SPI
Impostazione del numero 210 su un bus parallelo tramite SPI

Passaggio 7

Ora rivolgiamo la nostra attenzione alla sezione B.

Ancora una volta, tutto inizia con la scelta di uno slave e la generazione di 8 impulsi di clock.

I dati sulla linea SPI-MOSI sono ora "0". Cioè, in questo momento scriviamo il numero "0" nel registro.

Ma fino al completamento del trasferimento, il registro memorizza il valore "11010010". Viene emesso ai pin paralleli Q0.. Q7 e viene emesso quando ci sono impulsi di clock nella linea dall'uscita parallela Q7 'alla linea SPI-MISO, che vediamo qui.

Impostazione del numero 0 su un bus parallelo tramite SPI
Impostazione del numero 0 su un bus parallelo tramite SPI

Passaggio 8

Abbiamo quindi studiato in dettaglio il problema dello scambio di informazioni tra il dispositivo master, che era l'Arduino, e il registro a scorrimento 74HC595. Abbiamo imparato come collegare un registro a scorrimento, scrivere dati in esso e leggere dati da esso.

Consigliato: