Encontré este problema usando arduino pero IMO esto se relaciona más con el engranaje electrónico. Yo uso el pin0 sin ningún pull-up/pull-down/conexión.
Código simplificado:
if (samplesQty >= 5000){
Serial.println(buffer/samplesQty);
buffer = samplesQty = 0;
} else {
buffer += analogRead(0);
samplesQty++;
}
La pregunta es ¿por qué obtengo el valor ~450 (de 1024 como máximo) si tomo 2 muestras, ~390 si hay unas 800 muestras y 25 si hay 5700 muestras?
Definitivamente no estoy tomando todas estas muestras en consecuencia, es decir, si hay 800 muestras, hago 1 ms de retraso después de muestrasCantidad++ Todas las muestras se toman en menos de 1 segundo.
Gracias de antemano.
p.d: Sé cómo conseguir el cero constante mientras 'en el aire', la pregunta es un poco teórica.