La hoja de datos Atmel ATmega328, sección 24.6.1, recomienda que maneje el pin de entrada analógica con una impedancia de salida de 10 KOhm o menos. Además, recomienda que elimine los componentes de alta frecuencia con un filtro de paso bajo. (Ese paso bajo a veces se llama filtro antialiasing).
El filtro de paso bajo más simple posible es una resistencia y un condensador.
+ 5V + 5V | | (sensor) --- resistencia --- + --- (Arduino) | | | | condensador | | | | GND ---------------- GND -------- GND
Contrariamente a la creencia popular, no es posible hacer un filtro antialiasing en software.
Para un prototipo inicial de baja resolución, una regla general rápida es elegir la constante de tiempo RC al menos 10 veces mayor que el tiempo entre muestras.
Entonces, si está muestreando alrededor de 1000 muestras / segundo (es decir, un intervalo de muestreo de 1 milisegundo), entonces 100 ohmios de resistencia y (aproximadamente) un capacitor cerámico de 100 uF pueden ser adecuados (la constante de tiempo RC aquí es RC == 100 ohmios x 100 uF = 10 milisegundos).
Muchos joysticks ya tienen una impedancia de salida relativamente alta; necesitará usar una resistencia con mucha menos resistencia para compensar (a veces no necesita ninguna resistencia adicional; pero aún necesita ese capacitor entre el pin de entrada analógica de Arduino y el pin de tierra de Arduino). (Muchos sensores tienen una impedancia de salida de más de 10 KOhm; las personas que los usan se ven obligadas a usar un chip de amplificador operacional para obtener señales limpias).
Se han escrito libros completos sobre filtrado de señales. muchas otras técnicas para obtener señales analógicas de mayor resolución, recopilación de datos a mayor velocidad e intercambiar entre ellas, pero probablemente sean excesivas para leer la posición de un joystick.