L’equazione Beta
La resistenza di un termistore NTC scende quando si scalda, più o meno in modo esponenziale. I datasheet danno la resistenza a 25 °C (R25) e un valore B, che insieme descrivono la curva:
R(T) = R25 × e^(B × (1/T − 1/298,15)) T = 1 ÷ (1/298,15 + ln(R ÷ R25) ÷ B) − 273,15 (T in kelvin: °C + 273,15)
Esempio: un termistore da 10 kΩ B3950 a 50 °C. 1/323,15 − 1/298,15 = −0,00025948; × 3950 = −1,0249; e^−1,0249 = 0,3588; R = 10 kΩ × 0,3588 ≈ 3,59 kΩ.
B25/50 o B25/85?
B si ricava dalla resistenza a due temperature, e il datasheet indica quali: B25/50 usa 25 e 50 °C, B25/85 usa 25 e 85 °C. Per lo stesso componente i due valori sono un po’ diversi: il Murata NCP18XH103F03RB ha 3380 K come B25/50 e 3434 K come B25/85. Usa quello la cui seconda temperatura è più vicina a dove misuri.
Come scegliere la resistenza fissa
In un partitore la tensione cambia più in fretta con la temperatura quando la resistenza fissa è uguale a quella del termistore a quella temperatura. Quindi scegli la resistenza a metà dell’intervallo che ti interessa: 10 kΩ per un termistore da 10 k intorno alla temperatura ambiente, circa 3,6 kΩ per 0–100 °C (3,59 kΩ a 50 °C). Più ti allontani dal centro, più gradi copre ogni passo dell’ADC.
Il lato su cui va il termistore inverte soltanto la curva: con il termistore verso GND la tensione scende quando si scalda, con il termistore verso l’alimentazione sale.
Resistenza di un termistore da 10 kΩ B3950
| Temperatura | Resistenza | α |
|---|---|---|
| -20 °C | 105 kΩ | -6,16 %/°C |
| -10 °C | 58,2 kΩ | -5,7 %/°C |
| 0 °C | 33,6 kΩ | -5,29 %/°C |
| 10 °C | 20,2 kΩ | -4,93 %/°C |
| 20 °C | 12,5 kΩ | -4,6 %/°C |
| 30 °C | 8,04 kΩ | -4,3 %/°C |
| 40 °C | 5,3 kΩ | -4,03 %/°C |
| 50 °C | 3,59 kΩ | -3,78 %/°C |
| 60 °C | 2,49 kΩ | -3,56 %/°C |
| 70 °C | 1,76 kΩ | -3,35 %/°C |
| 80 °C | 1,27 kΩ | -3,17 %/°C |
| 90 °C | 934 Ω | -3 %/°C |
| 100 °C | 698 Ω | -2,84 %/°C |
| 110 °C | 529 Ω | -2,69 %/°C |
| 120 °C | 407 Ω | -2,56 %/°C |
Calcolata con l’equazione Beta, R25 = 10 kΩ, B = 3950 K. α è la variazione di resistenza per grado. I componenti reali seguono la tabella del loro datasheet, soprattutto lontano da 25 °C.
Precisione
Di solito l’errore dipende da tre cose. La tolleranza del termistore: ±1 % su R25 vale circa ±0,26 °C intorno alla temperatura ambiente per un componente con B 3380, perché lì la sua resistenza cambia di circa il 3,8 % per grado. Il modello: l’equazione Beta è esatta alle sue due temperature di riferimento e fuori se ne allontana; su un intervallo ampio usa l’equazione di Steinhart–Hart con tre punti di calibrazione. E l’autoriscaldamento: la corrente del partitore scalda il termistore, quindi tienila bassa, oppure alimenta il partitore solo durante la misura.
Domande frequenti
Cosa significa B3950 su un termistore?
È il valore B, 3950 K: quanto ripidamente la resistenza scende con la temperatura. Insieme alla resistenza a 25 °C (10 kΩ in un “10k B3950”) definisce la curva che usa il calcolatore. Il datasheet indica tra quali due temperature è stato misurato, per esempio 25/50 °C.
10 kΩ o 100 kΩ?
Scegli quello la cui resistenza resta in un intervallo che il partitore riesce a leggere alle tue temperature. 10 kΩ va bene per ambiente, acqua e frigorifero. A 250 °C un 10 kΩ B3950 scende a circa 34 Ω, per questo gli hotend delle stampanti 3D usano termistori da 100 kΩ come il Semitec 104GT-2, che secondo l’equazione Beta a 200 °C ha ancora circa 500 Ω.
Quale resistenza fissa devo usare?
La resistenza del termistore a metà del tuo intervallo di temperatura: così il partitore è più sensibile dove misuri. Il calcolatore la ricava dall’intervallo che inserisci e la arrotonda a un valore standard.
NTC, PTC o DS18B20?
Un NTC è economico, piccolo e veloce, ma servono un partitore, un ADC e la formula. In un termistore PTC la resistenza sale con la temperatura, spesso di colpo a un certo punto: per questo i PTC si usano soprattutto come fusibili ripristinabili e interruttori di sovratemperatura, più che per misurare. Il DS18B20 è un sensore digitale: niente calibrazione e ±0,5 °C da −10 a +85 °C secondo il datasheet, ma è più lento e limitato a −55…+125 °C.
Perché le mie letture sbagliano di qualche grado?
Controlla, in quest’ordine: che R25 e B corrispondano al tuo componente; il valore reale della resistenza fissa; che il codice preveda lo stesso collegamento (termistore verso GND o verso l’alimentazione); che il riferimento dell’ADC sia quello che il codice si aspetta; e l’ADC stesso. L’ADC dell’ESP32 non è lineare vicino a 0 V e in cima alla scala: tieni la tensione del partitore nella parte centrale o usa letture calibrate.
Come collego un termistore a un ESP32 o ad Arduino?
Un capo del termistore a GND, l’altro a un pin analogico e, attraverso la resistenza fissa, a 3,3 V (5 V su un Arduino a 5 V). Aggiungi un condensatore da 100 nF tra il pin e GND. Sull’ESP32 usa un pin dell’ADC1 come GPIO34: l’ADC2 non si può usare quando il Wi-Fi è acceso.