Visualizza messaggio singolo
Vecchio 22 aprile 09, 22:41   #8 (permalink)  Top
Mrk89
User
 
L'avatar di Mrk89
 
Data registr.: 29-05-2006
Residenza: Catania
Messaggi: 2.933
Si, certo!! Se diminuisci la tensione di riferimento superiore,oppure amplifichi la tensione che esce dal sensore aumenti la risoluzione di conversione!!
Tutto questo però ti crea un po' di problemi:

1- Il sensore ti restituisce come tensione di zero VCC/2 con un'escursione a 30A di 1.2V.
soluzione punto 1- Hai bisogno di un'amplificatore operazionale in configurazione differenziale per portare i 2.5V a zero e deve amplificare per portare la tensione da un'escursione di 1.2V ad un'escursione di 5V.

Complicazioni punto 1- Per utilizzare un amplificatore operazionale intorno agli zero V devi avere una tensione negativa oltre che positiva, il che significa o utilizzare un'alimentatore duale, oppure utilizzare una pompa di carica.
Tutte queste cose naturalmente occupano spazio e costano.

2-Il sensore ha un'escursione di 1.2V.
soluzione punto 2- Prendi riferimenti di tensione esterni.
In questa maniera devi creare due stabilizzatori abbastanza precisi che ti stabilizzino le tensioni Vref- e Vref+ a quanto desideri ( VCC/2 e VCC/2+(Escursione in volta di 30A= 1.2V) ).
Complicazioni punto 2-Anche questi sarebbero componenti esterni in più, che potrebbero essere o semplici resistori, oppure stabilizzatori integrati tipo LM341.

Soluzione a tutto.IMHO
Imposti il PIC per avere le tensioni di riferimento 0 e VCC.
5 volt divisi in 1024 passi => 5/1024~5mV.
Questo valore corrisponde a 1/8 di A ( Tenendo conto che ogni ampere corrisponde a 40mV ).
Leggi la tensione direttamente dal sensore, che per una corrente di 0A ti restituisce una tensione di VCC/2, che corrisponde al numero binario 512.
Prendi la lettura, sottrai 512 ed arvai nella variabile letta e convertita il valore 0.Da qui poi imposti il fattore di scala ed hai finito.
Non so se conosci il C, eccoti 2 righe di codice per fare il tutto:

unsigned int a;
signed int b;

void main()
{
----------
-------------
--------
a=Adc_Read(0);
b=(a-512)/8;
//a questo punto b avrà un valore che si incrementerà di Ampere in ampere.
//Se vuoi aumentare la risoluzione, invece di dividere 8 dividi 4 ed avrai una risoluzione doppia, b avrà un valore che si incrementerà di 1/2 Ampere in 1/2 ampere.
}

Spero di essere stao chiaro, e spero di non averti creato altra confusione...
__________________
Il filo attaccato all'antenna non mente mai....Troppo vento, si torna a casa....
I miei circuiti elettronici autocostruiti: Postbruciatore per ventole intubate ; Circuito luci per aeromodello-elimodello ; Rallenta servo con protezione da corto circuito
Mrk89 non è collegato   Rispondi citando