💻 Introduzione
Nel precedente articolo sulla matrice di LED 1588BS ho anticipato che avrei provato ad inserire nel circuito uno shift register da 8 bit per provare come diminuire il numero di porte usate sull’Arduino per pilotare la matrice. Nello starter kit comprato su Banggood: UNO Basic Starter Learning Kit è presente un registro a scorrimento della Texas Instruments a 8 bit, modello SN74HC595N. Scrivo qui qualche appunto sul componente e sul suo utilizzo. Il datasheet ufficiale è scaricabile da qui: Data sheet ufficiale Texas Instrument
Caratteristiche del SN74HC595N
La parte in alto si riconosce da uno scanso semicircolare in prossimità del simbolo della Texas Instrument. La seguente tabella ne descrive i PIN di collegamento
| Nome | PIN di sinistra | PIN di destra | Nome |
|---|---|---|---|
| QB | 1 | 16 | VCC |
| QC | 2 | 15 | QA |
| QD | 3 | 14 | DATA |
| QE | 4 | 13 | OE |
| QF | 5 | 12 | LATCH |
| QG | 6 | 11 | CLOCK |
| QH | 7 | 10 | MR |
| GND | 8 | 9 | QH’ |
con la seguente descrizione
| Nome | PIN | Descrizione |
|---|---|---|
| QA - QH | 15,1-7 | Output da 0 a 7 |
| GND | 8 | Terra, polo negativo (-) |
| QH’ | 9 | Output per mettere in serie, in cascata un altro shift register, permettendoci ancora di aumentare il numero di output |
| MR | 10 | Master Reclear, da collegare al polo positivo se non si vuole il reset di tutto il registro |
| CLOCK | 11 | Clock o shift clock, serve per comunicare al registro quando abbiamo finito di inviare un bit |
| LATCH | 12 | Latch PIN o storage clock. Dopo aver inviato tutti gli 8 bit serve per comunicare al registro che abbiamo finito di inviare e che il registro può inviare tutti i segnali in output |
| OE | 13 | Output Enable, da collegare a terra per abilitare le porte |
| DATA | 14 | Input seriale dei dati. Serve per inviare un bit alla volta al registro |
| VCC | 15 | Input di tensione, polo positivo |
Utilizzo con 8 LED
Un interessante video che mostra la base di utilizzo del registro è visibile qui: https://www.youtube.com/watch?v=MRy47jCn3zA. Per approfondire l’argomento ho trovato invece molto interessante questo articolo https://lastminuteengineers.com/74hc595-shift-register-arduino-tutorial/. La prima prova è stata quindi quella di cablare all’Arduino 8 LED e il registro a scorrimento per ottenere questo effetto:

Il codice è disponibile su https://github.com/capitanfuturo/arduinoSalad/blob/master/006_8bit_shift_register/006_8bit_shift_register.ino
Utilizzo con una Matrice di LED 8x8
Prendendo spunto dall’esempio di prima l’idea è di usare lo stesso meccanismo per pilotare le colonne della nostra matrice LED 8x8 con il risultato seguente:
Il codice è disponibile su https://github.com/capitanfuturo/arduinoSalad/blob/master/007_8x8_plus_shift_register/007_8x8_plus_shift_register.ino
Le idee (memi) migliori sopravvivono per selezione culturale. Quindi sopravvivono alla competizione non le idee più forti, ma quelle che si adattano meglio. (Massimo Chiriatti)