28 ottobre 2011

1 - Arduino multiplexer/demultiplexer




Definizioni:
MULTIPLEXER = dispositivo in grado di selezionare un singolo segnale elettrico fra 2^n segnali d'ingresso.
DEMULTIPLEXER = dispositivo in grado di selezionare una singola uscita fra 2^n uscite disponibili.
Componenti Utilizzati:
Arduino UNO, multiplexer 16 channel, 16 led, computer

Descizione:
In questo caso ho usato il dispositivo in funzione di demultiplexer servendomi solamente di 5 pin digitali di Arduino, per poter comandare 16 led!
Attraverso 1 pin di arduino indico il segnale d'uscita (HIGH o LOW) mentre con gli altri 4 pin scelgo in che uscita far arrivare il segnale:

ARDUINO -> DEMULTIPLEXER -> LED
   0-0-0-0   ->         uscita 0;             ->   1
   0-0-0-1   ->         uscita 1;             ->   2
   0-0-1-0   ->         uscita 2;             ->   3
   0-0-1-1   ->         uscita 3;             ->   4
   0-1-0-0   ->         uscita 4;             ->   5            
   0-1-0-1   ->         uscita 5;             ->   6
   0-1-1-0   ->         uscita 6;             ->   7
   0-1-1-1   ->         uscita 7;             ->   8
   1-0-0-0   ->         uscita 8;             ->   9
   1-0-0-1   ->         uscita 9;             ->   10
   1-0-1-0   ->         uscita 10;           ->   11
   1-0-1-1   ->         uscita 11;           ->   12
   1-1-0-0   ->         uscita 12;           ->   13
   1-1-0-1   ->         uscita 13;           ->   14
   1-1-1-0   ->         uscita 14;           ->   15
   1-1-1-1   ->         uscita 15;           ->   16

Osservazioni: 
Nello sketch che trovate qui sotto, è possibile scegliere quale led accendere mandando dei caratteri ad Arduino tramite monitor seriale:

il carattere  "\"  corrisponde al led 1;
                  "0"  corrisponde al led 2;
                  "1"  corrisponde al led 3;
                  "2"  corrisponde al led 4;
                  "3"  corrisponde al led 5;
                  "4"  corrisponde al led 6;
                  "5"  corrisponde al led 7;
                  "6"  corrisponde al led 8;
                  "7"  corrisponde al led 9;
                  "8"  corrisponde al led 10;
                  "9"  corrisponde al led 11;
                  "Q"  corrisponde al led 12;
                  "W"  corrisponde al led 13;
                  "E"  corrisponde al led 14;
                  "R"  corrisponde al led 15;
                  "T"  corrisponde al led 16;

Usando la funzione multiplexer è possibile leggere il valore di 16 input analogici servendosi solamente di 5 pin di Arduino: 4 pin serviranno sempre per scegliere il canale da leggere tra i 16 disponibili, mentre, il pin usato precedentemente per trasmettere il segnale HIGH o LOW ai led, ora lo si usa per leggere il valore dei sensori, basterà quindi collegarlo ad un pin analogico di Arduino ed usare la funzione "analogRead(pin)" per rilevare il valore trasmesso dal input (per esempio un sensore di temperatura).

Sketch Arduino:



Nessun commento:

Posta un commento