Vai al contenuto
PLC Forum


Volmetro Con 16f628 - voltage logger


Neway

Messaggi consigliati

Sono un modellista, per l'esattezza gareggio con le macchinine elettriche. Utilizziamo le batterie di tipo sanyo carica-scarica rapida, che sono mooolto particolari. In pratica vorrei costruirmi un piccolo voltage logger per studiare il modo in cui queste batterie si riprendono una volta scaricate completamente. Per far questo vorrei utilizzare un pic che legga il voltaggio della batteria e memorizzi il valore nella eeprom interna. Diciamo ogni ora per 24 o più ore.

Non ho grandi problemi pe quanto riguarda il programma in se, ma non so da dove partire per il volmetro. Cioè: come faccio diventare un pic un volmetro?

Grazie ragazzi! Buona parte della conoscenza che ho dei pic viene da qui dentro.

Link al commento
Condividi su altri siti


Intanto direi di cambiare PIC :P Ce ne sono tanti con l'ADC, a partire dal piccolo ed economico 12F675. Altrimenti occorre collegare un ADC esterno. Poi con un partitore di tensione bisogna riportare la tensione della batteria nel range accettato dall'ADC (in genere da 0 a 5V), e poi basta memorizzare le letture (1 o 2 bytes a lettura a seconda se si vogliono usare 8 o 10bit). La tensione si ricava con una semplice formula una volta stabiliti i punti precedenti.

Link al commento
Condividi su altri siti

Poi con un partitore di tensione bisogna riportare la tensione della batteria nel range accettato dall'ADC (in genere da 0 a 5V), e poi basta memorizzare le letture (1 o 2 bytes a lettura a seconda se si vogliono usare 8 o 10bit).
Link al commento
Condividi su altri siti

Ero convinto che 16F628 avesse l'ADC... Ora ricontrollando il datasheet mi sono accorto che hai ragione tu :rolleyes:

Ho capito il succo, ma cos'è questo sample&hold e compagnia bella? Sinceramente non conosco per niente a fondo i pic, e non so come opera a livelo hardware un ADC. Per cui vi sarei grato se vi dilungaste un poco di più sulla spiegazione.

Per quanto ne ho capito dalle tue righe, immagino che ci sia un piccolo condensatore interno al pic, tarato in modo molto preciso, che fa da capacità di riferimento e,se la resistenza all'ingresso è troppo alta questo condensatore non si carica correttamente...

Ok, ma quale sarebbe poi la formuletta? Una semplice proporzione?

Infine una cosa semplice semplice: se applico una tensione di 10V alla porta di un pic che succede? Si brucia?

Grazie mille

Link al commento
Condividi su altri siti

adc.gif

Questa figura rappresenta i blocchi principali di un ADC ad approssimazioni successive. Il sample and hold e' formato dallo switch elettronico e dal condensatore, e serve per prendere un campione della tensione da misurare e mantenerla fissa per il tempo che si effettua la misura (se la tensione variasse molto lentamente il s/h potrebbe anche essere omesso). Grazie a un DAC si genera una tensione (proporzionale al valore binario inviato in ingresso al DAC) che viene confrontata (comparata) con quella "memorizzata" nel condensatore. Scrivendo una serie di valori nel DAC, e leggendo il risultato della comparazione, si arriva in soli 8 passaggi (nel caso di ADC da 8 bit) al valore binario che rappresenta la conversione della tensione in ingresso.

Il s/h dei PIC mi pare voglia una resistenza esterna non maggiore di 10k e almeno 20µS per la carica del condensatore. Basta comunque usare un buffer riduttore di impedenza tra il partitore e il PIC:

adc_buf.gif

Per quanto riguarda i 10V dipende. Se sono resistivi (cioe' NON prelevati da una fonte a bassa impedenza e alta corrente come una batteria) il PIC resiste perche' sugli ingressi ha dei diodi interni che "scaricano" le eccedenze sull' alimentazione. Se invece sono 10V presi direttamente da un alimentatore/batteria dubito che sopravviva.

ciao Claudio F

Link al commento
Condividi su altri siti

Per la formula ho cercato di modificare il post precedente ma ero gia' fuori tempo.....

La formula per la conversione dipende dal numero di bit usati, nel caso di conversione a 8 bit possono essere restituiti 256 valori (da 0 a 255), quindi la tensione di riferimento usata per la misura (generalmente 5V) va suddivisa in 256 parti, pari a circa 19,53mV (1LSB):

adc_ft.gif

Se per ipotesi il partitore dimezza la tensione di 10V portandola a 5, allora quando una conversione risulta pari ad esempio a 185, significa che la tensione applicata al partitore vale 185*0,01953*2=7,226V (piu' o meno 9,76mV dovuti alla quantizzazione e piu' o meno 19,53mV dovuti agli errori di campionamento).

Con 10 bit la precisione aumenta naturalmente di 4 volte.

ciao Claudio F

Link al commento
Condividi su altri siti

  • 3 weeks later...

Salve a tutti vorrei fare una domanda un po particolare.

Dovrei fare una conversione di una tensione continua intorno ai 200V.

Poiche' quasi tutti gli adc accettano tensioni fino a 5V proporre un partitore

mi sembra che possa falsare la misura ed essere pericoloso; pensavo a degli operazionali qualcuno ha gia' fatto qualcosa o si e' posto il problema?

Aduri

Link al commento
Condividi su altri siti

Io avevo fatto una cosa simile con un partitore capacitivo.

Non hai correnti che posso falsare la misura e il dielettrico del condensatore posto a 200V ti da un po' isolamento tra i 200V e l'ingresso dell'A/D converter.

Ciao.

Link al commento
Condividi su altri siti

Scusa ma ho detto una stupidata,

la mia applicazione era in corrente alternata.

In continua penso con un partitore capacitivo non potresti fornire la corrente di polarizzazione all'ingresso dell'ADC.

Sorry

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...