Pagina 1 di 3

Voltmetro usando ADC e PIC

MessaggioInviato: 23 giu 2014, 10:34
da AndreaVez
Salve a tutti!
Durante l'anno scolastico avevamo fatto un voltmetro usando un adc (0804, da 8 bit), un PIC (16f628a) e un display LCD. Questo voltmetro misura la tensione continua da 0 a 5 positiva con sensibilità 20mV (o errore di misura, chiamatelo come volete). Un voltmetro cosi non è un granchè perciò ho pensato di modificarlo aggiungendo inanzitutto un partitore all'ingresso per poter ridurre le tensioni che voglio misurare da 0 a 50V, a 0-5V. Poi ho aggiunto due operazionali, un raddrizzatore per fare il modulo della tensione così riesco a misurare anche quella negativa che la segnala un altro operazionale configurato da comparatore. A parte il fatto che il raddrizzatore si usa di solito per la tensione alternata (quindi non sono sicuro se sia la scelta migliore per fare il modulo di una continua) e a parte le alimentazioni che vorrei mantenere uguali per entrambi gli operazionali con V-=0 e V+=5 e non so se vada bene al raddrizzatore, vorrei poter ridurre quell'errore di misura che con gli 8 bit dell'ADC, da 0 a 50 diventa 200mV che non va bene per tensioni per esempio da 0 a 5. Se il resto va bene, vorrei chiedervi se potete per favore trovare un modo per mantenere sti 200mV per le tensioni da 10V-50V, mentre per quelle da 0-10 ridurre al massimo a 40mV (penso che bisogna giocare sul partitore e mettere degli interruttori o pulsanti per la scelta).

PS: ho visto che ci sono soluzioni migliori su internet per fare il voltmetro ma usano integrati che non conosco, vorrei capire se c'è la possibilità di migliorare questa soluzione qua. Al massimo potrei ridurre tutto usando un PIC con ADC interno.

Ho messo solo il circuito che precede l'ADC perché il resto è troppo lungo da fare con fidocadj e non c'entra tanto con il problema.Il primo operazionale funziona da raddrizzatore (che ho trovato su internet) mentre il secondo da comparatore rispetto a massa.
R=10kOhm. Il trimmer è usato per avere una resistenza da 90kOhm sul partitore secondo i calcoli.


Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 2:35
da gill90
Ciao,
allora, il circuito che hai postato necessita di un paio di considerazioni, in particolare il raddrizzatore di precisione:



Non capisco il segnificato della R in retroazione tra il partitore in ingresoo e l'ADC... perché l'hai messa? Per valutare quello che può o non può fare l'OPAMP, valuta l'escursione per tutti i possibili ingressi: vuoi che il tuo circuito funzioni solo per tensioni negative? In tal caso l'uscita dell'OPAMP assume un valore minimo di circa 0.6V (la caduta sul diodo D2): infatti D1 è spento e D2 è in conduzione. Quindi qui puoi utilizzare un'alimentazione singola, però la massima tensione sintetizzabile dall'OPAMP è 5V se l'OPAMP è rail-to-rail, ciò implica che la minima tensione che puoi misurare non sarà -5V ma circa 5-0.6V=4.4V circa, cioè 5V meno la caduta sul diodo. Rail-to-rail significa che la massima (e minima) tensione sintetizzabile sono molto prossime alle tensioni di alimentazione. Così un OPAMP suddetto se alimentato a +5V e 0V potrà portare l'uscita a massimo +5V e minimo 0V. Viceversa, un OPAMP non rail-to-rail sintetizzerà, ad esempio, al massimo +4.6V e al minimo 0.4V. Ovviamente per applicazioni del genere è d'obbligo un rail-to-rail, altrimenti i range di utilizzo si ridurranno drasticamente.
Per il comparatore, invece, suggerirei di invertire i due ingressi, così la presenza di una tensione negativa sarà segnalata da un'uscita alta, e da una configurazione a trigger di Schmitt per renderlo più resistente ai disturbi:



Detto ciò, per l'errore si può solo agire adattando al massimo il range in ingresso: se vuoi una modalità per il 0-10V e un'altra per il 10-50V basta solo metterci un commutatore:



Così avrai un partitore per il range 0-10V e un altro per i 0-50V. La risoluzione è dunque 40mV per il primo e 200mV per il secondo.

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 9:35
da edgar
AndreaVez ha scritto: Un voltmetro cosi non è un granchè ...

I problemi di fondo sono due: la poca risoluzione e l'impossibilità di misurare tensioni negative.
Personalmente non amo mettere circuiti attivi che poi possono derivare e pregiudicare la qualità della misura, preferisco avere qualcosa che sia già adeguato di suo.
Invece di cercare di adattare un PIC a fare qualcosa per cui ha i suoi limiti, ti suggerirei di usare un ICL7106/7107. Con un minimo di sforzo hai un DVM con alimentazione singola, fondo scala +/- 200 mV e risoluzione 4000 punti, quasi 12 bit. L'ADC interno è a doppia rampa ed è specificato per misurare 0 con 0V in ingresso grazie all'autozero. L'IC costa qualche euro

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 15:05
da AndreaVez
gill90 ha scritto:Non capisco il segnificato della R in retroazione tra il partitore in ingresoo e l'ADC... perché l'hai messa?


Grazie per la risposta. Effettivamente hai ragione, non serve questa resistenza. L'ho trovato su internet ma non mi sono accorto che era praticamente quello che avevo già analizzato senza di essa, un raddrizzatore che non fa passare le tensioni negative, solo quelle positive. A proposito dei rail to rail - non sapevo che ci fossero e ho già propvato a fare una simulazione e funzionano meglio. :-) Però ritornando al problema: io vorrei fare proprio il modulo della tensione continua quindi vorrei che le tensioni negative diventassero positive perché l'ADC non va per tensioni negative (almeno questo). Non so se questo sia possibile con gli operazionali. Ho visto altri esempi di raddrizzatori di precisione usando 2 operazionali però sono di nuovo progettati per la tensione alternata e ci sono sempre i diodi in mezzo che potrebbero provocare cadute (penso). Perciò chiedo se c'è un alternativa con operazionali altrimenti ho pensato all'integrato CD4066 che contiene degli switch dentro pilotati da segnali digitali. A sto punto potrei usare il comparatore per verificare se la tensione è negativa e dal PIC mandare il segnale a questi switch usati in modo da invertire i contatti. Però se ci fosse una soluzione per farlo con operazionali mi risparmierei un integrato (dato che uso già un operazionale per la comparazione) e parte del programma.

Grazie edgar. Darò un'occhiata a questi integrati.

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 15:37
da gill90
Il problema non sono le cadute, perché in uscita ti ritroveresti sempre la tensione in ingresso in modulo. Il punto sono le massime tensioni che puoi misurare: in questo caso non potrai misurare meno di -4.4V circa, cioè non puoi arrivare al -5V perché l'operazionale sautra e oltre non ci puoi andare con una singola alimentazione da +5V. Utilizzare un integrato a switch CMOS secondo me è un'idea migliore, anche perché non ti servono particolari applicazioni ed è sufficiente invertire il senso della commutazione. A dire la verità io non ne ho mai usati quindi nella pratica non so dirti quanto sono le cadute resistive interne e le tensioni massime... Guardando il datasheet direi che può fare al caso tuo, ha una resistenza in stato ON piuttosto alta ma siccome a valle ci metti l'ADC si ritroverà una resistenza di ingresso molto elevata e di conseguenza non avrà cadute apprezzabili. Prova con questo sistema (intanto per la fascia [-5V, 0V]), e se funziona puoi aumentare anche il range di tensioni in ingresso. Non aspettarti grandi cose però!

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 15:48
da PietroBaima
Che io sappia non si mette un raddrizzatore per misurare tensioni positive e negative.
In genere si aggiunge un offset a metà tensione di riferimento e si acquisisce.
In questo modo le tensioni di ingresso sono sempre positive.
Questo metodo, naturalmente, ha il costo di un bit, ma ci sono tecniche per stabilire il segno della tensione di ingresso (con il micro è sufficiente vedere se la tensione digitalizzata è superiore o inferiore a 2^(n-1) dove n è il numero di bit del convertitore) e poi, se la tensione è positiva, annullare l'offset e se è negativa porlo a fondo scala.
Credo che con il micro non sarebbe troppo difficile da fare.
In genere la rete di ingresso consiste in soli elementi passivi con qualche MOS per il cambio del fondo scala (ma con il micro si potrebbe configurare una o più uscite in open-drain e utilizzare direttamente il MOS della logica di uscita).

Previo che se io dovessi davvero fare un voltmetro con un micro cercherei di ricondurmi ad una misura in frequenza, facendo, per esempio, un voltmetro a integrazione doppia.

Sarebbe bello avere il parere di Foto UtenteDirtyDeeds, se ha un attimo di tempo.

Ciao,
Pietro.

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 16:14
da TardoFreak
Io taglierei la testa al toro ed utilizzerei un ad a 16 bit con interfaccia I2C come QUESTO.
Per fare un voltmetro va più che bene e costa pochissimo, meno di 2 euro.
Ovviamente con 0 centrale (senza raddrizzatore, a metà della tensione di ingresso come ha detto Foto UtentePietroBaima).
Si otterrebbero comunque 15 bit in positivo e 15 in negativo.

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 19:04
da edgar
AndreaVez ha scritto:Grazie edgar. Darò un'occhiata a questi integrati.

Dimenticavo: non a caso una buona parte dei multimetri economici sul mercato usa come ADC il 7106

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 19:37
da DirtyDeeds
PietroBaima ha scritto:In genere si aggiunge un offset a metà tensione di riferimento e si acquisisce.


Sì, in genere si fa così. Per poterlo fare, però, la tensione di riferimento dell'ADC deve essere accessibile.

Ciò detto, volendo fare un voltmetro con caratteristiche decenti, opterei per una delle seguenti possibilità:

  1. Sostituzione dell'ADC con un delta-sigma bipolare: ce ne sono di buone caratteristiche a prezzo contenuto. Eventualmente il micro può essere utilizzato, oltre che per interfacciare l'ADC, anche per realizzare un sistema di auto zero nel caso non fosse presente nell'ADC. Visto che l'OP sta già usando un ADC esterno al micro, questa mi sembra la strada più percorribile.
  2. Se le specifiche non sono stringenti si può pensare di prendere un micro con ADC interno e poi metterci un po' di circuiti ausiliari per traslare il campo di misura e per migliorare un po' le caratteristiche.
  3. Realizzare, come suggerito da Foto UtentePietroBaima, un ADC discreto controllato dal micro. Farei questa scelta solo se volessi realizzare un voltmetro con caratteristiche superiori a quelle degli ADC comunemente trovabili in commercio, con tutte le difficoltà che questo comporta, però (e a quel punto cercherei di realizzare un ADC a integrazione multipla o un delta-sigma).

gill90 ha scritto:se vuoi una modalità per il 0-10V e un'altra per il 10-50V basta solo metterci un commutatore:




Questo non è, in generale, un buon modo per fare un partitore variabile: perché?

Re: Voltmetro usando ADC e PIC

MessaggioInviato: 25 giu 2014, 20:12
da gill90
DirtyDeeds ha scritto:Questo non è, in generale, un buon modo per fare un partitore variabile: perché?

Azzardo che ho omesso un disaccoppiatore per rendere il partitore insensibile alla circuiteria a valle, giusto?