Tout d'abord, pour votre application particulière, vous n'avez vraiment besoin que d'une fréquence d'échantillonnage d'environ 1 kHz, en supposant que vous accordez la fréquence fondamentale et non l' un des partiels inharmoniques ...
Quoi qu'il en soit, en ce qui concerne la fréquence d'échantillonnage maximale possible, le manuel Arduino dit:
Il faut environ 100 microsecondes (0,0001 s) pour lire une entrée analogique, donc la vitesse de lecture maximale est d'environ 10 000 fois par seconde.
Cela impliquerait que la fréquence d'échantillonnage de 10 kHz est la fréquence max. Pourtant. Vous pouvez obtenir des taux d'échantillonnage plus élevés en accédant directement aux registres ADC . La page de traitement audio en temps réel Arduino utilise par exemple deux canaux à 15 kHz. Donc, le 10 kHz max est uniquement en utilisant la fonction intégrée AnalogRead (), car elle a beaucoup de surcharge.
L'ADC est optimisé pour un fonctionnement optimal avec une vitesse d'horloge comprise entre 50 kHz et 200 kHz:
Par défaut, les circuits d'approximation successifs nécessitent une fréquence d'horloge d'entrée [horloge ADC] comprise entre 50 kHz et 200 kHz pour obtenir une résolution maximale.
Puisqu'une conversion ADC prend 13 cycles d'horloge, ce serait une fréquence d'échantillonnage de 4 kHz à 15 kHz. Selon AVR120: Caractérisation et étalonnage de l'ADC sur un AVR :
Pour des performances optimales, l'horloge ADC ne doit pas dépasser 200 kHz. Cependant, des fréquences jusqu'à 1 MHz ne réduisent pas la résolution ADC de manière significative.
Le fonctionnement de l'ADC avec des fréquences supérieures à 1 MHz n'est pas caractérisé.
Fréquence d'horloge de 1 MHz = fréquence d'échantillonnage de 77 kHz, c'est donc le maximum réaliste.
Le fil de discussion Faster Analog Read? a plus à ce sujet.