Hola,
No se si me equivoco pero las ultimas iteraciones serian:
i=87 donde copia el valor de la posicion: 90-87-2=1 en la posicion: 90-87-1=2
i=88 donde copia el valor de la posicion: 90-88-2=0 en la posicion: 90-88-1=1
i=89 no cumple la condicion de i<89 (i<90-1)
¿Creo que es asi,no? No se me da muy bien esto de la programacion...
La expresion PanelValue[array_length-i-2] al menos en el compilador no da error, otra cosa es que no haga lo que espero... eso ya no lo he podido comprobar.
float PanelValue [90] es un array de 90 elementos (del 0 al 89). Los inicializo a 0 al arrancar el arduino. Y lo que hago es leer un valor y guardarlo en la posición 0, moverlos todos 1 posición, y volver a leer en la 0 y asi sucesivamente hasta que cuando tengo las 90 posiciones guardadas hago la suma de ellas y divido entre 90 y calculo su media.
Así lo que hago no es leer y mostrar el valor instantáneo, sino que estoy unos pocos segundos monitorizando para calcula el valor medio de la medición, por si hubiese picos raros o algo similar... asi al ser una media un pico raro de voltaje por interferencia no se vería reflejado.