Identificare min e max in un array ed elilminarli

Ciao tutti, ho un problema di cui riesco a risolvere solo metà parte.
Ho un array di 10 valori int e al suo interno devo togliere il valore massimo, il valore minimo e con i restanti farne la media.
Potreste aiutarmi??
Con le mie conoscenze arrivo a trovare il valore massimo e minimo…
Grazie.

Se hai sviluppato quel che serve ad identificare il valore minimo ed il valore massimo non ti resta che memorizzare l’indice dell’array dove tali valori sono e fare un secondo giro di scansione dell’array per sommare tutti gli altri valori e poi ricavarne la media.
Oppure puoi memorizzare il valore minimo e massimo e alla fine della scansione dell’array sottrai tali valori alla somma di tutti i valori e calcoli la media

Grazie Fabpolli, sempre molto gentile.
Ho scritto questo


void filtro_min_max(){
int val_min=1024;
int val_max;
//trovo il valore minimo e massimo dell'array
for (byte i=0;i<9;i++){
                       if (depo_batt[i]>val_max){val_max=depo_batt[i];}
                       if (depo_batt[i]<val_min){val_min=depo_batt[i];}
                      }
int somma_min_max=(val_max+val_min);        
unsigned int somma_v_batt=0;
for (byte i=0;i<10;i++){
                       somma_v_batt=somma_v_batt+depo_batt[i];
                       }
  media_v_batt=(somma_v_batt-somma_min_max)/8;
}

Funziona bene, grazie.
Ora svelo quello che devo fare: devo leggere la tensione della batteria del RTC e visualizzare su display il valore letto.
Ho visto che le letture non sono costanti, ed è per quello che ho voluto creare un filtro.
Però mi trovo in difficoltà, perche non credo di aver fatto un lavoro corretto.


In teoria con batteria 3,1V (carica) dovrei leggere su A0 2,33V , ma con arduino spento leggo circa 500mV su A0…A0 non dovrebbere essere alta impedenza??
Se lasciassi sempre attaccata la lettura consumerebbe la batteria, o saglio??
Che soluzione si potrebbe adottare?

Credo che il problema sia la resistenza di pulldown che hai messo e che non serve in questo caso, l’ingresso analogico mica hai bisogno di tenerlo ad un riferimento certo è già vBat che ti garantisce un dato certo, ma non ho mai affrontato la questione della lettura del vBat dell’RTC quindi potrei sbagliare. Dove hai trovato quel circuito?

Guarda che NON è una pull-down … è un partitore resistivo per abbassare la tensione … vedi una 330K e la 1M e l’uscita tra le due ?

Partitore-di-tensione

Guglielmo

Al solito hai ragione cantonata pazzesca.
Mi resta il dubbio però che serva il partitore, se ha come Vmax 3,1 V non dovrebbe servire neanche sulle schede a 3,3V o sbaglio anche in questo caso?

fabpolli il circuito l’ho disegnato io, e il partitore l’ho messo per sicurezza.
Ma l’ingresso analogico non è alta impedenza?
Guglielmo, sbaglio qualcosa??
La lettura sull’analogica è davvero instabile, nonostante la tensione della batteria resti stabilissima.
Che soluzione posso usare?

Prova a mettere un condensatore in parallelo alla resistenza da 1 Mega, puoi usarne anche uno da 0.1 uF, tanto non devi leggere variazioni veloci.

Ciao, Ale.