Come già accennato in precedenti post in questi mesi sto svolgendo una serie di attività di prototipazione rapida di sistemi di rilevazione ambientale presso la facoltà di Agraria di Padova e l’esigenza di espandere la quantità di ingressi analogici di Arduino è una necessità reale che può essere superata agevolmente con pochissimi euro (per la precisione 1€ 🙂 ) utilizzando l’integrato 4051 Multiplexer/Demultiplexer analogico ad 8 canali in grado appunto di ampliare il numero di I/O di Arduino.
Esigenze di questo tipo si presentano spessissimo, ad esempio nel caso voi vogliate collegare più sensori analogici ad un ESP che dispone di un solo ingresso analogico, o più semplicemente andare oltre i 6 pin analogici di Arduino UNO R3, situazione che si presenta ad esempio nel caso in cui si stanno occupando i pin analogici A4 e A5 per la comunicazione I2C per altri dispositivi.
L’integrato 4051 viene realizzato da diverse aziende vi allego i datasheet corrispondenti alla versione prodotta da Philips e Texas Instruments, identici nelle funzionalità:
All’interno trovate tutte le indicazioni necessarie per poterlo usare che vi riassumo nelle righe che seguono.
Piedinatura dell’integrato
Dove:
- Z: pin input/output (connesso agli Input/Output Arduino )
- E: pin di enable (attivo basso, cioè attivo su LOW da connettere a GND)
- VEE: tensione di alimentazione negativa (da connettere a gnd)
- VSS: terra (0 V)
- A0-A1-A2: pin di selezione input (connessi a tre pin digitali di Arduino) – A0 bit meno significativo (LSB), A2 bit più significativo (MSB)
- Da Y0 a Y7: pin di inputs/outputs
- VDD: tensione di alimentazione positiva (da 3V a 5v)
Tabella di verità
Dalla tabella si evince che per poter far funzionare l’IC è necessario connettere E (Enable) a GND.
Il 4051 è un integrato in tecnologia CMOS dotato di 8 ingressi (nominati Y) che può accettare segnali analogici compresi tra 0V e 5 V, tali segnali possono essere selezionati mediante tre pin di selezione nominati: A0, A1, A2 ed inviati direttamente ad un pin analogico di Arduino per la successiva elaborazione.
La selezione del canale Y scelto (in altre parole del segnale analogico che si desidera leggere o scrivere) può essere fatta sfruttando lo stesso Arduino mediante 3 pin digitali, sui 3 pin si comporrà il numero binario corrispondente all’ingresso analogico Y scelto.
A titolo di esempio, ricordando che con tre bit possiamo rappresentare tutti i numeri tra 0 e 7 (2^0 = 1; 2^1 = 2; 2^2 = 4):
- Se A0 = 1, A1 = 1 e A2 = 0 allora l’uscita selezionata sarà la Y3
(2^1 + 2^1 + 2^0 = 2 + 1 + 0 = 3) - Se A0 = 1, A1 = 0 e A2 = 1 allora l’uscita selezionata sarà la Y5
(2^1 + 2^0 + 2^2 = 2 + 0 + 4 = 5)
Per chiarirne il funzionamento analizziamo le due modalità operative:
- Input: lettura di segnali analogici presenti sugli ingressi Y del 4051
- Output: invio di un segnale analogico su una delle 8 uscite Y del 4051
4051 usato come multiplexer con Arduino
Lettura di segnali analogici presenti sugli ingressi Y del 4051 Continua a leggere