Nel mondo dell’IoT (Internet of Things) in cui stiamo entrando a grandi passi, c’è un elemento che la farà da padrone: i sensori. Quale che sia il dispositivo che stiamo cercando di interconnettere, avrà un cervello digitale, mentre il nostro mondo è intrinsecamente analogico. I sensori rappresentano il ponte tra i due mondi, e vanno trattati con la stessa cura ed attenzione riservata al “cervello” stesso della T in IoT. Sfortunatamente, nella maggior parte dei casi, non potete prendere un sensore e attaccarlo direttamente ad un microcontrollore. C’è una sorta di grigia terra analogica, nel mezzo, che vi permette di farlo nella maniera migliore possibile, ed è in questa terra spesso incognita che vogliamo guidarvi oggi.
L’EROE DEI DUE MONDI
Non è semplice vivere a cavallo di due mondi. Ci si ritrova tirati tra richieste opposte che non è semplice conciliare. Da un lato c’è un universo fatto di… bè, di tutto di più. Dall’altro c’è un mondo che si basa su due grandezze: tensione e corrente. La vita ingrata del sensore è tutta un “generami una tensione simile a questa umidità”, o “estraimi un pò di corrente da questa temperatura”. Il sensore fa quello che può, ma non sempre ciò che riesce a tirar fuori soddisfa chi quella tensione o quella corrente la deve andare ad utilizzare.
Dal punto di vista del sensore, ci sono tali e tanti fenomeni fisici da convertire che è impossibile generare tensioni o correnti più o meno sempre simili, ad esempio, sempre comprese tra 0 e 5 V, o tra 1 e 2 mA. Dal punto di vista dell’utilizzatore, sia esso un microcontrollore o un PC, o qualsiasi altra cosa vi venga in mente che possa utilizzare la vostra temperatura, i valori devono essere sempre quelli, indipendentemente dalla grandezza che si vuole misurare, o dal sensore che si vuole collegare. Sarebbe troppo complicato fare altrimenti. I micro sono digitali; tensioni e correnti sono analogiche; il povero ADC preso nel mezzo non può far altro che dire: “guardate, io sono in grado di leggere questi valori qua; cercate di darmeli”.
Il mismatch tra i valori in uscita dal sensore e quelli in ingresso all’ADC (Figura 1) è la prima e forse più nota barriera tra i due mondi che vogliamo interconnettere. La seconda è una che spesso passa inosservata, se non addirittura ignorata: il mismatch tra l’impedenza d’uscita del sensore e quella d’ingresso dell’ADC. La natura è pigra. In natura, tutto tende, spontaneamente, allo stato a più bassa energia, quello più “tranquillo”. Una biglia sul bordo di una ciotola tende a rotolare verso il fondo; il programmatore tende a scrivere il codice più breve possibile e gli elettroni ad andare verso massa, e lungo il percorso a più bassa impedenza, ossia il percorso che meno si oppone al loro passaggio.
Se l’impedenza d’ingresso dell’ADC è bassa, o quantomeno paragonabile a quella d’uscita del sensore, gli elettroni che quest’ultimo ha così faticosamente prodotto tenderanno a perdersi verso massa, invece di entrare nel micro, come nella Figura 2. Questo è uno spreco. Già in molti casi gli elettroni estratti sono appena una manciata; se poi molti vanno persi diventa veramente tutto inutile.
Se il sensore "più di tanto non può fare", e l’ADC "anche lui più di tanto non può fare", non ci sono alternative: dobbiamo mettere qualcosa, nel mezzo, che permetta ai due di lavorare nella maniera migliore possibile. In questo modo, anche se il sensore estrae solo quello che può, comunque l’ADC ne avrà abbastanza per fare ciò che deve. E come vedremo tra un attimo, la carta vincente in questo gioco è l’amplificatore operazionale.
JACK OF ALL TRADES
L’amplificatore operazionale, op-amp per gli amici, viene introdotto sempre nello stesso modo. È il triangolino con guadagno infinito, impedenza d’ingresso infinita e impedenza d’uscita nulla. E anche se non sembra, queste tre caratteristiche (cui avrete di sicuro già opportunamente sostituito “infinito” con “molto alto”) sono esattamente ciò che ci serve per interfacciare un sensore ad un ADC.
“Impedenza d’ingresso infinita” significa che l’op-amp idealmente non assorbe corrente. Ricordate sempre che “tensione” è solo un modo conciso per dire che su un filo ci sono più elettroni che su un altro; se prendete un op-amp e lo collegate a questo filo, come nella Figura 3, il fatto che non assorba corrente significa che quegli elettroni così faticosamente prodotti dal sensore non vengono toccati, e dunque l’amplificatore non modificherà minimamente il valore di tensione generato dal sensore. L’op-amp prende quello che gli viene dato in ingresso e lo amplifica, senza rovinarlo.
“Impedenza d’uscita nulla” significa che l’op-amp, sempre idealmente, butta fuori, in uscita, tanta corrente quanta se ne vuole. Questo significa che non importa cosa sia collegato a valle dell’amplificatore: comunque saremo in grado di fornire abbastanza corrente da pilotarlo. Sostanzialmente, l’impedenza d’ingresso infinita e quella di uscita nulla, rendono il funzionamento dell’op-amp indipendente da quello che ha collegato a monte e a valle. Un op-amp opportunamente dimensionato è l’interfaccia per tutti i gusti che cercavamo. Potete vedere l’op-amp come un ponte tirato tra due mondi diversi. Le impedenze fanno da pilastri sui due lati; il guadagno li collega insieme. L’unica difficoltà la si ha se uno dei due lati del ponte si dovesse trovare un pò più in alto dell’altro; in questo caso, prima di poter tirare la strada, dobbiamo abbassare uno dei due lati o alzare l’altro.
Riconsideriamo la situazione della Figura 1. L’uscita del sensore va da 2 a 4 V, mentre l’ingresso dell’ADC va da 0 a 5 V. Per costruire il nostro ponte, dobbiamo innanzitutto togliere 2 V dall’uscita del sensore, così da riportarla nel range 0 - 2 V, e poi amplificare tutto, così che all’uscita dell’amplificatore i 2 V siano diventati 5. Un op-amp con un guadagno di 2.5 è tutto ciò che ci serve. Questo potrebbe lasciare un attimo perplessi. Non abbiamo appena detto che l’op-amp ha guadagno infinito? In effetti sì. Questo non è un bene. Un guadagno infinito è un pò più grande di 2.5, e distorcerebbe completamente il nostro segnale. Fortunatamente, l’impedenza d’ingresso infinita permette di dimostrare che, se colleghiamo qualche resistore in maniera opportuna attorno all’amplificatore, possiamo ridurne il guadagno a valori per noi più utili.
Ad esempio, se collegassimo i resistori come nella Figura 4, potremmo dimostrare (ma siamo buoni e non lo facciamo) che questo circuito in uscita genera:
Non sembrerebbe, ma il gioco è praticamente fatto. Scegliamo Rf e Ri in modo tale che il loro rapporto sia 2.5, ad esempio prendendo Rf pari a 25 kΩ, Ri pari a 10 kΩ e V2 pari a 2 V e siamo a posto. C’è da dire che questo circuito non va bene qualora il nostro sensore producesse (e ce ne sono), segnali di uscita con escursioni negative, ad esempio comprese tra -1 V e 1 V. In questo caso, infatti, per uguagliare i due lati del ponte dovremmo “tirare su” l’uscita del sensore di 1 V, cosa che con il circuito della Figura 4 non possiamo fare, visto che sottrae la seconda tensione alla prima. Ce ne serve un altro che invece la sommi.
Fortunatamente, di configurazioni dell’op-amp ce ne sono quante ne volete. Quella della Figura 5, ad esempio, produce in uscita:
È un minimo più complicato, in questo caso, ricavare i valori delle due resistenze, visto che la formula del guadagno (la roba prima delle tensioni d’ingresso) è un pò più elaborata, ma neanche più di tanto. Nel nostro esempio, per avere un guadagno di 2.5 dovremmo avere un rapporto Rf/Ri pari a 4. Basta scegliere Rf e Ri senza prendere valori assurdi (40 kΩ e 10 kΩ ci sembrano ragionevoli) e siamo a posto. [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2660 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.