Paso 4: Aprendizaje punto - Oversampling en el IDE de Arduino
Como se dijo, tenía una meta de precisión de 0,001". Arduinos mayoría tienen 10 analógico al convertidor digital (ADC). Cualquier señal medido se divide en cierto número de niveles. En este caso, ese número es 2 ^ 10 (o 1024). Mi potenciómetro elegido es de 750 mm de largo. Haciendo las demostraciones matemáticas 10 bits de resolución sólo me dan incrementos de 0,732 mm (0,028"). Supone una caída total de 5 voltios en el potenciómetro.
Esto deja dos opciones. Ya sea comprar del estante más alto de bits ADC, o nuevamente en la búsqueda de aprendizaje tratan de sobremuestreo.
Después de googlear rápida encontré "RCguy" ya había realizado sobremuestreo y escribió una bonita biblioteca para llevar a cabo lo. A raíz de sus vínculos encontré la original lanzamiento de ATMEL el lo detallando. Creo que he sucessfully siguió su documentación y aplicado aquí y se muestra en el código anterior.
Mientras tal vez simplificación un poco, me imagino como PWM en reversa. Con el tiempo su relación señal ruido de la fuente y el circuito de alterna la lectura entre dos o más niveles. Realizar una media móvil con el tiempo le permite sumar todas las lecturas de lo que resulta en un mayor número efectivo de bits.
Una salvedad, los bits más su quiere, las muestras más (tiempo) necesitadas.
En la jerga de ATMEL, utilizando 16 número efectivo de bits que creo que debo darme 0,011 mm (0,00045").