5V arduino può comandare un BD140 ? multiplexing display 7.5v

Buongiorno comunity,

mi sto dedicando alla costruzione di un segna-punteggio per pallavolo, composto da vari display 7 segmenti, che vorrei pilotare via telecomando IR.

Al momento sto lavorando al prototipo, con solo 2 display, KingBright SA40-19EWA.
Vorrei multiplexare i due display ( ne dovrò usare un totale di 6) visto il numero insufficenti di pin di arduino; quindi alternare sui pin di comando dei segmenti il valore da visualizzare su un display, spegnendo l'altro.

lo schema è questo: 2 display (anodo comune), 7 transistore 2N2222 (per la messa a GND dei segmenti) e 2 BD140 per l'attacco a 7.5V dell'anodo comune dei display


(ho escludo resistenze e condensatori per semplicità, i segmenti sono collegati in comune).

il problema è con i BD140, che sembrano non funzionare (i display rimangono sempre accesi in contemporanea); il pin 10 arduino è collegato alla Base del transistor, l'Emitter al 7.5V e il collettore all'anodo comune dei display.
con un valore LOW sul pin 10 mi aspetterei di comandare il transistor, dove sbaglio?

sono insufficenti i 5V? allego tabella datasheet del BB140

Grazie per il supporto

(edit) la ricerca su "BD140" prima di aprire il post che ho fatto non è stata utile, ma vedo ora dei post suggeriti che fanno al caso mio, sto approfondendo, credo di essere fuori strada (ogni suggerimento è comunque ben accetto.

No, putroppo non funziona cosi

Se ci pensi un attimo capisci perchè:
All'emettitore hai 7.5 V
Alla base, anche quando l'uscita di Arduino è alta hai al massimo 5V
Ci sono 2.5V che provocano sempre e comunque una corrente di base
Che tiene acceso il transistor

Devi ricorrere a circuiti più complessi
Cerca qui sul forum per "arduino high side switch"
Serviranno almeno 2 transistor
Oppure un transistor e un fet

Peggio: la giunzione E-B del transistor è un diodo dai 7,5V verso l'I/O, con il rischio di bruciare il microcontrollore! Fai così:

BC237 in questo schema è sbagliato, perché è un NPN! Devi usare un PNP, come il BC327, che è anche abbastanza robusto (e anche i tuoi BD140).
Per Q1 puoi usare un 2N2222 o un BC547 o BC237 o altri simili.

Ragione hai
Ma in teoria sulla base c'è una resistenza

Anche se immagino che tu avendo già i componenti vorresti usare quelli, però vedi se questo articolo ti può dare qualche spunto per semplificare un po' la cosa:

@ Salvorhardin
Sì, avevo intuito di star trattando il transistor un po' come un relè, semplificando troppo, approfondisco l'high side switch

Datman
Confermo che ho interposto la resistenza da 10Kohm anche nel mio prototipo, non l'ho inserita nello schema per semplicità.
però il BD140 è proprio un transistor PNP, non posso usarlo nello schema che proponi al posto del BC327 che suggerisci? quali limiti devo verificare? (siamo a 7.5V, non 12V come da tuo schema)
DB140.pdf (152,3 KB)

docdoc
Paradossalmente era il progetto originale, usare una led strip addressabile, tenendo tutto a 5V; purtroppo il committente (mio cognato :slight_smile: ) ha trovato i display 7seg in fiera per 5€ l'uno e abbiamo voluto provare.

Intanto grazie

Sì, puoi usare anche i BD140 come PNP. L'ho aggiunto nel testo.

SE al posto dei 12v colleghi i tuoi 7,5v non cambia niente.

manco a dirlo la soluzione proposta funziona, grazie mille.

Sto approfondendo un attimo perchè non mi è del tutto chiaro il circuito; ma nel mentre avrei un altro quesito legato al progetto.

La luminosità non del display non è altissima, immagino di non star fornendo abbastanza corrente.
La prova attuale vede arduino alimentato via usb e i due display alimentati via powerbank (10000mAh) usb collegato ad un power booster (da 5V a 7.5V).
suppongo stia lì il problema, non usare una fonte a 7.5V (?)
il singolo segmento prende massimo 60mA

Senza sapere le caratteristiche del display e che resistenze hai usato poco si può dire

Per il dubbio del 7.5V: prendi un tester e misura che tensione hai adesso col display acceso

il modello è nel post numero 1
devi alimentarlo a 12 volts almeno con una resistenza da 68 ohm per ogni segmento
si calcola come : (12v-9.2V-0.1)/0.04 = 68
perchè 0.04 ? 40mA? la corrente per segmento nominale non è 60 ma 20mA però siccome i display in multiplexer sono 2 allora puoi raddoppiarla, puoi comunque provare con resistenze da 100ohm per poi portarle a 68 se non ti piacciono
poi se aumeni il numero dei display a 6 allora puoi diminuire le resistenze fino ad un limite che ti consiglio di 33 ohm,

Vero, e ammetto che mi era sfuggito

Ma comunque non sono io che devo scaricare e leggere il datasheet

No! 12-8=4V; per 20mA sono 200 Ohm (220)!
Per i punti 10mA, quindi 400 Ohm (390).

Beh... Rimanendo ben al di sotto dei 60mA massimi, puoi anche aumentarla un po', anche fino a 40mA per i segmenti (ma non è che alternando i due display puoi andare oltre il valore massimo! Anzi, devi comunque mantenerti ben al di sotto, perché non è solo un problema termico a lungo periodo). Comunque prova con 20mA (220 Ohm) e vedi se basta, altrimenti metti resistenze un po' più basse.

1 Like

Pwmmare le uscite high-side?

Questa è una sciocchezza, dal DS puoi arrivare con 10 display fino a 320mA per segmento ma con 6 display come sarà il progetto finale puoi arrivare a 30mA x 6= 180mA, io però consiglio 120mA, quindi anche se VFminimo + le 2 vcesat = 8V 4/0,12=33ohm, al punto ci saranno 68ohm.

Siccome so che questi display hanno più di 1.9V per led , anche 2,2-2.3, quindi con anche il margine di sicurezza 33ohm è ok come ho scritto, però per testare la scheda con solo 2 display 68-100ohm vanno bene , abbi fiducia Datman, ricorda che questo display si dovrà vedere da lontano quindi dovrà "risplendere"

Per 320mA riporta "1/10 Duty Cycle, 0.1ms Pulse Width.": 100us on, 900us off. Devi fare la scansione di 10 display in 1ms, non più lentamente.
Comunque: meno corrente scorre, più durano. Se devi venderlo, prima si rompe, prima lo ricomprano :frowning: o lo fanno riparare, ma se non si ha interesse a mantenersi il lavoro è meglio non esagerare.

Non direi

10cm non sono adatti per un campo di pallavolo
Come indicato al #6 questa e' solo una prova indotta dall'aver recuperato dei display

Fatta la prova torneranno a cercare altre soluzioni

Tantovale non stressare i display, utilizzabili in futuro magari come monitor di quello principale

piccolo update per aggiornarvi e mantere vivo il post, anche se non sono ancora riuscito a fare le varie prove per tempo e assenza di resistenze sotto i 100ohm; ho però preso qualche misurazione.

Intato, per chiarire, si tratta di un progetto amatoriale che verrà utilizzato a bordo campo poggiato in una struttura a modi valigetta, per un facile trasporto.
il progetto finale saranno 2 display SA40-19EWA per squadra (totale 4) + 2 display SA18-11EWA per segnare i set vinti dalla squadra.
il tutto sarà comandato via telecomando IR.
l'obbiettivo è renderlo portatile quindi avrà 2 powerbank, uno per l'alimentazione di arduino e uno per l'alimentazione dei display.

un primo dubbio è perchè suggerite di collegare i display a +12V, da datasheet mi paiono indicati 7.6V. per i segmenti:


SA40-19EWA.pdf (533,8 KB)

Anche se ammetto che potrei perdermi qualcosa per via dell'inesperienza.

misurazioni:
da power booster -> 7.6V

BD140
Emitter 5.4V
Base 7V
Collector7.61

2N2222
Collector 3.6V
Base 0.3V
Emitter 0v
(Edit: senza i valori delle resistenze utilizzate hanno poco senso, appena riesco posto lo schema completo attuale)

mi sto perdendo per la misurazione della corrente, dovrebbe essere sufficente collegare in serie il multimetro, corretto?
collegando Emitter BD140 al polo positivo del multimetro e polo neg multi all' anodo comune display (in serie) ottengo un display spento e 0A sul multimetro.

Quella è la tensione di giunzione

Minimo 7.6
Ma massimo 9.2

E se fosse 9.2?
Ma anche fosse 7.6 come regoleresti la corrente?
Come calcoleresti la resistenza?

Come fai ad avere una tensione di emettitore minore di quella di collettore?