Newsgroup: it.hobby.elettronica.digitale
Titolo: AD pic 16F876 instabile

Sto cercando di misurare una tensione analogica che va da 2.5 a 5 V. Su un
display visualizzo il valore decimale corrispondente alla tensione letta
(0-1023 considerando un convertitore 10 bit) e in effetti a 2.5V leggo 512.
Il primo problema è che questo valore è instabile (da 509 a 514) e suppongo
che sia dovuto a un rumore di fondo (che non so come togliere). Il secondo
problema è che se vario la tensione di ingresso con un potenziometro o con
una resistenza variabile (NTC) il valore decimale corrispondente aumenta di
instabilità e comincia a variare con un andamento sinusoidale continuo e
ripetitivo passando sempre per il valore corretto. Cosa cavolo può essere
che genera questo disturbo e come si può eliminare magari senza aggiungere
troppi componenti o integrati? Grazie a tutti Pietro

 ha scritto nel messaggio
news:PzuPc.87537$5D1.4...@news4.tin.it...



Suppungo che stia usando un microcontrollore o qualcosa del genere.
Direi di provare ad usare un filtro numerico: il piu` semplice e` 
prendere N campioni e farne la media. Le cose diventano ancora piu` 
semplici se misuri 2^n campioni (ad esempio 16) e ne fai la media, che 
vuol dire sommare i 16 valori e fare 4 shift a destra.
Non so bene a che velocita` faccia il campionamento. Un modo per fare il 
filtro numerico semplice e molto efficace e` quello di fare i 2^n 
campionamenti ugualmente distanziati in tempo e su un intervallo di 20 
ms (quindi una conversione ogni 1.25 ms se usiamo la solita media su 16 
campioni): in questo modo il filtro avra` uno zero a 50 Hz e tutte le 
armoniche fino alla ottava, e di solito i rumori piu` forti che si 
raccolgono sono quelli della rete.
-- 
Franco
Wovon man nicht sprechen kann, darüber muß man schweigen.
(L. Wittgenstein)

Ma i vari filtri IIR, le finestre coseno,
Hanning e compagnia bella li usa qualcuno
in pratica o servono solo a se**re gli sudenti?
Alla fine fanno tutti la media su 2^n campioni e
fine della storia! :-PPP
***** The Overkill !!! *****

 fine della storia! :-PPP
Si usano, ma ci vuole un dsp e l'applicazione lo deve richiedere.
La finestratura la si usa quando devi fare un trattamento a batch, 
tipicamente una trasformata di fourier. I filtri IIR sono piu` 
"efficaci" di quelli FIR, a pari numero di operazioni filtri di piu` con 
un IIR, ma e` anche piu` incasinato da progettare e tenere stabile.
Tipicamente nei casi come quello esposto, basta un filtro che metta 
degli zeri di trasmissione sulla frequenza della rete e sue armoniche 
(nota che fare la media vuol dire fare un filtro FIR con funzione di 
trasferimento di tipo sin(x)/x.


 e l'applicazione lo deve richiedere.
100% concorde.
Ovviamente Alias, il tuo caso non li richiede.
Il filtro consigliato da Franco va benissimo nel tuo caso.


 ***** The Overkill !!! *****
Volevo provare qualcosa di semplice e immediato. Credo proprio che il
problema nasca dai 50 Hz e per le ferie proverò a scrivere il codice
necessario per fare il filtro. Grazie Franco

 ha scritto nel messaggio
news:t_uPc.27127$OH4.7...@twister1.libero.it...


 campioni (anche perché vanno bufferizzati...).
Se hai la moltiplicazione, o ancora meglio una MAC puoi fare un filtro 
IIR, che e` "piu` efficiente" di un FIR.
Per un filtro FIR, anche migliore della media mobile, devi comunque 
sempre bufferare tutti i dati.
Ciao
