Uscite digitali aggiuntive

Ciao a tutti,
sto ampliando il mio progetto su Arduino UNO e le uscite digitali a disposizione non mi bastano più.

Le 4 uscite digitali rimaste di Arduino dovrebbero pilotare 8 device simultaneamente (fra led, relè, lampade ed altro).

Pensavo di usare un demultiplexer 3to8 (tipo 74HC237) in questo modo: delle 4 uscite, ne userei 3 per l'indirizzamento (3 bit quindi 8 valori/uscite selezionabili) ed 1 per i dati (HIGH o LOW).

La logica sarebbe: indirizzo 3 (011) dato HIGH; a questo punto avrei l'uscita 3 a livello HIGH ma tutte le altre sarebbero a livello LOW.

Qui sta il problema; a me serve che le altre uscite (tutte tranne la 3) mantengano il loro stato precedente.

Come posso introdurre una sorta di "memoria di stato" delle uscite ? Ci sarà un unico integrato che fa tutto questo ?

Grazie :slight_smile:

Roberto

cerca shifregister

se hai dei pin analogici che non usi puoi usarli come pin digitali :slight_smile:

puoi usare dei Shift Register vedi hc595 https://www.arduino.cc/en/Tutorial/ShiftOut
Oppure dei Port Expander con interfaccia I2C (2 pin A4 e A5) oppure SPI (pin 11,12,13 e un altro ) vale sempre per Arduino UNO.
I pin di questi port expander possono essere programmati come entrate o uscite.
Ciao Uwe

Ho visto un po il funzionamento dei Shift Register 74HC595 e la funzione ShiftOut di Arduino ... mi si è aperto un mondo !!!

Problema RISOLTO :slight_smile:

Grazie a tutti

Solo una cosa, per evitare lo sfarfallio dei relè collegati allo shift (flickering):

  1. Inizializzazione del SR prima possibile al poweron
  2. Gestire l' OE (output enable)

Ciao