Buenos dias, nuevamente recurro a vosotros con un problema.
La cuestion es la siguiente, tomo 30 medidas de un sensor para hacer la media y que la medida sea estable.
La cuestion es que el sensor es un sensor barato y de vez en cuando toma medidas que se van mucho de la medida y por tanto me arruina la media.
Os pongo el codigo y dos ejemplos:
void cal_media (void){
media_calculada=0;
for (Medida_actual =0; Medida_actual < Num_muestras; Medida_actual++)
{
Medidas[Medida_actual]=analogRead(A12);
delay(30);
Serial.println(Medidas[Medida_actual]);
media = media + Medidas[Medida_actual];
}
media = media/Num_muestras;
Serial.print("Media =");
Serial.println(media);
if (media<120){
media=120.0; // haciendo esto ignoramos los valores de fondo de escalar perdidos
}
media_calculada = (4203.86*pow(media,-1.017)); //calculo en centimetros
media_calculada = media_calculada*10; // lo paso a milimetros
Serial.println(media_calculada,8);
}
No se que estas midiendo, pero si sabes que no es posible que de un salto de 10 (o otro valor) respecto a la lectura anterior pues simplemente lo ignoras y puedes usar el valor anterior correcto para que no afecte a la media
Yo usaría un promedio móbil (ver promedio mobil Luis Llamas) y en todo caso no agregaría la nueva muestra si tuviera un dispersión determinada.
Ese sería un camino estadisticamente mas adecuado que descartar porque si.
Buenos días. Pues estoy midiendo la distancia hasta un objeto. El tema es que supongo que la medida es mala ya que difiere mucho del resto, simplemente por lógica. La pieza se mueve y mido otro punto. Entonces en cada punto tengo una serie de treinta valores que son la distancia del sensor a la pieza. Esta va en algunos puntos desde 800 aprox a 100 en otros. Dependiendo de la distancia
No se porque el sensor falla algunas medidas y eso es lo que me los un poco. Se supone que como mucho tarda 27ms entre medidas. Por eso yo le doy 30ms. Veremos lo que has puesto surbyte. Gracias
Algo vi pero he pensado quizás en ordenar valores y luego hacer un diferencial primero con segundo. Segundo con tercero...... Y si están en +-1 por ejemplo lo doy por bueno y sino me planteo descartarlo
Hola a mi me paso algo parecido en mi trabajo... Un sensor jodiendo asi en una maquina...la maquina no trabaja con arduino claro trabaja con un PLC pero ta la falla era parecida por eso dejo este comentario.
La solucion que encontre fue poner un trozo de papel celofan frente al sensor como filtro de luz y calibrar los valores despues xq cambian. Comento por las dudas que te sirva de algo...
Es bueno el dato de danielzubelza, porque luce mas como una posible perturbación que un fallo del sensor.
Los sensores pueden tener problemas de repetición pero no hacen mediciones tan dispares a menos que exista una verdadera perturbación. Apunta a lo sugerido por danielzubelza a ver que resulta.