quanto preciso potrebbe diventare arduino come voltmetro?

volevo sapere se è stato realizzato qualche prototipo di misuratore preciso, "interfacciando" in qualche maniera piu ingressi o tutti e 6 gli ingressi analogici per visualizzare un unica misura,
ovviamente come riferimento di tensione se ne usa uno esterno (chip dedicati superprecisi)

provo a buttar giu un idea (è solo un' idea per il momento)

un ingresso si occuperebbe di visualizzare la cifra dei microvolt
un ingresso si occuperebbe di visualizzare la cifra dei millivolt
un ingresso si occuperebbe di visualizzare la cifra delle decine di millivolt
un ingresso si occuperebbe di visualizzare la cifra dei volt
un ingresso si occuperebbe di visualizzare la cifra delle decine di volt
un ingresso si occuperebbe di visualizzare la cifra delle centinaia dei volt

una scala tipo 999.999.9

A mio parere anche se usi un integrato esterno che faccia da amplificatore di tensione, poi ritrovi il collo di bottiglia negli 8 bit (massimo 10 di Arduino)

Forse usando il riferimento interno ad 1,1V qualcosa in più puoi fare. La risoluzione a 10 bit dell’ADC ti porta così una risoluzione massima di 0,001 V circa.

si ma se sono 8 bit per ingresso diventano 48 bit di precisione,

oppure c'è qualcosa che non afferro?

ADC esterno is the way XD

però se fai le cose in grande ti ci vogliono 20bit e un dip simile costa sui 20€

GINGARDU:

[quote author=Michele Menniti link=topic=113785.msg855863#msg855863 date=1341998469]
A mio parere anche se usi un integrato esterno che faccia da amplificatore di tensione, poi ritrovi il collo di bottiglia negli 8 bit (massimo 10 di Arduino)

si ma se sono 8 bit per ingresso diventano 48 bit di precisione,

oppure c'è qualcosa che non afferro?
[/quote]
c'è qualcosa che non afferri.

per ogni porta vi è internamente un adc da 8bit

tecnicamente se fosse possibile ridurre il range di lettura si potresti portarlo al massimo.

intendo:
se come dica leo metti l'aref ad 1V
poi ti fai una circuiteria esterna che divide ogni singolo volt avrai una precisione di 0.001V circa
però non so come potresti fare questo circuito esterno

però se entra più di 1V su una porta bruci il micro

superlol:
ADC esterno is the way XD

però se fai le cose in grande ti ci vogliono 20bit e un dip simile costa sui 20€

GINGARDU:

[quote author=Michele Menniti link=topic=113785.msg855863#msg855863 date=1341998469]
A mio parere anche se usi un integrato esterno che faccia da amplificatore di tensione, poi ritrovi il collo di bottiglia negli 8 bit (massimo 10 di Arduino)

si ma se sono 8 bit per ingresso diventano 48 bit di precisione,

oppure c'è qualcosa che non afferro?

c'è qualcosa che non afferri.

per ogni porta vi è internamente un adc da 8bit

tecnicamente se fosse possibile ridurre il range di lettura si potresti portarlo al massimo.

intendo:
se come dica leo metti l'aref ad 1V
poi ti fai una circuiteria esterna che divide ogni singolo volt avrai una precisione di 0.001V circa
però non so come potresti fare questo circuito esterno

però se entra più di 1V su una porta bruci il micro
[/quote]
ok vedo che hai intuito il mio ragionamento 8) se mettiamo come riferimento 0.1 volt la precisione si moltiplica per 10,
ora bisogna cercare il sistema "esterno" per fornire la cosa giusta a ogni ingresso

e mi hai fatto sorgere un dubbio arduino non regge le tensioni superiori a 5 volt
oppure soffre anche le tensioni superiori al voltaggio di riferimento?

GINGARDU:
volevo sapere se è stato realizzato qualche prototipo di misuratore preciso, "interfacciando" in qualche maniera piu ingressi o tutti e 6 gli ingressi analogici per visualizzare un unica misura,
ovviamente come riferimento di tensione se ne usa uno esterno (chip dedicati superprecisi)

provo a buttar giu un idea (è solo un' idea per il momento)

un ingresso si occuperebbe di visualizzare la cifra dei microvolt
un ingresso si occuperebbe di visualizzare la cifra dei millivolt
un ingresso si occuperebbe di visualizzare la cifra delle decine di millivolt
un ingresso si occuperebbe di visualizzare la cifra dei volt
un ingresso si occuperebbe di visualizzare la cifra delle decine di volt
un ingresso si occuperebbe di visualizzare la cifra delle centinaia dei volt

una scala tipo 999.999.9

Non funziona cosí.
Per primo l'elettronica usata nel ATmega garantisce una precisione adatta ai 10 Bit letti.
Per secondo aumentare la precisione vuol dire intervenire in tante parti del circuito incominciato dalla alimentazine, amplificatori ecc.
Per avere per esempio una precisione del 0,1% devi usare componenti (resistenze) con una tolleranza e precisione del 0,1%.

Anche usare dei ADC esterni non aiuta granché perché il resto del circuito (amplificazione, condizionamento del segnale e tensione di riferimento) devono avere la medesima precisone di quella del ADC. I componenti e il circuito devono avere oltre la precisone anche un rumore basso.

Ciao Uwe

però se entra più di 1V su una porta bruci il micro

NON è così, quando si imposta una ARef ad un valore inferiore ai 5V NON cambia l'alimentazione del circuito ADC, bensì solo il valore di riferimento per il comparatore. Quindi se imposti ARef internal (1,1V) ma anche external, con una tensione similare, applicando tensioni superiori 1,1V fino ad un massimo di 5V, semplicemente ottieni una lettura 1023; è dopo i 5,% volt che inizia il rischio di danneggiare il micro.

questa è una bella notizia 8)

uwefed:

GINGARDU:
volevo sapere se è stato realizzato qualche prototipo di misuratore preciso, "interfacciando" in qualche maniera piu ingressi o tutti e 6 gli ingressi analogici per visualizzare un unica misura,
ovviamente come riferimento di tensione se ne usa uno esterno (chip dedicati superprecisi)

provo a buttar giu un idea (è solo un' idea per il momento)

un ingresso si occuperebbe di visualizzare la cifra dei microvolt
un ingresso si occuperebbe di visualizzare la cifra dei millivolt
un ingresso si occuperebbe di visualizzare la cifra delle decine di millivolt
un ingresso si occuperebbe di visualizzare la cifra dei volt
un ingresso si occuperebbe di visualizzare la cifra delle decine di volt
un ingresso si occuperebbe di visualizzare la cifra delle centinaia dei volt

una scala tipo 999.999.9

Non funziona cosí.
Per primo l'elettronica usata nel ATmega garantisce una precisione adatta ai 10 Bit letti.
Per secondo aumentare la precisione vuol dire intervenire in tante parti del circuito incominciato dalla alimentazine, amplificatori ecc.
Per avere per esempio una precisione del 0,1% devi usare componenti (resistenze) con una tolleranza e precisione del 0,1%.

Anche usare dei ADC esterni non aiuta granché perché il resto del circuito (amplificazione, condizionamento del segnale e tensione di riferimento) devono avere la medesima precisone di quella del ADC. I componenti e il circuito devono avere oltre la precisone anche un rumore basso.

Ciao Uwe

mi sa che non ci comprendiamo su questa idea :~

la precisione massima va sempre sulla cifra piu a destra e due resistenze di precisione ci possono anche stare

ops scusate errore mio XD

pensavo cambiasse proprio tutta l’alimentazione al circuito

Questo detto da Michele vale per Arduino alimentato a 5V. Se si usa una versione 3,3V la tensione massima che reggono i pin é 3,3V.
Ciao Uwe

GINGARDU:
mi sa che non ci comprendiamo su questa idea :~

la precisione massima va sempre sulla cifra piu a destra e due resistenze di precisione ci possono anche stare

Non Ti servono 2 resistenze di precisione ma una bella manciata di resistenze.

Esempio misuri tensioni fino a 10V con una precisione di 7 cifre tipo 9,999999
Questa fai una conversione ADC e ottieni i uni.
Per misurare i decimi devi prendere la tensione da misurare e sotrarre 9,000000V e amplificare per 10,00000
Per misurare i centesimi devi prendere la tensione da misurare e sotrarre 9,900000V e amplificare per 100,0000
Per misurare i millesimi devi prendere la tensione da misurare e sotrarre 9,990000V e amplificare per 1000,000
ecc
Per arrivare a misurare i millionesimi devi prendere la tensione da misurare e sotrarre 9,999990V e amplificare per 1000000

Ho scritto 9,000000 perché la tensione da sotrarre é 9 virgola zero zero ecc percui precisa per 0,1 ppm ovvero 0,00001%
Tutti gli operazionali usati per amplificare o sotrarre devono essere di precisione con basissimo rumore ecc.

Ciao Uwe

uwe hai postato 2 volte :wink:

comunque ciò che voleva fare lui era prendere la tensione es 4.5V
mettiamo l'aref di arduino ad 1V ed otteniamo che ogni volt è divisibile per 1024 quindi ha una risoluzione di 0.001V
però lui non deve misurare 1V ma 4.5V
allora il suo intento era di costruire un circuito esterno che "suddivida" la tensione in modo da ottenere
1V
1V
1V
1V
0.5V
così inserendo ogni "suddivisione" nei pin di arduino otterrebbe come valori ritornati dall'ADC
1023
1023
1023
1023
511
in questo modo riesce a misurare con maggiore precisione e senza bisogno di alcun amp op e senza gain e rumori

superlol:
uwe hai postato 2 volte :wink:

comunque ciò che voleva fare lui era prendere la tensione es 4.5V
mettiamo l'aref di arduino ad 1V ed otteniamo che ogni volt è divisibile per 1024 quindi ha una risoluzione di 0.001V
però lui non deve misurare 1V ma 4.5V
allora il suo intento era di costruire un circuito esterno che "suddivida" la tensione in modo da ottenere
1V
1V
1V
1V
0.5V
così inserendo ogni "suddivisione" nei pin di arduino otterrebbe come valori ritornati dall'ADC
1023
1023
1023
1023
511
in questo modo riesce a misurare con maggiore precisione e senza bisogno di alcun amp op e senza gain e rumori

Grazie, ho cancellato uno.

Non aumenti la precisione,
Ottieni un valore numerico piú alto ma mica piú preciso. Non si devono confondere la precisione (% di errore di finescala) e la grandezza del numero dato dalla misura. Per esempio un apparecchio che Ti da una precisione del 1% non é piú preciso quando visualizza 1,00V o 1,001V nel range di 10V.

Come fai a suddividere la tensione in 1V, 1V, 1V, 1V e 0,5V ? L' unico modo che mi viene in mente sono riferimeti di tensione da 4V,3V,2V e 1V comparatori e sottrattori. comunque tutto cose che devono avere una precisione del 0,1%.

Ciao Uwe

uwefed:

superlol:
uwe hai postato 2 volte :wink:

comunque ciò che voleva fare lui era prendere la tensione es 4.5V
mettiamo l'aref di arduino ad 1V ed otteniamo che ogni volt è divisibile per 1024 quindi ha una risoluzione di 0.001V
però lui non deve misurare 1V ma 4.5V
allora il suo intento era di costruire un circuito esterno che "suddivida" la tensione in modo da ottenere
1V
1V
1V
1V
0.5V
così inserendo ogni "suddivisione" nei pin di arduino otterrebbe come valori ritornati dall'ADC
1023
1023
1023
1023
511
in questo modo riesce a misurare con maggiore precisione e senza bisogno di alcun amp op e senza gain e rumori

Grazie, ho cancellato uno.

Non aumenti la precisione,
Ottieni un valore numerico piú alto ma mica piú preciso. Non si devono confondere la precisione (% di errore di finescala) e la grandezza del numero dato dalla misura. Per esempio un apparecchio che Ti da una precisione del 1% non é piú preciso quando visualizza 1,00V o 1,001V nel range di 10V.

Come fai a suddividere la tensione in 1V, 1V, 1V, 1V e 0,5V ? L' unico modo che mi viene in mente sono riferimeti di tensione da 4V,3V,2V e 1V comparatori e sottrattori. comunque tutto cose che devono avere una precisione del 0,1%.

Ciao Uwe

beh però se devo misurare 5V con comparatore a 8bit sono meno preciso che a misurare 1V

non so in alto adige uwe, ma a pochi km più sotto da me 1/1024 è più basso come valore di 5/1024 XD

però effettivamente il problema rimane sempre "scomporre" la tensione

superlol:
non so in alto adige uwe, ma a pochi km più sotto da me 1/1024 è più basso come valore di 5/1024 XD

però effettivamente il problema rimane sempre "scomporre" la tensione

Sono consapevole che 1/1024 é un numero piú piccolo di 5/1024. Ma il punto é che l'ultimo bit di 1/1024 é piú affidabile (verace, giusto, corrispondente al valore da misurare) del ultimo bit di 5/1024?
Se un numero misurato non rispecchia in nessun modo il valore da leggere non ha nessun valore ai fini della precisione.

Ciao Uwe