Controlla un LED bicolore con un solo pin


9

È possibile controllare un LED bicolore con un solo pin di un microcontrollore?

L'istinto dice NO, perché puoi avere un'estremità messa a terra e l'altra andare sul perno del micro, permettendoti di accenderlo o spegnerlo ma non cambiarne il colore.

Ma forse qualcuno ha un'idea migliore?


1
Puoi fare qualsiasi cosa con un solo pin di un micro. Più specifico per favore?
Nick T,

Risposte:


6

È possibile farlo con un LED bicolore che ha i due LED back-to-back se si collega un terminale LED a una tensione intermedia, ad esempio 2,5 V su un design 5 V e si collega l'altro lato all'MCU tramite un resistore adatto ( Ho usato 560R).

Quindi un'uscita bassa dà un colore, alta dà l'altro e tri-state lascia il LED spento. La modulazione dell'ampiezza dell'impulso ti consentirà di controllare la luminosità (commutando l'uscita tra attivo e tri-stato) o mescolando i colori (commutando l'uscita da bassa ad alta).

È possibile regolare la tensione intermedia per compensare anche diverse tensioni di andata a LED.

Ho usato un amplificatore operazionale LM2904 per fornire la tensione intermedia - funziona con una tensione di alimentazione fino a 5 V. Esistono molti altri dispositivi in ​​grado di funzionare a tensioni più basse e che ancora assorbono e alimentano abbastanza corrente per pilotare i LED.


3

Se non hai bisogno di uno stato spento e il tuo Voh era sufficientemente grande (modifica: per superare la tensione di polarizzazione diretta del LED), potresti essere in grado di collegare un'estremità del LED a una tensione a binario centrale. L'output di 1 ottiene un colore, l'output di 0 ottiene l'altro colore. Per spegnerlo ... ah, buona fortuna. Forse potresti provare a mettere un condensatore lì dentro e quindi guidare l'uscita con un PWM che il tappo si appianerebbe alla metà del binario?


7
Stavo pensando praticamente la stessa cosa, forse lo stato off poteva essere raggiunto tristando il pin di uscita del micro.
Tcrosley,

1
Un suggerimento fantastico ... la tripla affermando che il pin dovrebbe spegnerlo senza la fantasia PWM. Tuttavia, devi stare attento a lasciare fluttuare l'ingresso, probabilmente hai bisogno di un pull down (NON divisore, non lasciare che il pin di ingresso veda le tensioni intermedie!)
ajs410

1
È possibile utilizzare un resistore di alto valore (470k) tirato su alto o basso. Il LED sarà distorto o di un colore o l'altro, ma il flusso corrente sarà così basso che non vedrai il LED acceso.
akohlsmith il

5
@ ajs410 - Penso che gli MCU siano progettati in modo molto più intelligente di un chip logico stupido. Sul tuo micro a 8 bit medio, la stragrande maggioranza dei pin può essere utilizzata come input analogici (senza configurarli esplicitamente come tali) quindi non dovrebbero esserci effetti negativi (oscillazione del gate, assorbimento di corrente eccessivo) fintanto che la tensione rimane all'interno GND e VDD.
Nick T,

2
Uno degli svantaggi (forse significativi) di questa topologia è che avrai sempre un assorbimento di corrente abbastanza significativo che (senza modifiche) lo annicherà per qualsiasi applicazione a batteria a lungo termine.
Nick T,

0

È possibile Charlieplex esso


3
ma ciò richiede un minimo di due pin. OP ha chiesto una soluzione utilizzando un pin.
Tcrosley,

In realtà, in alcuni casi è possibile estendere il Charlieplexing per fornire LED N * (N + 1) con pin N, se la tensione di alimentazione è inferiore al doppio della caduta di tensione del LED e uno ha la giusta combinazione di cadute di tensione LED disponibili. Supponiamo per semplicità che l'obiettivo sia controllare 12 LED con tre pin; sei LED hanno una caduta di 2,5 volt e sei hanno una caduta di 1,7 volt e la tensione di alimentazione è di 3,0 volt. L'obiettivo è 5 mA per i diodi da 2,5 volt e 6,5 mA per i diodi da 1,7 volt. Metti una resistenza da 100ohm in serie con ogni uscita. Tre dei LED da 2,5 volt collegano le uscite a VDD, tre a VSS ...
supercat

... e i LED da 1,7 volt collegano le uscite tra loro in forma "normale" Charlieplex. Per accendere un LED da 1,7 volt, guidare un'uscita alta e una bassa. I resistori scenderanno 0,65 volt, lasciando 1,7 volt per il LED e tensione insufficiente per il LED da 2,5 volt. Per accendere un led da 2,5 volt, guidare un'uscita alta o bassa e nessuna delle altre. Quindi un LED da 2,5 volt avrà abbastanza corrente per illuminarsi.
supercat

Si potrebbero aggiungere più resistori o diodi al silicio per gestire diversi scenari di tensione, se necessario, ma ciò aggiungerebbe una certa complessità. @tcrosley: quanto sopra si generalizza all'uso di un pin per controllare due LED.
supercat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.