PROVA TRANSISTOR E DIODI CON ARDUINO

Ardutester: un Prova Transistor, Mosfet e Diodi Multifunzione Estremamente Semplice e Versatile…

 

 

 
 



 

PREFAZIONE

Prima che lo diciate voi, lo confesso: questo progetto non è farina del mio sacco, l’ho copiato da PighiXXX, che a sua volta l’ha copiato da Karl-Heinz Kübbeler, il quale a sua volta ha preso ispirazione da un certo Markus Reschke…

Ma cominciamo dall’inizio.

Era una notte buia e tempestosa, e i lampi e i tuoni non mi facevano dormire. Il gatto Tsunami, un gattone europeo rosso tigrato, era irrequieto e si agitava ai miei piedi. Non potevo vederlo, ma certamente anche Apocalisse, il fratello di Tsunami chiuso come tutte le notti in cameretta, esprimeva la sua preoccupazione felina. Mia moglie, al mio fianco, ronfava della grossa, incurante degli scosci di pioggia che battevano sulle persiane. Natale sarebbe arrivato di lì a pochi giorni, e la televisione aveva prennunciato l’ennesima allerta meteo per la Liguria. Tutto ciò non conciliava certo il sonno, ed io fissavo ad occhi sgranati il nulla nel buio più assoluto.

Tra lampi, tuoni ed agitazione di gatti, presi una decisione perentoria. “Devo mettere a posto la cantina”.

Forse vi chiederete che c’entri il maltempo, i gatti e l’insonnia con il mettere a posto la cantina. Nulla, forse… Ma la decisione di mettere a posto la cantina, che è anche il mio laboratorio, la prendo ad intervalli regolari circa due o tre volte a settimana, per poi sconfessarla regolarmente, da anni a questa parte!

Ma quella notte, buia e tempestosa, no. Quella notte decisi che l’avrei fatto. E approfittando delle vacanze natalizie l’ho fatto veramente (vabbé, quanto meno ho iniziato a farlo…)

E dopo aver cacciato secchi di spazzatura, dato via scatoloni pieni di oggetti che attendevano da decenni di far parte di un circuito oramai obsoleto, dopo aver spazzato chili e chili di trucioli di legno e metallo, dopo aver richiuso cassettiere traboccanti di oggetti fuori posto, arrivai finalmente a metter mano ai componenti riciclati.

Ho scatoloni interi pieni di componenti riciclati, tutti accuratamente recuperati da schede elettroniche, componenti che quando mi servono devo andarli a comprare perché, pur sapendo di averli, non so dove effettivamente siano. Sistemare nei loro scomparti i componenti passivi come resistenze, condensatori, trimmer e LED è stato facile, ma i semiconduttori?
 



 
IL PROVATRANSISTOR

È a questo punto che nasce in me l’esigenza di un provatrasistor. Quello di Nuova Elettronica fatto negli anni ’70 era carino, in meno di un quarto d’ora, spostanto alternativamente una serie di deviatori, riuscivi ad ottenere una combinazione di sei LED verdi e rossi che, consultando un’apposita tabella, ti indicava molto spesso con approssimativa esattezza se il transistor era un NPN o un PNP, semmai quel componente fosse stato un transistor… Ma purtroppo questo strumento giaceva in un armadio sul terrazzo della casa di mia madre, orbato dei suoi commutatori utilizzati per altri progetti, quasi come un ciclope triottico accecato da altrettanti Nessuno…
Urgeva una soluzione alternativa, e il pensiero volò istantaneamente a Grix, sorgente di soluzioni a problemi che neppure pensi di avere. Una rapida ricerca con la parola “provatransistor” mi portò subito ad una paginetta con svariate ipotesi di progetto, che sfogliai voracemente. Troppo elementare…Troppo complesso… Troppi componenti… Ma non ce n’è uno semplice che faccia quello che mi serve con pochi componenti? No, questa volta Grix non aveva soddisfatto le mie necessità, o, più probabilmente, non ero stato capace di trovare ciò che mi interessava.
Ma l’urgenza era tale da indurmi a cercare su Gooooooooogle. Scrissi la parola “provatransistor”, e subito trovai i suddetti circuiti già esaminati su Grix. Riprovai con l’equivalente anglosassone, e scrissi “transistor tester”, e per buona misura aggiunsi il nome dell’antico regnante italiano che tanto mi sta a cuore, “Arduino”.
Il risultato mi sorprese. Non solo trovai svariate risposte, ma tra tutte una spiccava sulle altre: Ardutester!
 

ARDUTESTER

Come dicevo in apertura, questo progetto non è mio. Cercando Ardutester su Google trovate tutte le informazioni in merito. Nasce da un porting verso Arduino di un quasi identico progetto basato sul processore AVR programmato in C. Io mi sono limitato a realizzarne un esemplare col materiale che avevo a disposizione a casa, facendo solo una modifica secondaria al software per adattarlo al layout su scheda millefori. Ma i motivi che mi hanno spinto a scrivere questo articolo sono molteplici, in primis la stupefacente quantità di misure che questo elementare strumento è in grado di fare:

  • Identificazione automatica dei seguenti componenti e misura dei relativi parametri:
  • Transistor (NPN/PNP, piedinatura, Beta, VBE).
  • Darlington (NPN/PNP, piedinatura, Beta, VBE).
  • Diodi semplici, doppi e LED (polarità, caduta di tensione diretta, capacità parassita).
  • Mosfet (canale P ed N, piedinatura, guadagno, tensione di soglia, presenza del diodo di protezione).
  • Triac ed SCR (pedinatura, riconosciuti con alcune limitazioni).
  • Resistenze e potenziometri (da 0,01Ω a 50MΩ).
    Condensatori (Capacità, ESR per capacità superiori a 0,18µF).
  • Riconoscimento di componenti difettosi.
  • Autocalibrazione con memoria dei parametri di calibrazione.
    Autotest.

L’autore assicura inoltre che prossimamente implementarà anche la possibilità di misurare le induttanze.
Il circuito ha alcuni limiti, conseguenza del fatto che tutto il circuito è alimentato a soli 5 Volt. Non è possibile infatti per l’Ardutester misurare le tensioni di Zener, mentre per i Triac e gli SCR le cui tensioni di soglia sono troppo elevate può sbagliare le identificazioni, come ad esempio riconoscere un Triac come un NPN o dichiararlo difettoso.
A parte questi limiti, devo ammettere che il circuto è di una semplicità sconcertante e ha funzionato alla prima (in realtà alla terza, ma di questo ne parliamo più avanti).
Per una informazione esaustiva su questo tester multifunzione, rimando alla documentazione del progetto originale di Kübbeler e addendum con altre informazioni utili che potrete scaricare in formato PDF nella sezione download.
 
LO SCHEMA ELETTRICO
Lo schema è sostanzialmente composto da sei resistenze. Sì, solo sei resistenze, tre da 470kΩ e tre da 678Ω. Oltre naturalmente ad un Arduino e ad un display 16×2 del tipo Hitachi 44780. Un pulsante completa il circuito.
Ecco lo schema che ho utilizzato, e che differisce solo per alcuni dettagli dallo schema originale:

Le differenze consistono nell’uso di un Arduino Pro Mini (nell’originale usano un Arduino Uno) e nell’aggiunta di una resistenza di pull-up sul pulsante. Questa resistenza, indicata in rosso nel circuito, è in realtà superflua, ma l’ho aggiunta a seguito di un apparente malfunzionamento del menu. In realtà ho scoperto solo dopo che il problema era dovuto a residui di disossidante, ma oramai era nel circuito e ce l’ho lasciata…
In sostituzione dell’Arduino Pro Mini è possibile usare un Mini a 5 Volt purché con ATmega328. Se si utilizza un altro modello di Arduino, controllate se esiste un pin chiamato AREF. Se esiste, tra questo e massa andrà collegato un condensatore da 100nF. Per i modelli privi di questo piedino, un simile condensatore è già saldato sulla scheda.
Ho inoltre effettuato una ulteriore modifica, rimuovendo dal’Arduino il LED collegato al piedino 13. Questo a mio giudizio altera la rete di misura, anche se alcuni, nel forum dedicato, sostegono che non ha effetto.
Una parola la devo spendere sulle resistenze. Per garantire la massima precisione, l’autore suggerisce di usare resistenze allo 0,1%. Non avendo resistenze di questa precisione, ho usato resistenze all’1%, ma per i test che ho fatto i risultati sono più che ottimi anche con questa tolleranza.
 



 
IL PRINCIPIO DI FUNZIONAMENTO

Nella documentazione che ho linkato precedentemente è descritto minuziosamente il principio di funzionamento del circuito. Per quel poco che ho letto (ripeto, a me interessava solo uno strumento realizzabile in breve tempo), le misure vengono fatte collegando alternativamente a massa, al positivo o lasciando aperte una combinazione delle nove porte di ingresso ed uscita.
Il circuito interno di ogni porta di Arduino (o più precisamente dell’ATmega328) si può infatti schematizzare in questo modo:

Le resistenze da 19 e 21 Ohm sono le resistenze interne degli interruttori elettronici presenti nel processore. Alcune porte, inoltre, possiedono anche un convertitore Analogico/Digitale con risoluzione 12 bit:

L’autore combina due porte digitali ed una analogica, con l’aiuto di due resistenze da 470kΩ e da 680Ω per realizzare ogni singolo punto di misura, ottenendo questo risultato:

Tre di questi punti di misura formano il nostro circuito Per fare un semplice esempio, prendiamo ora il caso del diodo. In questo modo semplifichiamo l’esempio riducendo a due i punti di misura:

Ecco una possibile sequenza da eseguire:

  1. Mettiamo al positivo la porta A1 e a massa la porta B3, lasciando aperte tutte le altre.
  2. Misuriamo la tensione tramite l’ADC della porta A3. Poiché il diodo sotto test è in conduzione misureremo una tensione di circa 0,7 Volts. Questa sarà la tensione di caduta diretta da visualizzare sul display.
  3. Invertiamo le polarità, e mettiamo a massa la porta A3 e al positivo la porta B1.
  4. Misuriamo la tensione tramite l’ADC della porta B3, stavolta il diodo è in interdizione e la tensione misurata sarà quella di alimentazione.
  5. Misurando il tempo che ci mette la tensione alla porta B3 a passare da 0 alla tensione di alimentazione, possiamo inoltre ricavare il valore della capacità parassita del diodo, che visualizzeremo sul display insieme alla caduta diretta.

Ovviamente quanto descritto è solo una semplificazione per comprendere a grandi linee il processo di misura. Nella documentazione già linkata sono presenti esempi più precisi e dettagliati per ogni tipo di semiconduttore o componente.
Come abbiamo visto, sfruttando la combinazione delle resistenze da 470kΩ e da 680Ω, e con l’aiuto delle resistenze interne da 21Ω e 19Ω, possiamo creare reti di polarizzazione e partitori di tensione che opportunamente gestiti ci consentono di analizzare quasi ogni componente. Inoltre con la misura dei tempi di carica e scarica possiamo misurare le capacità.
La maggior parte del lavoro viene quindi realizzata tramite software, e questo consente di ridurre al minimo l’hardware.

 

LA REALIZZAZIONE

Considerando che il circuito mi serviva subito, ma anche prima, ho optato per il montaggio su scheda One-Thousand-Holes. Per praticità costruttiva ho dovuto invertire il collegamento del display, compensando poi sul software la diversa disposizione dei piedini. Questa è stata l’unica modifica da me effettuata sul software, che per il resto è esattamente uguale all’originale.

In questa foto vediamo, oltre alle sei resistenze di misura, altre due resistenze. Quella in basso, solitaria, è la resistenza di pull-up del pulsante che come ho detto è superflua, mentre la prima in alto è una resistenza da 1 kΩ che ho aggiunto all’ultimo per alimentare la retroilluminazione del display e che non è presente nello schema.
Il circuito si è acceso al primo tentativo, ma non ha funzionato subito: facendo misure sia a vuoto che con componenti il circuito restituiva sempre degli inesistenti FET o IGBT, e i valori misurati erano instabili ed incostanti.
Un primo problema è stato identificato grazie al self test, che mi ha permesso di capire di aver invertito le uscite AD1 ed AD2 sull’Arduino. Non volendo modificare ulteriormente il software, ho effettuato un ponticello e invertito i collegamenti. Potete vedere questo ponticello nella foto, tra il processore e l’inutile resistenza di pull-up.
Ma malgrado la correzione del circuito, i valori continuavano ad essere instabili e il pulsante, all’interno del menu, aveva comportamenti imprevedibili. Considerato i valori relativamente alti di alcune resistenze del circuito, ho pensato che i residui di disossidante potevano influire sulle misure. Ho quindi lavato accuratamente la basetta in un solvente, risolvendo così tutti i problemi.
Per l’alimentazione ho scelto di usare una batteria a 9 Volt. L’Arduino al suo interno contiene un LDO che riduce e stabilizza la tensione applicata all’ingresso RAW portandola a 5 Volt, e fornisce corrente sufficiente ad alimentare anche il display. Nello schema potete vedere che l’alimentazione del display è collegato al piedino +5V dell’Arduino, utilizzato in questo caso come uscita.
Il costo del circuito è irrisorio: un Arduino Pro Mini può costare dai 3€ ai 6€, circa altrettanto il display. Tra millefori, resistenze e coccodrilli di misura dovremmo spendere meno di 5€. Con una quindicina di Euro possiamo realizzare un circuito che si ripaga pienamente con la sua utilità.

 

SOFTWARE, L’UTILIZZO E CONCLUSIONI

Come detto, il software è quasi identico a quello scaricabile dal sito http://www.pighixxx.com/lavori/ardutester/ a parte la modifica della piedinatura del display. Per comodità, lo potete scaricare, già modificato e zippato nella sezione download.

Le modifiche riguardano esclusivamente la piedinatura del display, che ho montato alla rovescia rispetto al progetto originale. Alla riga 97 infatti nello sketch originale è indicato:
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //RS,E,D4,D5,D6,D7
modificato da me in:
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //RS,E,D4,D5,D6,D7
Per il resto ho lasciato tutto inalterato, e questo agevola eventuali aggiornamenti a future revisioni. Non ho studiato a fondo il software, anche perché come già detto avevo bisogno urgentemente di questo circuito, quindi non effettuerò una descrizione di esso.
Vista la semplicità e l’utilità del circuito, ne consiglio la realizzazione a coloro che volessero muovere i primi passi in Arduino, e per questo darò due indicazioni per caricare gli sketch (così chiamano i sorgenti di Arduino) nel micro.
A differenza di altri microprocessori, che richiedono un ambiente di sviluppo non proprio amichevole, l’IDE di Arduino è pensato per essere semplice ed essenziale. È liberamente scaricabile dal sito http://arduino.cc e si presenta così:

In questo caso è già aperto lo sketch di Ardutester. In alto vediamo pochi pulsanti. Il primo a sinistra, la “virgoletta” serve per controllare l’esattezza sintattica del codice. Col secondo pulsante, la freccia a destra, andremo a caricare il codice nell’Arduino tramite un semplice cavo USB.
La maggior parte delle schede Aurduino presenta a bordo una presa USB, standard o mini a seconda delle versioni. Tutto quello che serve è un semplice cavo per collegare il PC alla scheda. Nel nostro caso, con la scheda tipo Mini, la circuiteria USB non è presente a bordo, e pertanto va utilizzata una semplice schedina di conversione USB<->Seriale. Su eBay se ne trovano a dozzine cercando “FT232 USB to Serial”.

Poiché Arduino prende l’alimentazione dalla porta USB, non serve alcun altro alimentatore per la programmazione. Assicuratevi di aver scollegato Arduino da altre fonti di alimentazione prima di collegarlo alla USB.
Una volta collegato l’Arduino alla presa USB, direttamente o tramite l’adattatore a seconda dei casi, prima di caricare il software dobbiamo indicare all’IDE il modello di Arduino e la porta seriale tramite gli appositi menu. Qualcosa del genere:

A qusto punto non ci resta che premere il secondo pulsante, quello con la freccia, e il nostro sketch verrà caricato sull’Arduino. Il goco è fatto!

L’uso
L’uso è altrettanto semplice del circuito stesso. Si collega un componente a due o tre terminali ai contatti 1, 2 e 3 e si preme brevemente il pulsante Start. Nel giro di un paio di secondi otteniamo tutte le informazioni sul componente. Se misuriamo un condensatore di elevata capacità però il tempo si può allungare anche ad un paio di minuti. Ecco un breve filmato che mostra alcune misure di componenti:

Prima dell’uso, per ottenere una precisione maggiore, è necessario calibrare il circuito. Per far questo è necessario accedere al menu premendo a lungo l’unico pulsante, facendo comparire il seguente menu:

Non ho ben capito lo scopo di questo menu e mi riprometto di indagare in futuro, per il momento però non ci interessa per la calibrazione, pertanto lo saltiamo premendo brevemente il tasto.

Come secondo menu compare il Selftest. Per eseguire un test del circuito premiamo a lungo il pulsante e seguiamo le istruzioni. Ma poiché ora vogliamo effettuare la calibrazione, saltiamo anche questo premendo il tasto brevemente.

Il terzo menu è quello della calibrazione. Iniziamo la procedura con una pressione lunga del tasto:

Come prima cosa ci chiede di cortocircuitare i tre terminali di misura tra loro. Se avete usato le pinzette a coccodrillo, come ho fatto io, l’operazione è semplice, in caso contrario usate uno spezzone di filo elettrico. Appena il circuito riconosce il cortocircuito, procede con la calibrazione.

Dopo pochi secondi chiede di rimuovere il corto, e prosegue con la calibrazione non appena sente i terminali liberi.A questo punto la calibrazione è terminata, e dopo aver visualizzato i parametri, visualizza il messaggio seguente:

In conclusione…
Questo banale provacomponenti mi ha stupito per la sua essenzialità ma soprattutto per la funzionalità. A realizzarlo ci ho messo poco più di un’ora, incluso il tempo per trovare e correggere gli errori commessi. Decisamente meno del tempo che ho impiegato a scrivere questo articolo… 🙂
Mi auguro che possiate trovarlo interessante anche voi.
 

Articolo realizzato da Luca Calcinai, lo staf di NE555.IT ringrazia 🙂
 
DOWNLOAD

Per una informazione esaustiva su questo tester multifunzione, rimando alla documentazione del progetto originale di Kübbeler, che potrete scaricare in formato PDF da qui, mentre da qui potrete scaricare un addendum con altre informazioni utili.

Potete scaricare lo Sketch al seguente LINK!!!



 

[Voti Totali: 0 Media Voti: 0]
Segui la Nostra Pagina Facebook: Facebook

6 pensieri su “PROVA TRANSISTOR E DIODI CON ARDUINO

  1. Ciao, ho notato che nel circuito originale le resistenze su D8 e D9 vanno su A0 mentre tu le colleghi su A2.
    Quale dei due è giusto visto che usi il software originale?
    grazie per la risposta

    • Ciao, confermo l’errore. Anche nel circuito è presente la stessa discrepanza (vedi la foto del millefori).
      Il fatto è che il circuito ha sempre funzionato correttamente, ho il sospetto che con quell’inversione siano cambiati l’ordine dei pin, ma senza cambiare la funzionalità.
      Purtroppo non ho possibilità di verificare, perché oramai l’ho smontato e sostituito con uno di quelli cinesi col display grafico.
      Se lo realizzi, ti sarei grato se lasciassi il tuo feedback.

Rispondi a ne555 Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *