Primero, para su aplicación en particular, realmente solo necesita 1 kHz o más, la frecuencia de muestreo, asumiendo que está sintonizando la frecuencia fundamental y no uno de los parciales inarmónicos ...
De todos modos, en cuanto al índice de muestreo máximo posible, el manual de Arduino dice:
La lectura de una entrada analógica tarda unos 100 microsegundos (0,0001 s), por lo que la velocidad de lectura máxima es de aproximadamente 10,000 veces por segundo.
Esto implicaría que la frecuencia de muestreo de 10 kHz es la máxima. Sin embargo. Puede obtener mayores tasas de muestreo al accediendo directamente a los registros ADC . La página Arduino Realtime Audio Processing utiliza dos canales a 15 kHz, por ejemplo. Por lo tanto, el máximo de 10 kHz es solo mientras se usa la función AnalogRead () incorporada, porque tiene muchos gastos generales.
El ADC está optimizado para una mejor operación con una velocidad de reloj de entre 50 kHz y 200 kHz:
De forma predeterminada, los circuitos de aproximación sucesiva requieren una frecuencia de reloj de entrada [reloj ADC] entre 50 kHz y 200 kHz para obtener la máxima resolución.
Dado que una conversión de ADC toma 13 ciclos de reloj, esta sería una frecuencia de muestreo de 4 kHz a 15 kHz. Según AVR120: Caracterización y calibración del ADC en un AVR :
Para un rendimiento óptimo, el reloj ADC no debe exceder los 200 kHz. Sin embargo, las frecuencias de hasta 1 MHz no reducen significativamente la resolución de ADC.
El funcionamiento del ADC con frecuencias superiores a 1 MHz no está caracterizado.
Frecuencia de reloj de 1 MHz = 77 kHz de frecuencia de muestreo, así que esa es la máxima realista.
El hilo del foro ¿Lectura analógica más rápida? tiene más información sobre esto .