Pagina 1 di 2

Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 12:05
da AjKDAP
Ciao a tutti,
a causa di scarsità di pin del microcontrollore del mio progetto devo poter accendere due led alternativamente utilizzando un unico pin che può assumere tre stati diversi:

-settato come pin in ingresso (alta impedenza)
-settato come pin in uscita a livello logico basso (0V)
-settato come pin in uscita a livello logico alto (5V)



Ho fatto una prova utilizzando due resistenze da 1kohm ciascuna come da schema, ed ho notato che quando imposto il pin del microcontrollore come ingresso ad alta impedenza per spegnere entrambi i led, i led restano leggermente accesi, ma davvero poco.

Questa situazione potrebbe andarmi anche bene se non per il fatto che dopo 10, 20minuti il led a sinistra inizia ad aumentare la sua luminosità a scapito del led a destra.
Se accendo uno dei due led, la situazione ritorna normale per poi ripetersi dopo 10, 20minuti.

La tensione di alimentazione è di 5V mentre i due led sono due led da 5mm, tensione 3-3.2V / 25mA.

E' il microcontrollore che non mantiene il suo stato di alta impedenza?
Come posso comportarmi per spegnere del tutto i led ed evitare questo fenomeno?

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 12:28
da rusty
Che micro usi? Hai provato a cambiare porta? In pratica sarebbe un Charlieplexing ;-)

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 12:31
da AjKDAP
Sto usando un PIC12F1840 e non ho ancora provato a cambiare porta, posso provare :-)

EDIT: "porta" intendo bit, visto che di porta ne ha solo una: PORTA :D

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 12:52
da rusty
Ah ok, hai solo una porta quindi :ok:
Beh tranne la RA3 che è solo di input, le altre possono essere usate per il tuo scopo. Dal datasheet possiamo notare come mettendo a livello altro TRISA dovremmo avere alta impedenza sul pin corrispondente, dunque non mi spiego questo cambiamento di stato nel tempo.

Immagine.jpg
Immagine.jpg (34.87 KiB) Osservato 2678 volte


Hai provato a fare la serie resistori led invertendo i due a destra? Intendo dal Vcc inserire R-LED-R-LED... anche se non penso cambi molto... aspettiamo pareri elettrotecnici piu' autorevoli :ok:

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 13:13
da AjKDAP
Giusto per avere un'idea:

Questi sono i due led accesi alternativamente:

sinistro.jpg
sinistro.jpg (53.34 KiB) Osservato 2670 volte

destro.jpg
destro.jpg (61.4 KiB) Osservato 2670 volte


Dopo lo spegnimento ho una situazione intermedia, equilibrata, entrambi i led alla stessa luminosità:

equilibrati.jpg
equilibrati.jpg (43.22 KiB) Osservato 2670 volte

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 13:15
da AjKDAP
E successivamente dopo un paio di minuti già si può notare che il led superiore (quello a sinistra nello schema) inizia ad aumentare la luminosità a scapito dell'altro:

dopo3min.jpg
dopo3min.jpg (43.09 KiB) Osservato 2670 volte


aspettando ancora il led destro tende a spegnersi quasi del tutto.

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 13:20
da simo85
Nel dubbio risolvi con due piccoli transistori, 3 al massimo.

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 13:21
da AjKDAP
in che modo? :D

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 13:41
da simo85
Se il problema è che se lo configuri come output non può assorbire corrente o viceversa,

Per questo potresti usare una coppia P-N già integrata in un unico IC.

O così:

O con il BJT

Ma meglio con il MOS.

Re: Due led comandati da un singolo pin del microcontrollore

MessaggioInviato: 15 nov 2012, 13:47
da rusty
Secondo me, molto piu' semplicemente, potresti farti un ingresso NOT con due BJT, invertendo la logica di uscita dal controllore per tenere conto dell'inversione. Con i MOS sarebbe meglio ma dovrebbe funzionare ugualmente, se hai una coppia del tipo BC547/BC557 puoi provare, abbassando i resistori ad almeno 180/220 \Omega