Spesso ci si dimentica di quanto intimamente connessi siano i sensori e la fisica del mondo in cui viviamo. In realtà è qualcosa di ovvio: del resto, lo scopo del sensore è proprio quello di convertire una grandezza qualsiasi in una di tipo elettrico, e per fare questo non si può che partire dalla fisica del processo che si vuole misurare. Le parole non le abbiamo scelte a caso. “Grandezza di tipo elettrico” è qualcosa di diverso da “tensione” o “corrente”, nel senso che non è detto che i sensori producano direttamente una tensione o una corrente. Anzi, nella maggior parte dei casi non accade. Ma i circuiti che conosciamo ragionano in termini di tensioni o correnti, quindi il problema è che manca qualcosa nel mezzo. Per poter usare la lettura del sensore, dobbiamo prima convertire questa grandezza in una tensione o in una corrente, e certe volte come farlo non è ovvio. Oggi vi parleremo di cosa si fa nel caso in cui la grandezza prodotta dal sensore sia una resistenza.
I FRUTTI DELLA TEORIA
Per la maggior parte degli studenti universitari, i primi anni sono nel migliore dei casi uno shock, nel peggiore una sofferenza. Si trovano davanti lavagne di conti, pile di “supponiamo che” e cataste di “per r sufficientemente grande”. L’elettronica è tutta attorno a noi e si tratta di qualcosa di tremendamente pratico: ne sfruttiamo gli effetti in tutti i modi immaginabili e inimmaginabili. Andando avanti, poi, molta di quella teoria si perde, o si dimentica, in genere con sollievo, spesso con indifferenza. Ma nel processo che porta dalla sofferenza al sollievo prima o poi la domanda cruciale passa per la testa. A che serve tutta questa teoria? Non a nulla. Spero non vi aspettaste una risposta diversa. È vero che molti ingegneri, con il passare del tempo, si rinchiudono nel loro personale paradiso dei bit e tendono a lavorare infischiandosene del mondo esterno. Scrivono codice che elabora dati ma non si pongono mai il problema della provenienza di quei dati. A seconda del lavoro che si fa, questo problema potrebbe essere rilevante oppure no; la cosa interessante è che la sua soluzione non è mai banale.
Prendiamo una grandezza facile e tranquilla come la temperatura. Come la inseriamo una temperatura in un computer? Di sicuro ci servirà un ADC. La temperatura è una grandezza analogica e i computer attrezzi digitali. Poi ci vuole qualcosa che trasformi la temperatura in una tensione o una corrente, le uniche cose che si possono far capire a un ADC. È qui che le cose si fanno interessanti. Potete andare su internet e chiedere a Google cosa si può fare, oppure potete sedervi e ragionare un pò. Se cambio la temperatura, il mio circuito se ne accorgerà, in qualche modo? Certo, perché in tutte quelle lavagne di formule che vi hanno fatto vedere a Fisica dello Stato Solido, c’era scritto che il moto termico degli elettroni influenza le correnti che circolano nei dispositivi. Questo fenomeno è particolarmente marcato nei semiconduttori, visto che la T di temperatura di solito compariva negli esponenziali.
Da un altro punto di vista, in mezzo a quel mucchio di teoria c’era scritto anche che la temperatura influenza i moti vibrazionali degli atomi che formano i reticoli cristallini dei materiali attraverso cui scorre la corrente, a tutti gli effetti ostacolando in misura maggiore o minore il moto degli elettroni. In pratica, più sale la temperatura, più aumenta la resistenza del materiale. Ma, in effetti, anche il caso dei semiconduttori può essere visto come una variazione della resistenza del materiale: gli elettroni sono sempre quelli, se ad un certo punto rileviamo più corrente, è come se la resistenza fosse diminuita. Adesso possiamo aprire Google e andare a vedere che consigli per gli acquisti ha da offrirci. Dopo aver fatto la spesa, però, dovremo sederci di nuovo a ragionare. Sappiamo che in linea di principio esistono componenti in grado di convertire una temperatura in resistenza, e Google ci dirà che questi componenti sono anche in vendita. Ma sappiamo rilevare questa variazione di resistenza? E questa, signore e signori, è la domanda di oggi.
LOST IN TRANSLATION
L’ADC sa leggere una tensione. Anche una corrente può andare bene, perché sappiamo come convertirla in tensione. Dunque, ciò che dobbiamo fare è trasformare questa resistenza in una tensione o una corrente. La cosa più semplice da fare è appellarci al buon vecchio Ohm: pompiamo una corrente attraverso il resistore e preleviamo la tensione che qui si genera.
Schema chiaro e semplice. Nota la corrente, misurata la tensione, si ricava la resistenza. Il problema è come generare questa corrente costante. Potremmo pensare di fare qualcosa di semplice, come usare un banale partitore resistivo. Il resistore sopra a quello di misura assorbe un pò di corrente dall’alimentazione e la butta nel resistore di sotto. La legge di Ohm sicuramente vale.
Come si vede dalla Figura 2, LTSpice non è tanto d’accordo. La tensione letta ha un andamento peggio che non lineare. In generale, quando si ha a che fare con dei sensori, il motto è “lineare è bello”. Se la relazione che lega la corrente nota alla tensione misurata è lineare, ricavare il valore di resistenza è immediato; se questa relazione si fa non lineare, le cose si complicano. In linea di principio, se questa relazione è nota, potrebbe essere ancora possibile invertire l’equazione e ricavare la resistenza, magari mediante un qualche genere di post-processing su microcontrollore. Ma spesso la relazione non è nota, o si deve ricavare mediante lunghe e noiose sessioni di taratura. Se non ci sono alternative si può anche fare, ma se esiste una soluzione migliore… bè, preferiamo quella! Ma perché questa non linearità? In realtà, la risposta è semplice. La tensione ai capi del resistore variabile è facile da calcolare:
Questa non è un’equazione lineare, visto che la resistenza che stiamo cercando di misurare sta anche al denominatore. Da un altro punto di vista, considerate che la corrente che circola in un partitore non è costante, ma cambia con i valori delle resistenze. Se la resistenza in basso aumenta, la corrente diminuisce. Non si scappa. Potremmo pensare a qualcosa di più sofisticato, tipo un transistor con una tensione di gate costante. Un transistor con una Vgs costante, in teoria si comporta come un generatore di corrente.
Come LTSpice ci dimostra nella Figura 3, però, questo vale solo in teoria. La tensione letta è anche stavolta marcatamente non lineare. L’approccio con il transistor non funziona perché il transistor è intrinsecamente un componente non lineare. La corrente di source è indipendente dalla Vsd, cioè dalla tensione ai capi del transistor, solo finchè il transistor resta saturo, e solo in prima approssimazione. Variando la resistenza di source (e questo è esattamente ciò che accade durante il processo di misura) è facile che il transistor passi in triodo, e in quel caso la corrente tutto è fuorché costante. Potremmo pensare di utilizzare circuiti più complicati per la generazione di questa corrente costante, ed è esattamente ciò che viene fatto in certi chip integrati concepiti proprio con lo scopo di pilotare una resistenza variabile, come ad esempio il MAX31865 della Maxim Integrated. Oppure potremmo pensare di affidarci ancora una volta ad un vecchio amico: l’amplificatore operazionale.
Osservate il circuito nella Figura 4. A causa della massa virtuale all’ingresso dell’op-amp, ai capi di R1 cade tutta la tensione costante che abbiamo applicato sull’altro lato. Questa tensione è costante, e costante resta. Di conseguenza, anche la corrente che così facendo stiamo pilotando in R1 resta costante. E sempre grazie alla massa virtuale, la tensione in uscita coincide con quella sulla resistenza di misura. In più, a causa dell’impedenza in ingresso infinita dell’op-amp, tutta la corrente costante su R1 finisce in Rx: abbiamo pompato una corrente costante e indipendente da tutto sulla resistenza di misura! Il segno della tensione costante VCC dipende da se vogliamo che la tensione in uscita segua quella su Rx o se ci sta bene che sia invertita. Se VCC è negativa, la corrente circola dall’uscita verso l’ingresso, e la caduta su Rx è positiva; se VCC è positiva, tutto il contrario. Tenete ovviamente presente che se volete che il circuito vi generi delle tensioni negative, dovete anche prevedere un’alimentazione duale. [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2543 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Caro Cristiano, ho letto con piacere questo tuo articolo e anche quelli precedenti; ho notato con quanta passione ti dedichi alla tecnologia mettendo anche qualche nota bizzarra che non stanca, segno di dimestichezza degli argomenti. Poi ho dato uno sguardo alla tua presentazione personale: ti dico che hai una bellissima sindrome, non cambiare mai! Bisogna sentirsi sempre ragazzi anche nel proprio lavoro. In fondo, la vita è un gioco!
Grazie Mariangela. Quando scrivo qualcosa cerco sempre di essere il meno noioso possibile – aumentano le probabilità che chi legge arrivi in fondo all’articolo! E poi, dobbiamo pur divertirci con quello che facciamo! 😉