Questa pagina è stata scritta molti anni fa e quindi non posso più fornire alcun supporto
Il circuito che presento in questa pagina si collega alla porta parallela di un normale personal computer e permette di digitalizzare la temperatura rilevata da 16 sensori.
Il circuito è stato originariamente pensato per un uso un po' particolare: realizzare uno strumento a basso costo per riproporre con mezzi moderni il classico esperimento dell'anello di Fourier; in seguito mi limiterò a descrivere il solo circuito elettronico. Descriverò anche gli interventi utili per trasformarlo in un sistema di acquisizione dati per uso generale.
Il software di esempio permette di visualizzare in tempo reale le misure e di salvarle in un file di testo per successive elaborazioni; è stato sviluppato in C con il compilatore LabWindows/CVI in ambiente WinNT/2000/XP ma dovrebbe essere utilizzabile anche con gli altri sistemi operativi Microsoft a 32 bit. E' disponibile sia come eseguibile che come sorgente scaricando il file citato alla fine della pagina. Purtroppo non ho avuto tempo e occasione di scrivere un programma più dignitoso, magari anche per DOS o per Linux: spero che qualcuno in futuro supplisca a questa mia mancanza.
Lo schema del circuito è contenuto nel file ntcschematic.
Il trasduttore utilizzato è un NTC (termistore a coefficiente di temperatura negativo) cioè un componente la cui resistenza dipende dalla temperatura, diminuendo quando essa sale: lo specifico modello utilizzato presenta una R a 25°C di circa 47 kohm e di circa 770 ohm a 135°C. Le ragioni della scelta sono il costo basso, la sensibilità elevata e la (relativa) facile reperibilità In particolare si è scelto un componente con resistenza abbastanza elevata anche ad alta temperatura.
La connessione del circuito stampato ai 16 termistori è fatta utilizzando un flat-cable a 34 poli, identico a quello per la connessione dei floppy disk nei PC.
Il componente utilizzato appartiene alla serie K45 della Siemens Matsushita (attualmente Epcos): il suo particolare contenitore filettato ben si presta infatti al fissaggio tramite dadi ad un anello metallico, come richiesto dall'esperimento per cui il circuito è stato pensato io circuito. Le caratteristiche elettriche fondamentali, utili per trovare un eventuale modello equivalente, sono una R25 di 47 kohm ed un B25/100 di 4450.
Al fine di misurare la resistenza del trasduttore non si è usato il classico generatore di corrente ma si è realizzato un partitore resistivo costituito da una resistenza di 100 kohm (R3 nello schema) e dal termistore stesso connesso a massa (non indicato esplicitamente nello schema ma da collegare ad uno dei 16 ingressi presenti sul connettore J1). A questo partitore è applicata attraverso un buffer (U2B) la tensione fissa di 4.096 V ottenuta a partire dal riferimento interno del convertitore analogico-digitale MAX187. La tensione presente all'uscita dal partitore è amplificata da U2A, applicata all'ingresso dell'ADC MAX187 e quindi digitalizzata. L'ADC utilizzato ha risoluzione di 12 bit ed uscita seriale sincrona SPI compatibile. Per collegare alternativamente i 16 NTC è stato utilizzato un multiplexer analogico CMOS a 16 ingressi.
Sia gli ingressi del multiplexer che dell'ADC sono pilotati dalla porta parallela del PC Per garantire una precisione adeguata si devono utilizzare resistori con tolleranze contenute (1% o migliore) ed amplificatori operazionali di precisione.
OP293 (si noti: non LM293 che è un comparatore) è un amplificatore operazionale adatto a funzionare con alimentazione singola e con una tensione di offset abbastanza piccola; anche altri integrati, forse più facilmente reperibili, sono adeguati e direttamente sostituibile dato che il pin-out è quello standard industriale.
Il multiplexer analogico è forse il componente più problematico per quanto riguarda gli errori di misura, soprattutto se si intendono utilizzare termistori con bassi valori ohmici: la sua resistenza di chiusura (rdson) infatti costituisce un errore "sistematico" di circa 200 ohm in serie al termistore; purtroppo tale valore non è per nulla costante. Due sono le soluzioni, ovviamente non alternative, che si possono adottare:
L'alimentazione da fornire deve essere continua e compresa tra 6.5 e 12V; perfettamente adeguata risulta una batteria da 9V. Il regolatore a bassa caduta MAX603 provvede a fornire i 5 V con la stabilità e la precisione richieste da tutti gli integrati. è implementata la protezione contro l'inversione di polarità ed è presente un led indicante l'accensione, da omettere se il consumo di corrente fosse un problema.
Per la descrizione delle caratteristiche dei componenti utilizzati si rimanda ai siti dei produttori:
Tutte le operazioni di gestione del multiplexer e del convertitore sono realizzate direttamente dal PC attraverso la porta parallela. Il software di esempio allegato è suddiviso in due file:
In questo paragrafo descrivo come passare dal numero letto dal convertitore alla corrispondente temperatura.
Il convertitore analogico digitale non fa altro che convertire la tensione presente al proprio ingresso (che deve essere compresa tra 0 e 4.095 V) in un numero intero compreso tra 0 e 4095. La conversione è quindi immediata, tenendo conto della presenza di un amplificatore operazionale U2A all'ingresso:
V | Tensione in ingresso [V] |
N | Numero intero generato dall'ADC, compreso tra 0 e 4095 |
gain | Guadagno dell'amplificatore, pari a 1 + R2/R1 (3.2 con i valori indicati nello schema) |
Conoscendo la tensione applicata al partitore di tensione costituito dal R3 e dal termistore, è possibile ricavare la resistenza del termistore. Nella formula seguente si è considerata anche la rdson del multiplexer, in serie al termistore (sebbene non sia un valore rigorosamente costante, l'errore complessivo risulta di molto ridotto se si effettua la correzione indicata)
R | Resistenza del termistore [ohm] |
R3 | 100 kohm con i valori indicati nello schema [ohm] |
rdson | Resistenza di chiusura del multiplexer, valore molto variabile intorno ai 100-200 ohm [ohm] |
V | Tensione ricavata dalla formula precedente [V] |
L'ultima formula presentata è piuttosto approssimata e permette di ricavare dalla resistenza del termistore la corrispondente temperatura:
T | Temperatura effettiva [K] |
T25 | Temperatura di riferimento (usualmente 25°C = 298K) [K] |
R | Resistenza effettiva, ricavata dalla formula precedente [kohm] |
R25 | Resistenza alla temperatura di riferimento [kohm] |
b | coefficiente dato dal produttore del termistore |
Il programma utilizza come costanti i valori numerici contenuti nel "configuration file" max187.ini (se il file non è presente, sono scelte alcune costanti di default, adatte al termistore usato nel prototipo); esso è un semplice file di testo che deve risiedere nella stessa directory del programma e ad esso si rimanda per i dettagli della struttura.
Da notare che il software utilizza tali formule solo per la visualizzazione in tempo reale: se è attivato il salvataggio su file, questo contiene solo il numero in uscita al convertitore, compreso tra 0 e 4095, 16 valori per ciascuna riga. Questa scelta è motivata dalla possibilità di scrivere un secondo programma che, prelevando i numeri contenuti nel file, permetta di:
Come giàscritto, il circuito è stato progettato per misurare temperature comprese tra 25 e 135°C con i termistori Siemens Matsushita della seria K45 (47 kohm a 25°C). Il circuito è però adattabile alla misura di qualunque resistenza compresa tra uno e qualche centinaio di kohm cambiando semplicemente i valori di R1, R2 ed R3.
Per la scelta di tali resistori occorre inserire nella formula della resistenza sopra riportata i valori che si desiderano rilevare e trovare i valori di gain ed R3 che mantengono l'ingresso dell'ADC tra 0 e 4 V. Ad esempio, se il trasduttore assume valori compresi tra 1 e 10 kohm è possibile lasciare R3 pari a 100 kohm, cioè molto più grande della resistenza variabile, ed impostare il R1 ed R2 in rapporto 1:10, ottenendo un guadagno di 11.
I limiti dei valori sono costituiti essenzialmente dalla necessità di:
Il circuito è adatto anche per misurare generiche tensioni continue: è sufficiente togliere la R3 lasciando scollegata l'uscita di U2B per avere il classico sistema di acquisizione dati costituito da un multiplexer analogico ed un convertitore analogico-digitale. Occorre ovviamente ricordare che la tensione di ingresso amplificata da U2A e che quindi, scegliendo opportunamente le resistenze e l'amplificatore, è possibile misurare anche tensioni molto piccole.
Occorre tener conto di due avvertenze:
C1,C2 | 10uF tantalio |
C3,C7 | 4.7uF tantalio |
C4,C5,C6 | 100nF |
D1 | 1N4148 o altro diodo per piccoli segnali |
D2 | LED (opzionale) |
JP1 | Connettore per cavo piatto 2x17 poli, passo 2.54mm |
JP2 | Connettore 2 poli, passo 5mm |
P1 | Connettore per porta parallela, tipo D, 25 poli maschio per circuito stampato |
R1 | 22k 1% |
R2 | 10k 1% |
R3 | 100k 1% |
R4 | 1k 5% (opzionale) |
U1 | 74HC4067 (oppure 4067) |
U2 | OP293 |
U3 | MAX187 |
U4 | MAX603 |
R5 - R21 | Termistori B57045 K45/47k/K EPCOS (Siemens Matsushita) |
Alcune note:
Tutto il contenuto di questa pagina, il software, lo schema del circuito ed il PCB è contenuto nel file ntc.tgz.
Max187.tgz | Software in ambiente MSWindows per l'uso del circuito (sorgente ed eseguibile) |
top.pdf | Layout dei componenti |
bottom.pdf | Lato saldature del circuito stampato |
Schematic.pdf | Schema del circuito |
ntc.htm | Questo file |
ntc*.gif e ntc.jpg | La immagini presenti in questa pagina |
Prima di realizzare i circuiti o utilizzare il software è necessario leggere le avvertenze generali.
Su questo sito è anche disponibile un circuito con simili funzionalità ma a 8 canali e funzionante senza alimentazione esterna.
Misurare 16 temperature - Versione 1.1a - Dicembre 2001
Copyright © 2000-2001, Vincenzo Villa
La licenza d'uso da leggere ed accettare prima di utilizzare il prodotto
Tutti i nomi di prodotti e ditte sono proprietà dei legittimi proprietari.
Questo documento è disponibile nella sua forma integrale sul sito https://www.vincenzov.net.