Pilotare LED attraverso transistor

Ciao a tutti, vi spiego il mio problema sperando di trovare qualcuno in grado di risolverlo..
La mia intenzione è quella di dare l'effetto blink a 12 led collegati in parallelo a due a due e quindi occupando sei ingressi digitali di un atmega328p in stand alone.
La capacità massima dell'amtega è di 200mA e dato che ogni led assorbe 20mA sono costretto ad alimentare i led da fonte esterna, per questo ho pensato di utilizzare dei transistor come switcher.
La base del transistor è collegata direttamente al pin digitale dell'atmega (alimentato a parte), ho collegato l'emittore ai 5V e il collettore al positivo del led che a sua volta va con una resistenza da 100 ohm a terra.

Il risultato ottenuto è il seguente:

  1. I LED si accendono tutti ma la luminosità non è uniforme, alcuni sono più illuminati di altri.
  2. Ho collegato all'atmega un singolo led prima senza transistor e poi con, notando in ogni caso una differenza di luminosità non indifferente.

Ho fatto le prove con i seguenti transistor NPN:

  1. 2N3904 (BJT)
  2. BC546B (BJT)
  3. MJE13003 (IGBT)

I LED hanno una caduta di tensione da 3,4V, luminosità 8000mcd, corrente assorbita 20mA

Qualcuno potrebbe darmi qualche consiglio su quale modello di transistor utilizzare per avere la minima perdita di luminosità?
Per quale motivo inoltre i led non si illuminano in modo uniforme?
E perchè se collego in serie i LED il sistema non funziona?

Grazie a tutti per le risposte!

La base del transistor è collegata direttamente al pin digitale dell'atmega (alimentato a parte), ho collegato l'emittore ai 5V e il collettore al positivo del led che a sua volta va con una resistenza da 100 ohm a terra.

La configurazione ad emettitore comune (emettitore collegato a massa) prevede:
resistore di base Rb il cui valore deve essere calcolato in funzione dell'hfe (guadagno in corrente);
resistore di caduta RL limitazione corrente nel LED (collegato al collettore tramite l'anodo +) che è collegato al +5V e al catodo (-).

Considerando una hfe di 100, per ottenere 40mA (pari all'assorbimento di due LED in parallelo è sufficiente una corrente 0.04mA, quindi:
Rb = 5V / 0.0004A = 12500 ohm (approssimabile a 12k). Ma anche 10k vanno bene: vorrà dire che potresti pilotare anche 50mA!

Per RL si dve calcolare così: RL = (Vc - Vf) / Imax = (5V - 3.4) / 0.04 = 40 ohm

Un transistor NON come il 2N3904 o BC546 non puoi colllegare come hai descritto. (tralasciamo il IGBT) L'emettitore DEVE essere collegato a massa. La massa del alimentazione dei LED DEVE essere collegato con la massa del Arduino. Tra pin Arduino e basetransistor DEVE SEMPRE essere messa una resistenza. Metti qualcosa tra 1kOhm e 5 kOhm. Il LED lo colleghi con la sua resistenza tra il positivo dell'alimentazione e il collettore.
Visto che hai bisogno di tanti transistori puoi usare anche un ULN2803 che sono in pratica 8 transistori. Hanno la resistenza base giá integrato.
Ciao Uwe

Mettendo in pratica i vostri consigli ho notato una maggiore luminosità e una bassissima perdita di segnale yeeeeeee! :slight_smile:
Rimane però il problema che dal terzo led che collego in poi la luminosità varia per ogni ingresso digitale e non riesco in alcun modo risolverlo :frowning:
Vorrei che i led si illuminassero tutti allo stesso modo e non alcuni di più ed altri di meno, sapreste dirmi a che cosa è dovuto?
PS Grazie per le risposte! :slight_smile:

non e' che sei molto chiaro.

innanzi tutto come li hai collegati ( A,B,C )
i led di che colore sono ?
La tensione Vcc e' quella di Arduino ( 5V ) ?

Da premettere che utilizzo Arduino per programmare un microcontrollore che farà funzionare il sistema in modo indipendente, utilizzo i seguenti collegamenti:

Il microcontrollore, un atmega328P, riceve la tensione da un alimentatore da 12V collegato ad un regolatore di tensione che riduce la potenza a 5V per non mandare in corto il sistema.

Il massimo amperaggio supportato dall'atmega328P è di 200mA pertanto, avendo collegato 12 led con VF a 3,4V che assorbono 20mA l'uno, sono costretto alimentarli esternamente per non gravare sul microcontrollore.

Dai ,12V dell'alimentatore parte un secondo regolatore che riduce la tensione sempre a 5V sulla quale collego tutti i positivi dei led mentre le masse vengono collegate attraverso una resistenza da 33ohm al collettore di ciascun transistor (2N3904).
Alla base di ogni transistor parte una resistenza da 1Kohm che raggiunge i pin digitali del microcontrrollore mentre ogni collettore va a massa.

Utilizzo quindi 6 ingressi digitali (uno per led+transistor) ma l'intensità dei led non è uguale per tutti, alcuni emettono una luce più forte di altri e non riesco a capire il perche :frowning: .
Vorrei poi in seguito poter collegare due led in parallelo per ogni pin ma se già ora non va figuriamoci che casino sarà mettendo due led in parallelo

Come hai collegato i LED? Ha ognuno la sua resistenza?
Ciao Uwe

Si uwe ho fatto come mi avevi detto tu, ho collegato ciascun led tra i 5V del secondo regolatore di tensione e il collettore di ogni transistor attraverso una resistenza da 33ohm

allora dovrebbero avere la stessa luminositá.
Ma sei sicuro che li accendi tutti per lo stesso tenmpo?
Ciao Uwe

Sicurissimo, ma non funziona purtroppo..

cyberhs:

La base del transistor è collegata direttamente al pin digitale dell'atmega (alimentato a parte), ho collegato l'emittore ai 5V e il collettore al positivo del led che a sua volta va con una resistenza da 100 ohm a terra.

La configurazione ad emettitore comune (emettitore collegato a massa) prevede:
resistore di base Rb il cui valore deve essere calcolato in funzione dell'hfe (guadagno in corrente);
resistore di caduta RL limitazione corrente nel LED (collegato al collettore tramite l'anodo +) che è collegato al +5V e al catodo (-).

Considerando una hfe di 100, per ottenere 40mA (pari all'assorbimento di due LED in parallelo è sufficiente una corrente 0.04mA, quindi:
Rb = 5V / 0.0004A = 12500 ohm (approssimabile a 12k). Ma anche 10k vanno bene: vorrà dire che potresti pilotare anche 50mA!

Per RL si dve calcolare così: RL = (Vc - Vf) / Imax = (5V - 3.4) / 0.04 = 40 ohm

Ciao cyberhs, perdona la mia ignoranza ma Vf cos'è? Da dove si ricava?
Ciao e grazie.

Vf è la tensione di solgia del led, e varia a secondo del colore (solitamente).

si va da 1.8V per i led rossi.... fino a 4V per quelli ad ultravioletto.

@Sectre sarebbe utilile avere il tuo schema elettrico per vedere cosa stai facendo :wink:

Martinix:
Vf è la tensione di solgia del led, e varia a secondo del colore (solitamente).

si va da 1.8V per i led rossi.... fino a 4V per quelli ad ultravioletto.

@Sectre sarebbe utilile avere il tuo schema elettrico per vedere cosa stai facendo :wink:

Grazie mille!!!