media valori (analog INPUT)

buongiorno a tutti!; ho un quesito al quale non riesco a trovare risposta saltando di post in post.. dunque leggo molti pensierosi riguardo il segnale cosiddetto "ballerino"..ma vedo che a volte e' inteso appunto"ballerino"per valori molto sballati.

1-quindi mi chiedevo prima di tutto un segnale distorto es. potenziometro in ingresso analog, e' considerabile distorto se varia di 1/2bit..

2-a questo punto per provare a perfezionare il segnale dovrei eseguire una media magari ogni 100 valori, in modo da assottigliare questo margine di errore il piu possibile giusto? ma non ho idea di come procedere.. come far sapere che limite mettere al ciclo for?? non ho idea di quanto tempo utilizzero' il potenziometro e quindi quanti ingressi analogici ricevero' grazie in anticipo!

Cento valori credo siano fin troppi, un valore corretto in assoluto comunque non esiste, l'instabilità dipende, ad esempio, dalla qualità del potenziometro, dalla lunghezza dei cavi con cui è connesso alla porta, alla qualità/stabilità della VREF. Per determinare quale sia il valore adatto al tuo progetto potresti iniziare effettuando dieci rilevazioni e fare la media su queste, se ancora non basta analizzando i vari valori letti si può pensare o di aumentare il numero di campioni, oppure, escluderne alcuni se i valori letti sono molto distanti (Es. 10, 11, 20, 12) Nell'esempio non dovresti tenere in considerazione il trezo valore perché molto differente dal precedente (o dai precedenti) ma prima di complicare il codice prova la via semplice, dieci campioni e media assoluta e vedi come va

fabpolli: campioni, oppure, escluderne alcuni se i valori letti sono molto distanti (Es. 10, 11, 20, 12) Nell'esempio non dovresti tenere in considerazione il trezo valore perché molto differente dal precedente (o dai precedenti) ma prima di complicare il codice prova la via semplice, dieci campioni e media assoluta e vedi come va

non avevo preso in coniderazione di trovare un controllo per il quale eliminare valori troppo sballati grazie :)

ad ogni modo ero interessato a capire come fare questi cicli che fanno la media ma tenerli comunque segnali analog"migliorati"con i quali pilotare uscite piu' perfette e lineari

iaccaro:
ad ogni modo ero interessato a capire come fare questi cicli che fanno la media ma tenerli comunque segnali analog"migliorati"con i quali pilotare uscite piu’ perfette e lineari

Non ho capito cosa intendi… un ciclo è un ciclo che sia un for o un while poco importa, la media è una semplice somma di tutti i valori divisa poi per il numero di campioni fuori dal ciclo.
La parte veramente oscura (per me) è “segnali analog"migliorati"con i quali pilotare uscite piu’ perfette e lineari”

fabpolli: Non ho capito cosa intendi... un ciclo è un ciclo che sia un for o un while poco importa, la media è una semplice somma di tutti i valori divisa poi per il numero di campioni fuori dal ciclo. La parte veramente oscura (per me) è "segnali analog"migliorati"con i quali pilotare uscite piu' perfette e lineari"

ahah probabilmente mi spiego malissimo scusa, il fatto e' che

fabpolli: Non ho capito cosa intendi... un ciclo è un ciclo che sia un for o un while poco importa, la media è una semplice somma di tutti i valori divisa poi per il numero di campioni fuori dal ciclo.

pensavo al for con limite di cicli pari al numero di segnali analogici che riceve da dividere poi per quel dato numero in modo da ottenere la media.. in realta' ho poi capito che ogni 10 segnali ti finirebbe a fare la media ottenendo cosi un segnale migliore..(anche se non so come e' il codice) mentre

fabpolli: La parte veramente oscura (per me) è "segnali analog"migliorati"con i quali pilotare uscite piu' perfette e lineari"

parlavo del risultato finale.. se in ingresso ho un segnale analog meno ballerino l'uscita migliorera' di conseguenza!

iaccaro: for con limite di cicli pari al numero di segnali analogici che riceve da dividere poi per quel dato numero in modo da ottenere la media..

Per chiudere il cerchio se ti stai riferendo ad interrogare più pin analogici differenti in sequenza devi ripetere due volte l'analogRead per ciascun pin peril ben noto problema dei risultati non coerenti quando si cambia il canale dell'ADC

Puoi fare la media quanto vuoi ma se l'alimentazione è ballerina lo saranno anche i valori letti dalle porte analogiche, per avere letture precise devi avere una tensione di riferimento esterna precisa. Personalmente utilizzo un MCP1525 che fornisce una tensione di riferimento di 2,5V. e le varie letture sono molto più precise.

Verissimo, infatto al post #1 ho inserito anche quello come causa di letture ballerine. C'è da dire che fornendo come VREF 2,5V dimezzi di fatto la risoluzione, che per certe applicazioni potrebbe non essere cosa buona, credo che per letture di potenziometri manualmente gestiti sia di certo una cosa buona. Tempo fa Guglielmo indicava che per avere letture affidabili di sensori di temperatura analogici settava la VREF a INTERNAL (1.1V) perché da misure strumentali tale riferimento poteva non essere preciso, Es 1,09 , 1,08, ecc., ma stabile nel tempo quindi una volta identificato il valore preciso fornito dalla VREF interna rimodulava i calcoli in base a quella e aveva valori stabili nel tempo.

ok grazie a tutti del chiarimento, adesso cercherò di approfondire meglio il tutto,anche perche' sono esercitazioni che faccio per muovermi meglio all interno di arduino, ma non finalizzate a un progetto preciso con precise richieste! grazie ragazzi