Go Down

Topic: chip 74hc4051 (Read 5028 times) previous topic - next topic

ZioZio

ciao a tutti..
vorrei un informazione.. io ho bisogno di 2 chip 4051 perchè mi servono 16 uscite, e vorrei usare lo stesso pin analogico.. o meglio non ho più pin digitali e quindi vorrei sapere anche se mi basta solo usare 2 pin analogici e le stesse uscite digitali per entrambi i chip.. in rete e sul forum non ho trovato nulla o forse non ho cercato le parole adatte.. riuscite ad indirizzarmi su qualche tutorial o schema, anche per la programmazione per cortesia? grazie..

p.s.da questa domanda avrete sicuramente capito che non sono una cima in elettronica e quindi un autodidatta alle prime armi..

SukkoPera

Rileggi quel che hai scritto, lo trovi comprensibile? :o


Perché vorresti usare per forza un pin analogico come uscita quando non ha alcuna funzione particolare ed è uguale a qualunque altro pin, anche i digitali? Le funzioni analogiche sono solo attive se i pin usati come ingressi.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

brunello22

in effetti è un pò confuso.....

Quote
io ho bisogno di 2 chip 4051 perchè mi servono 16 uscite
Ok, e questa si è capita, solo che il 4051 ha bisogno di almeno 3 porte per gestirlo ed e' senza Latch, quindi cosa ci devi gestire con queste 16 porte ?

ZioZio

16 potenziometri devo gestirci..
questo è il mio primo progetto e mi sà che mi sono spinto un po troppo oltre il limite..
allora ricapitolando:
questo chip usa 3 pin digitali ed un analogico, siccome io ho occupato tutti i digitali mentre degli analogici solo uno ne ho usato, ora non so come devo muovermi su due chip, per questo ho chiesto se si può usare i 3 digitali per entrambi i chip anche se uso 2 pin analogici differenti, dato che non son riuscito a capire come metterlo in "serie" come con i chip in digitale che ha una pin out per usare più chip.. magari non ho capito quale sia il pin out in questo chip..


SukkoPera

#4
Jun 10, 2016, 03:34 pm Last Edit: Jun 10, 2016, 03:39 pm by SukkoPera
Forse dovresti imparare a spiegarti un po' meglio, prima di tutto.

Comunque, forse abbiamo capito: invece di usare un 4051 perché non provi con un 4067? Ha 16 ingressi/uscite, che puoi selezionare con 4 pin.

Se può servirti, ho anche fatto una libreria per gestire questi device: https://github.com/SukkoPera/Arduplex.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

brunello22

#5
Jun 10, 2016, 03:37 pm Last Edit: Jun 10, 2016, 03:37 pm by Brunello
Quote
16 potenziometri devo gestirci..
Vero, sorry, avevo in mentre un'altro IC

Quote
questo chip usa 3 pin digitali ed un analogico, siccome io ho occupato tutti i digitali mentre degli analogici solo uno ne ho usato, ora non so come devo muovermi su due chip, per questo ho chiesto se si può usare i 3 digitali per entrambi i chip anche se uso 2 pin analogici differenti, dato che non son riuscito a capire come metterlo in "serie" come con i chip in digitale che ha una pin out per usare più chip.. magari non ho capito quale sia il pin out in questo chip.
Per collegare due 4051 ti servono ( se usi due ingressi analogici , uno per chip ) solo 3 digitali in totale.
In pratica puoi mettere gli ingressi S0, S1, S2 di ogni chip in parallelo, quando poi fai la lettura sai tu da quale chip leggere, se da 1 a 8, quello collegato su A0, se da 9 a 16 quello collegato su A1

ZioZio

Vero, sorry, avevo in mentre un'altro IC
Per collegare due 4051 ti servono ( se usi due ingressi analogici , uno per chip ) solo 3 digitali in totale.
In pratica puoi mettere gli ingressi S0, S1, S2 di ogni chip in parallelo, quando poi fai la lettura sai tu da quale chip leggere, se da 1 a 8, quello collegato su A0, se da 9 a 16 quello collegato su A1

grazie, era quello che volevo capire..

Comunque, forse abbiamo capito: invece di usare un 4051 perché non provi con un 4067? Ha 16 ingressi/uscite, che puoi selezionare con 4 pin.

hai ragione, solo che già avevo comprato il 4051 quando ho visto il 4067.. finisco questi e compro il 4067

icio

#7
Jun 13, 2016, 03:53 am Last Edit: Jun 13, 2016, 04:07 am by icio
Con 2 4051 puoi fare un 4097 e aggiungendo un NOT , ma anche no ...un 4067,  senza avere quella patata da 24pin.      Il 4051 ha avuto un successo molto superiore al 4067, puoi dislocare più facilmente sul PCB a gruppi di 8 in/out, lo trovi ovunque e a poco. Da averlo sempre in casa.

Nello schema al posto del NOT puoi mettere un transistor oppure pilotare i 2 ingressi INH con il MC separatamente


SukkoPera

#8
Jun 13, 2016, 08:10 am Last Edit: Jun 13, 2016, 08:11 am by SukkoPera
A me questo non sembra così scomodo:
http://s.aliexpress.com/MNniUNny
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

ZioZio

ho messo 2 chip 4051.. sto scrivendo il codice, ma forse sbaglio qualcosa..
posso postarlo qui oppure devo metterlo nella sezione software?

gpb01

#10
Jun 20, 2016, 02:35 pm Last Edit: Jun 20, 2016, 02:36 pm by gpb01
posso postarlo qui oppure devo metterlo nella sezione software?
No, no, continua in questo thread ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

Posta pure qua, ma valuta anche di usare la mia libreria.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

ZioZio

#12
Jun 20, 2016, 03:00 pm Last Edit: Jun 20, 2016, 06:33 pm by ZioZio
A0 e A1 sono i pin Analogici per i due chip e 11,12,13 i digitali..

Code: [Select]
int potenziometro = 0;
int contatore = 0;

int bit1 = 0;
int bit2 = 0;
int bit3 = 0;
int bit4 = 0;
int bit5 = 0;
int bit6 = 0;
int bit7 = 0;
int bit8 = 0;

void setup() {
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}

void loop() {

for ( contatore = 0 ; contatore = 7 ; contatore++ ); {

bit1 = bitRead(contatore, 0);
bit2 = bitRead(contatore, 1);
bit3 = bitRead(contatore, 2);
bit4 = bitRead(contatore, 3);
bit5 = bitRead(contatore, 4);
bit6 = bitRead(contatore, 5);
bit7 = bitRead(contatore, 6);
bit8 = bitRead(contatore, 7);

digitalWrite(2, bit1);
digitalWrite(3, bit2);
digitalWrite(4, bit3);
digitalWrite(5, bit4);
digitalWrite(6, bit5);
digitalWrite(7, bit6);
digitalWrite(8, bit7);
digitalWrite(9, bit8);

potenziometro = analogRead(A0);
Serial.print(potenziometro);
Serial.print("");
}
Serial.println ("");
}/code]

SukkoPera

Cosa dovrebbe fare questo programma? :o


Dove pensi di stare selezionando l'ingresso di interesse del multiplexer?
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

gpb01

>ZioZio:  ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up