Newsgroup: it.hobby.elettronica.digitale
Titolo: Conversione A/D con un micro senza ADC

Ciao a tutti,
dovrei fare un'acquisizione analogico/digitale di un segnale molto lento
(temperatura) con un numero di bit non troppo elevato (forse 6 mi
bastano)
utilizzando un micro che non possiede al suo interno un convertitore AD
(16F84).
So che potrei prendere un 16F628 che è pin-compatibile, costa poco più
(se non meno) ed ha anche un ADC interno, ma vorrei proprio usare un
16F84.
Avevo letto tempo fa una soluzione per fare una conversione, seppur
lenta,
utilizzando soltanto linee digitali di I/O del micro, ma non ricordo
come.
Ho pensato di far caricare un condensatore con una costante di tempo
sufficientemente elevata attraverso un segnale digitale d'uscita posto
alto. Con un comparatore vado a confrontare il livello sul condensatore
con il livello di tensione del sensore di temperatura. L'uscita del
comparatore va direttamente ad un pin di input del micro.
Non appena l'uscita del comparatore va alta (o bassa a seconda del
collegamento) la tensione sul condensatore è uguale a quella del sensore
di temperatura e quindi posso dedurre il valore di tensione dal tempo
impiegato dal condensatore per caricarsi.
Naturalmente affinché questa procedura sia valida la costante RC deve
essere sufficientemente elevata in modo tale che la legge di carica
sia lineare e lenta fino alla tensione massima di circa 1V (se uso un
sensore a 10mV/°C, fino a 100° mi basta avere 1V). Allungando il tempo
di carica, ottengo anche una misura più accurata del tempo di
caricamente
e quindi un maggior numero di bit del mio pseudo-convertitore A/D.
Voi che ne pensate? E' fattibile? Esiste un'altra soluzione?

 Voi che ne pensate? E' fattibile? Esiste un'altra soluzione?
Se carichi il condensatore a corrente costante la tensione sale linearmente
fino al massimo. Il tempo che impiega naturalmente dipende dalla corrente e
dalla capacita'. Un condensatore da 1F alimentato con 1A sale linearmente di
1V in 1 secondo.
Un'altra soluzione che pero' richiede almeno n+1 pin (dove n sono i bit) e'
quella di comandare un DAC (per esempio una semplice rete R-2R) e comparare
la tensione di uscita con quella da misurare. Se si usa l'algoritmo ad
approssimazioni successive e' molto veloce perche' in un massimo di n*2
scritture sul DAC si ha il risultato... con questo sistema ho campionato
anche dei segnali audio senza sample and hold...
Claudio F

 come.
Scaricati il manuale del PIC BASIC PRO e leggiti le specifiche
dell'istruzione POT, spiegano molto bene come funziona a livello software.
Si tratta di quello che serve a te.
Bye

come.
prova a leggerti la AN720 della Microchip: "Measuring Temperature
Using the Watchdog Timer (WDT)"
ovviamente la temperatura indicata è quella alla quale si trova il
pic.
ciao
Gabriele

 anche dei segnali audio senza sample and hold...
Mi sa proprio che era questa la soluzione che avevo letto tempo fa. Solo
che
per 6 bit dovrei usare almeno 7 linee di I/O. Non so se riesco.

 Il 16F628  non nessun ADC al suo interno, c'č solo un comparatore.
Qual č il primo PIC, facilmente recuperabile, ad avere un ADC interno?
Esiste qualche soluzione di ADC esterno, magari I2C e microwire o SPI
facilmente recuperabile ed a basso costo?

 ha scritto
nel messaggio news:rv3tgvs1l9hms34eq...@4ax.com...

No, a me non interessa la temperatura del PIC ma quella proveniente da
un sensore esterno.

 riesco.
E' possibile estendere gli I/O con degli shift register:
http://net.supereva.it/stor2.freemail/elettronica/4094/4094.htm
Claudio F

facilmente recuperabile ed a basso costo?
ma se non devi misurare altro che temperature, perchč non ti butti
nelle periferiche 1wire della Dallas?
un Dallas DS18x20 come sensore di temperatura ti andrebbe a pennello:
un solo pin per il pic (che puň benissimo restare un comune 16f84
sprovvisto di ADC) e molte routine di esempio diffuse su internet...
Gabriele