Pages: [1]   Go Down
Author Topic: Riferimento analogico  (Read 1180 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Usando come riferimento analogico il Default l'arduino uno (ed il mini 328?) usa i 5 Volt dell'alimentazione o ha all'interno un riferimento di precisione? buona giornata Giorgio
Logged

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il default usa la tensione di alimentazione fornita al microcontroller, se questo viene alimentato correttamente la tensione di uscita è molto stabile e sufficientemente precisa, ma se con arduino si usano relè o altri carichi prelevando i 5Volts il riferimento finisce per non essere molto stabile.

C'è anche Ref 1.1 interno al microcontroller, (per abitarlo cerca nel reference di arduino che io non me lo ricordo), questo è molto
stabile ma limita la tensione di riferimento a 1.1Volts, ci dovrebbe anche essere la possibilità di fornire un riferimento esterno, ma si
deve usare un circuito esterno non proprio da principiante, però riporto l'informazione, magari qualcuno ne ha necessità.

Che problemi riscontri con il riferimento impostato a Default?

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti spiego, la misura che dovrei fare dovrebbe essere piu' precisa possibile. Da quello che mi dici arduino per default usa i 5 volt provenienti dall'usb o quelli stabilizzati dal suo IC di alimentazione. L'usb non e' affatto preciso, mi resta da capire quanto preciso e' il suo stabilizzatore quando l'alimento dall'esterno. Senno mi rimane, come riporti, usare una tensione di riferimento esterna ottenuta da quei piccoli IC che forniscono una tensione precisa. Dovrei anzi averne uno ma a 2,5V spero se ne trovino anche a 5V,

Ciao Giorgio
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21857
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dipende cosa vuoi misurare.
Se usi il sensore con una resistenza che fa da partitore resistivo la lettura é piú corretta se usi coem alimentazione del partitore e come riferimento la stessa tensione (per esempio l' alimentazione). se il sensore da una tensione é piú preciso se usi un riferiemnto di precisione esterno.
Ciao Uwe
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22938
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@padoang:
questa è la pagina di riferimento
http://arduino.cc/en/Reference/AnalogReference
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9686
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'usb non e' affatto preciso, mi resta da capire quanto preciso e' il suo stabilizzatore quando l'alimento dall'esterno.

Se devi fare misure precise, nel limite del ADC degli AVR, è sempre indispensabile conoscere esattamente il valore di Aref e a meno che non utilizzi gli appositi generatori di tensione campione, esistono di vari valori.
E' sempre indispensabile misurare con un buon multimetro il valore di Aref direttamente sul suo pin dove è sempre presente questa tensione se abbinata alla alimentazione del micro o al suo generatore campione interno.
Da notare che i riferimenti interni degli AVR sono stabili e con poco rumore, però hanno una sensibili tolleranza sul valore di tensione nominale pertanto è indispensabile misurare la tensione reale.
Poi ci sarebbero da fare tutta una serie di considerazioni sul fatto se la misura è di tipo raziometrico oppure no e adottare il corretto metodo a seconda del caso.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buongiorno a tutti,
mi unisco alla discussione in quanto ultimamente anch'io sto affrontando l'argomento riguardante la precisione del riferimento interno dell'atmega328.

Parlando della lettura analogica, sappiamo tutti che Arduino UNO riesce a discriminare la tensione attraverso i 10bit del suo convertitore, pertanto se il riferimento è a 5V siamo attorno ai 5mV di incertezza sulla lettura.

La lettura però viene fatta avendo come riferimento la tensione di alimentazione (o quella di Vref) presente sull'atmega, pertanto se questa non è esattamente 5V si rischia di calcolare male la tensione letta sul sensore (e di conseguenza la misura). Attraverso un po' di codice (vedi ReadVcc), è possibile "chiedere" all'atmega la tensione alla quale, in quell'istante, è alimentato e pertanto condurre meglio il calcolo e "affinare" la precisione di lettura.

Fin qui tutto pare tranquillo... e invece no. La tensione di riferimento interna dell'atmega328 (1.1V) usata per misurare (se viene impostata come riferimento) o per valutare la tensione di alimentazione che in quell'istante è presente (i circa 5V), ha una precisione di +-10%.

Risulta quindi che invece dei 1.1V si possano avere 1.0V o 1.2V. La stessa precisione (+-10%) si riperquote sulla "ReadVcc", restituendo quindi un valore inesatto.

Accade così, ad esempio, che l'atmega dica che è alimentato con 5.1V (ReadVcc) mentre il multimetro (che ha una precisione sulla lettura dello 0.5%) rilevi tutt'altra tensione.

Non sono in grado di dire nulla sulla fluttuazione del riferimento interno, ne di come questo possa cambiare in funzione della tensione di alimentazione. Ma se pensiamo che l'errore rimanga costante al cambiare della tensione di alimentazione, la lettura con multimetro della Vref penso che sia il miglior modo per mettere apposto le cose.

Ci sono diversi siti in cui si parla di una "taratura" dell'atmega, nel senso di fare un po' di letture di tensione (utilizzando valori campione), annotare il valore letto dall'atmega ed estrapolare una legge (auspicabilmente una retta) che trasformi la lettura fatta, nel valore campione.

Un saluto e buona giornata,
Tredipunta.



Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12641
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Avevo letto poco tempo fa questa cosa dell'ATmega che auto-legge la tensione di alimentazione, ovviamente sono giunto alla conclusione che è di una grande inutilità, non può uno strumento di misura misurare se stesso, chiaro che si porta appresso tutte le proprie imprecisioni e tolleranze. Sempre nei giorni scorsi ho elencato in un Topic una serie di indispensabili interventi da fare sul circuito, quando si vuole usare l'ADC nel modo più preciso possibile. Il Ref Internal a 1,1V nominali è piuttosto stabile, a prescindere la suo valore effettivo, ma chiaramente dipende anche dalla stabilità della tensione di alimentazione, quindi alla fine si torna al punto di partenza: serve un'alimentazione ultra-stabile, usando poi il Ref INTERNAL o un integrato specifico come tensione di riferimento (ne esistono di vari tagli) si ottiene una stabilità più che accettabile, a quel punto il limite diventa il numero di bit dell'ADC (10), limite che, se non servono letture velocissime, si può migliorare portandolo ad 11 massimo 12 bit con la tecnica dell'over-sampling.
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intanto ringrazio per le utilissime risposte. La misura che devo effettuare e' la tensione che esce da un IC che misura i dBm (25mV/dBm) e che puo' variare da 0 alla tensione d'alimentazione (circa 5V)... scrivendo questo mi vien da pensare che se uso la medesima alimentazione per l'IC e per l'arduino  l'errore del riferimento preciso sparisce. Mi spiego l'IC fornisce una tensione proporzionale alla misura che effettuo e quando la misura e' massima l'uscita va sempre al valore dell'alimentazione (circa 5V) ed in tal caso l'analogico dell'arduino segna sempre 1023, analogamente in proporzione per misure inferiori.
Sbaglio ad affermare che e' un caso in cui la precisione del riferimento non conta?

giorgio
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pardon ho scritto un'inesattezza: l'uscita dell'IC e' assoluta e non riferita alla sua Vcc, per cui quanto ho scritto nella precedente decade.
A questo punto utilizzero'  un IC esterno che fornisce una tensione precisa, non vorrei aggiungere altro al set-up ed in questo modo evito una taratura in piu', buona fine settimana, Giorgio
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12641
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Però se ti servono tutti i 5V l'idea dell'IC esterno non so quanto sia praticabile. Piuttosto io ricorrerei ad un buon integrato stabilizzatore di precisione a 5V per alimentare tutto, che ti garantisca variazioni così basse da poter essere assolutamente tollerate. I regolatori classici (7805) non hanno un controllo tipo feedback e quindi sono sempre possibili leggere variazioni in base a corrente erogata e temperatura; per quanto ne so invece un regolatore switching (step-up/down) di buona qualità garantisce una precisione maggiore proprio a motivo del controllo retroattivo che fa sulla tensione d'uscita.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9686
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I regolatori classici (7805) non hanno un controllo tipo feedback e quindi sono sempre possibili leggere variazioni in base a corrente erogata e temperatura;

Non è proprio così, i regolatori 78xx, e più in generale tutti quelli analogici/lineari, sono tutti dispositivi con feedback, che poi sia esterno tramite un pin con eventuale rete resistiva oppure sia interno non cambia nulla.
Non è possibile ottenere una tensione stabilizzata senza una retroazione, lo schema di base è sempre lo stesso, un opamp con funzione di comparatore, seguito da uno stadio di potenza, che mantiene l'equilibrio tra tensione di riferimento, ottenuta tramite un generatore campione di precisione interno, e la tensione in uscita.
Le variazioni di tensione sotto carico sono normali, parliamo di 10-20 mV a pieno carico per i regolatori più recenti, idem per quelle dovute alla temperatura.
Negli stadi di alimentazione fatti bene, dove è molto importante anche la pulizia della stessa, si usa uno switching per il lavoro grosso, p.e. passare da 12V a 6.5V, seguito da un regolatore LDO.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12641
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie della precisazione, in effetti sul mio ultimo lavoro sto usando l'LDO LM1117.5V ed effettivamente è molto stabile, ma non conoscendo le tecnologie costruttive pensavo ciò che ho scritto.... Lo switching in effetti ha un ripple elevato da quello che leggo nelle caratteristiche, però ha un eccellente rendimento (mi pare di leggere spesso 80-90-95%, non so quanto siano realistici), e quindi possono essere effettivamente usati per abbattere la tensione iniziale con spreco energetico molto basso, lasciando la parte finale all'LDO che lavora nelle migliori condizioni.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9686
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

però ha un eccellente rendimento (mi pare di leggere spesso 80-90-95%, non so quanto siano realistici)

Sono rendimenti realistici, però anche un LDO può avere un rendimento alto se lo usi nel giusto modo.
Esempio pratico:
Parti da 12.0V e li riduci a 5V con un regolatore lineare, 7V vanno persi sul regolatore stesso, rendimento circa 42%, è più la potenza persa in calore che quella utilizzata.
Parti da 6.2V e li riduci a 5V con un LDO, il LM1117 ha un dropout massimo di 1.2V a pieno carico, il rendimento è circa 80%.
Detto in altri termini, non ha senso usare un LDO se la tensione in ingresso è molto maggiore alla Vout, non cambia nulla rispetto ad un regolatore non LDO, va benissimo quando la tensione in ingresso, stabilizzata, è pari alla Vout nominale più il dropout massimo.


Logged

Pages: [1]   Go Up
Jump to: