Come ottenere il valore della temperatura da una misurazione del termistore
Tutti i prodotti che ho progettato nella mia carriera avevano al loro interno una qualche forma di circuito di temperatura. I circuiti più semplici ed economici utilizzano un termistore a coefficiente di temperatura negativo (NTC) o a coefficiente di temperatura positivo (PTC) per misurare la temperatura. Il circuito più elementare si basa su un partitore resistivo collegato a un microcontrollore (MCU) a basso costo con un convertitore analogico-digitale (ADC). Questo articolo spiega come utilizzare un termistore NTC o PTC con un ADC, insieme alle varie tecniche di processo per convertire i risultati misurati dell'ADC in un valore di temperatura utilizzabile.
Un tipico circuito termistore fornisce una tensione (VSense) applicata a un ingresso ADC; l'ADC converte quindi questa tensione in un valore digitale LSB (bit meno significativo) proporzionale alla tensione di ingresso. Una risoluzione ADC comune è di 12 bit per molti MCU a basso costo, quindi le formule in questo articolo utilizzeranno una risoluzione a 12 bit. La Figura 1 mostra sia il partitore di tensione che i circuiti a corrente costante.
È possibile utilizzare l'equazione 1 per convertire il valore LSB ADC a 12 bit misurato in una tensione:
dove la risoluzione ADC (ADC a 12 bit (212)) è 4.096 bit totali, VREF è 3,3 V e il valore LSB ADC misurato è 2.024 (esempio di valore LSB ADC da una scheda di test della famiglia di termistori TMP61 di Texas Instruments (TI).
Per esempio:
L'equazione 2 calcola la resistenza dal VSense del partitore di tensione:
Per esempio:
L'equazione 3 calcola la resistenza dalla corrente costante, Ibias:
dove Ibias è 200 µA (corrente standard predefinita per un componente della famiglia TMP61) e VSense è 1,63 V.
Per esempio:
Dopo aver convertito la tensione in una rappresentazione ADC, esistono diversi modi per ottenere la temperatura effettiva dalla tensione VSense del termistore. Il metodo più comune utilizza una tabella di ricerca (LUT), nota anche come tabella delle resistenze, normalmente fornita dal produttore del termistore. Una tabella LUT a 1°C ha 166 elementi e deve essere archiviata nel controller, ma ciò utilizza la memoria del controller. Per ridurre il numero di elementi, è possibile utilizzare una LUT a 5°C, ma in questo caso si potrebbero verificare degli errori lineari nel calcolo. Una LUT a 5°C richiederà 33 elementi, ma nessuno vuole vedere una risoluzione di 5°C, quindi sarà necessaria un'ulteriore elaborazione della LUT per ottenere una risoluzione migliore di 5°C o 1°C. Ne parlerò ulteriormente nella sezione Interpolazione lineare.
Un altro metodo consiste nell'utilizzare un'equazione di Steinhart-Hart, che si basa su un adattamento della curva polinomiale di 3° ordine. Per il completamento sarà necessario il calcolo del log naturale ed è necessario disporre di un controller a virgola mobile o di librerie matematiche a virgola mobile per eseguire i calcoli. L'equazione di Steinhart-Hart è più accurata di una LUT.
I PTC possono utilizzare un'equazione polinomiale, data l'uscita lineare del dispositivo. Le equazioni polinomiali sono il modo più accurato per ottenere una temperatura da un termistore. Un polinomio è un'espressione matematica di variabili che coinvolge solo le operazioni di addizione, sottrazione, moltiplicazione e numeri interi non negativi. Un altro modo per descrivere i polinomi è che forniscono un'equazione di adattamento alla curva per una pendenza. È necessario applicare personalmente l'adattamento del polinomio e quindi risolvere la funzione di regressione (la temperatura basata sull'adattamento della curva) per ottenere la temperatura. La maggior parte dei PTC si basa su polinomi.
Non preoccuparti; una volta che avrai imparato i polinomi, otterrai una migliore precisione; inoltre, non avrai bisogno di una LUT nel controller. Si tratta di semplici funzioni matematiche che possono essere elaborate più velocemente di una LUT con interpolazione. TI dispone di uno strumento di progettazione in grado di fornire una LUT o una funzione di regressione e polinomiale del quarto ordine, con esempi di come applicare queste funzioni matematiche in codice C per il controller per ottenere le temperature più precise da un termistore.
Una LUT varia tipicamente da -40°C a 125°C, ma varierà in base ai limiti termici del termistore. Esistono due tipi di LUT: 1°C e 5°C. Vedere la Figura 2 per esempi.
Il metodo LUT funziona in questo modo: