Collegamento di un LED al pin Rx di PIC


13

Ho bisogno di un modo per sapere se microcontroller( PIC) sta ricevendo (o trasmettendo) dei dati. Quindi ho pensato di tenerne uno separato in LEDmodo che lampeggi quando si verifica un trasferimento di dati.

Ma devo sapere come collegarlo LED. E 'OK per direttamente allegare un LEDa PICs Tx(e Rx) perni? Voglio dire, influenzerà in qualche modo il trasferimento dei dati (come facendo cadere la tensione ecc ...).

Risposte:


14

(Almeno alcuni) I PIC non possono pilotare molta corrente (*), ma anche per il pin RxD è meglio usare un transistor per pilotare il LED, poiché eviterai di caricare il trasmettitore sull'altra estremità (probabilmente un MAX3232 o simile ?).

inserisci qui la descrizione dell'immagine

Collegare l'ingresso "Q" alla linea TxD / RxD. Un tipico transistor per uso generico avrà un guadagno di circa 100, quindi una corrente di base di 1 mA è sufficiente per ottenere una corrente di collettore di 20 mA.

Per un bus 5 V e alimentazione:
scegliere = 3,9 kΩ, quindi la corrente di base sarà (5 V - 0,7 V) / 3,9 kΩ = 1,1 mA. Per limitare la corrente del collettore a 20 mA (tipico indicatore LED) RRBR dovrebbe essere (5 V - 2 V) / 20 mA = 150 Ω.

Per un bus 3,3 V e l'alimentazione, utilizzare le stesse equazioni, sostituendo 5 V con 3,3 V, quindi i valori della resistenza saranno 2,2 kΩ e 47 Ω rispettivamente.



Un MOSFET come AndrejaKo suggerisce è una buona alternativa, ma assicurati di avere un tipo di gate a livello logico , con una tensione di soglia massima leggermente inferiore alla tensione del bus. (Ci sono logici FET cancello livello dove che può essere alto come 4 V e quindi non sarà possibile ottenere abbastanza corrente di pozzo con una tensione di 3,3 V bus.) Il vantaggio reale del FET è che necessita di pochissima corrente di pilotaggio, ma poiché abbiamo solo bisogno di un mA per il BJT, non avremo alcun problema neanche con quello.


(*) Questo controller PIC casuale specifica una caduta di 700 mV a una corrente di uscita di soli 3 mA, ovvero una resistenza di uscita di 230 Ω. Un LED a 2 V pilotato direttamente da un'uscita a 3,3 V farà cadere l'uscita di 1 V a soli 4 mA. La maggior parte dei LED indicatori sono specificati per 20 mA.


Buona risposta Stevenvh, +1 per l'aggiunta di suggerimenti sulla dimensione della resistenza, molti altri si riferiscono solo alla legge di Ohm
chwi

1
Anche se questo potrebbe essere il modo "corretto" di farlo ... se non riesci a guidare <5mA circa dal pin MCU, metterei in dubbio il valore di tale MCU nelle applicazioni del mondo reale. I tranceiver RS232 sono anche molto robusti. Ho numerosi design in cui la resistenza della serie e il LED si trovano direttamente sulle linee rx / tx. Funziona bene anche se non usi MAX, ma tranceiver di seconda fonte economici. Finché non provi a guidare 20 mA o qualcosa di pazzo del genere, non dovrebbero esserci problemi. E se scegli un LED luminoso e moderno puoi usare facilmente una resistenza da 10k.
Lundin,

Ω

@stevenvh Forse sono viziato con Freescale, dove puoi guidare un po '+ -20mA attraverso un singolo pin (a Vdd = 3V) senza uscire dalle specifiche. Anche se ovviamente, bisogna progettare con i margini. Per quanto riguarda il tranceiver MAX, quelli standard hanno una specifica di volatage di soglia alta> 2,0 V, bassa <0,8 V, quindi non si dovrebbe mai essere un problema.
Lundin,

A proposito, la specifica LED di 20 mA è per la luminosità ottimale. Se ne metti uno moderno super luminoso con alcuni> 300mcd, puoi abbassare la corrente al di sotto di un decimo di quello che useresti con i LED classici. Stiamo quindi parlando di uA piuttosto che di correnti mA.
Lundin,

10

No, non si desidera collegare il LED tramite un transistor interruttore lato basso come altri hanno dimostrato. Nel caso normale, il livello di inattività di entrambe le linee è alto, il che provocherebbe l'accensione del LED per la maggior parte del tempo. Sarà molto difficile notare che occasionalmente diventa un po 'più fioco. Quello che vuoi è che il LED sia acceso solo quando la linea è nello stato attivo, che è basso. Ecco un semplice circuito:

Il transistor viene utilizzato nella configurazione di follower dell'emettitore, che elimina la necessità di un resistore di base e utilizza anche la corrente di base minima possibile per la corrente LED risultante. Quando la linea digitale si abbassa, l'emettitore sarà a circa 700 mV. Considerando un normale LED verde che scende di circa 2,1 V, che lascia 2,2 V attraverso R1. 2,2 V / 120 Ω = 18 mA, che è appena al di sotto del massimo di 20 mA, sono classificati i tipici T1-3 / 4 e molti altri LED comuni.

Questo è un caso in cui si desidera massimizzare l'emissione di luce a LED, il che significa farla funzionare alla massima corrente. La linea diventerà bassa per brevi periodi, quindi vuoi rendere quel breve tempo il più visibile possibile. Se non funziona, avrai bisogno di una sorta di allungamento del polso, ma prova prima questo.

Se si utilizza un'alimentazione a 3,3 V, regolare R1 di conseguenza. 3,3 V - 2,1 V - 700 mV = 500 mV attraverso R1. 500mV / 20mA = 25Ω. Vuoi lasciare qualche margine, quindi il valore standard di 27 Ω dovrebbe funzionare bene. L'alimentazione a 3,3 V è circa il minimo in cui si desidera utilizzare la configurazione del follower dell'emettitore.


5

Non dovresti tentare di collegare il diodo direttamente al pin poiché ciò influenzerà sicuramente il funzionamento del pin. Invece, prova a utilizzare un mosfet a livello logico per guidare il LED. Collegare il pin del gate del MOSFET al pin Rx e lo drain al LED e una resistenza.

inserisci qui la descrizione dell'immagine

Ignorare il numero di parte mostrato nello schema. BS170 sarebbe molto più economico e funzionerebbe bene per questo scopo.

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.