Innanzitutto, per la tua particolare applicazione, hai davvero bisogno solo di 1 kHz o giù di lì, supponendo che stai sintonizzando la frequenza fondamentale e non uno dei parziali inarmonici ...
Ad ogni modo, come per la massima frequenza di campionamento possibile, il manuale di Arduino dice:
Sono necessari circa 100 microsecondi (0,0001 s) per leggere un ingresso analogico, quindi la velocità di lettura massima è di circa 10.000 volte al secondo.
Ciò implicherebbe che la frequenza di campionamento di 10 kHz è il massimo. Tuttavia. È possibile ottenere frequenze di campionamento più elevate accedendo direttamente ai registri ADC . La pagina di elaborazione audio in tempo reale di Arduino utilizza, ad esempio, due canali a 15 kHz. Quindi il massimo di 10 kHz è solo quando si utilizza la funzione AnalogRead () incorporata, perché ha un sacco di sovraccarico.
L'ADC è ottimizzato per il miglior funzionamento con una velocità di clock compresa tra 50 kHz e 200 kHz:
Per impostazione predefinita, i circuiti di approssimazione successivi richiedono una frequenza di clock di ingresso [clock ADC] tra 50 kHz e 200 kHz per ottenere la massima risoluzione.
Poiché una conversione ADC richiede 13 cicli di clock, si tratterebbe di una frequenza di campionamento da 4 kHz a 15 kHz. Secondo AVR120: Caratterizzazione e calibrazione dell'ADC su un AVR :
Per prestazioni ottimali, l'orologio ADC non deve superare i 200 kHz. Tuttavia, le frequenze fino a 1 MHz non riducono significativamente la risoluzione ADC.
Il funzionamento dell'ADC con frequenze superiori a 1 MHz non è caratterizzato.
Frequenza di clock 1 MHz = frequenza di campionamento 77 kHz, quindi questo è il massimo realistico.
La discussione sul forum Faster Analog Read? ha di più su questo.