Come utilizzare il registro a turni 10HCOP 105 con Arduino

Come utilizzare il registro a turni 10HCOP 105 con Arduino

Tutte le schede Arduino sono dotate di un numero specificato di pin I/O e se ci sono un gran numero di dispositivi che devono essere collegati alla scheda Arduino, potrebbe sorgere il problema della carenza di pin. Per soddisfare questo problema ci sono registri di turno attraverso i quali possiamo aumentare il numero di pin I/O dell'Arduino. Come funzionano questi registri di turno e come possiamo usarli con Arduino, scopriamo:

Come funzionano i registri del turno

Come descritto sopra, il registro a turni viene utilizzato principalmente per risolvere la carenza di pin del microcontrollore nel caso in cui un gran numero di dispositivi deve essere interfacciato con il microcontrollore. Il registro a turni sposta i dati da un bit a un altro rispetto agli impulsi dell'orologio del registro e i dati che spostano sono archiviati in esso. Esistono tre pin principali del registro a turni: uno è il pin di clock, il secondo è il pin di chiusura e il terzo è il pin di dati.

La configurazione del pin di un singolo registro a turni (74HC595) è riportata di seguito nella tabella:

Categoria dei pin (dal lato sinistro di Grove) Numeri di pin Rappresentazione Descrizione
Pin di output 1-7 e 15 Q1 a Q7, Q0 Pin in cui il dispositivo deve essere interfacciato con il controller
Pin di potenza 8 e 16 GND, VCC Pin che accenderanno il registro a turni
Ingresso seriale 14 (DS) Serin PIN che riceve i dati dal controller attraverso la comunicazione seriale
Abilita output 13 Oe Questo pin è basso quando la tensione è alta e viceversa
Pin chiavistello 12 (ST_CP) RCLK Quando questo pin è alto, i dati vengono inviati ai pin di output e vengono anche memorizzati nella memoria
Pin dell'orologio 11 (SH_CP) Pin dell'orologio per il registro di cambio
RESET PIN 10 (Sh_cp) srclr Pin Utilizzare per ripristinare il registro dandogli uno stato basso
Interfaccia di altri registri 9 Q7s (QH ') Quando devono essere utilizzati più di uno registri, questo pin viene utilizzato

Utilizzo del registro a turni con Arduino

Per spiegare come possiamo usare il registro a turni con Arduino abbiamo dimostrato un esempio di collegamento di più LED con Arduino Uno attraverso un registro a turni. Ecco l'elenco dei componenti che abbiamo usato in questo esempio:

  • Breadboard
  • Collegamento dei fili
  • 8 LED
  • Arduino Uno
  • 74HC595 Shift Register

Abbiamo progettato il circuito usando i componenti sopra elencati e il suo schema è riportato di seguito:

Assemblaggio hardware per l'utilizzo del registro Shift con Arduino Uno

Per vedere come sarà il circuito sulla breadboard, abbiamo fatto per la prima volta il gruppo hardware come nell'immagine qui sotto:

Per la tua comprensione abbiamo spiegato le connessioni dei componenti utilizzati nei circuiti:

  • Il filo viola mostra la connessione del pin di dati del registro di cambio con Arduino utilizzando il suo pin 4.
  • Il filo bianco rappresenta la connessione per il perno del chiavistello con Arduino Uno che è collegato al suo pin 5 mentre il filo marrone viene utilizzato per collegare l'orologio del registro a turni con Arduino usando il suo pin 6.
  • Per collegare i LED con il registro a turni abbiamo usato i fili grigi e la messa a terra dei LED viene eseguita utilizzando i fili neri.
  • Per il collegamento del registro a turni con l'alimentazione abbiamo utilizzato l'opzione a 5 volt dell'Arduino dai suoi pin di alimentazione.

Codice Arduino per l'utilizzo del registro Shift con Arduino Uno

Per utilizzare Shift Register con Arduino dobbiamo configurarlo programmando il microcontrollore, quindi di seguito abbiamo fornito il codice:

int latch = 5; // pin 5 di Arduino per il pin di chiusura del registro
clock int = 6; // pins 6 di Arduino per il pin di orologio del registro di cambio
int data = 4; // pin 4 di Arduino per il pin di dati del registro a turni
byte led = 0; // variabile che salverà il valore dei LED
void setup ()

// Assegnazione delle modalità di lavoro ai pin di Shift Register
pinMode (latch, output);
pinMode (dati, output);
pinMode (clock, output);

void loop ()

LED = 0; // All'inizio tutti i LED rimarranno fuori dallo stato
Shiftregister (); // Accendi il LED successivo
ritardo (500);
per (int i = 0; i < 8; i++) // loop that will turn the LED one by one

bitset (LED, i); // Assegnazione del rispettivo LED i valori elevati
Shiftregister (); // disattivare il LED precedente
ritardo (500);


// funzione che aggiornerà il registro dopo ogni iterazione di per loop
void shiftregister ()

DigitalWrite (latch, basso);
shiftut (dati, clock, lsbfirst, LED);
DigitalWrite (fermo, alto);

Dimostrazione hardware

Abbiamo implementato il circuito progettato per l'interfacciamento del registro a turni 74HC595 con Arduino Uno secondo il gruppo hardware che abbiamo descritto in precedenza. Per dimostrare come abbiamo trasformato i LED in uno schema che abbiamo dato la GIF animata di seguito:

Conclusione

I registri a turni vengono utilizzati principalmente quando dobbiamo aumentare i pin I/O dei microcontrollori in modo da poter interfacciarsi più dispositivi con esso. Per dimostrare come possiamo usare il registro a turni, interfacciamo 8 LED con il microcontrollore Arduino solo usando i suoi 3 pin. Per ulteriori chiarimenti abbiamo dato lo schema dei circuiti e la sua implementazione di hardware insieme allo schizzo Arduino utilizzato per programmare il controller.