Fréquence d'un signal analogique

Bonjour,
J'ai un signal analogique variant de 0V à 5V sinusoïdale.
Je souhaite obtenir sa fréquence d'oscillation en utilisant les entré analogique, il y'a t'il un moyen ?
J'ai cru comprendre que pulseIn() fonctionne seulement pour obtenir la période des signaux numérique.

Une sinusoïde qui passe dans une bascule à seuil en ressort la tête au carré.
pulseIn() déclenche quand la tension d'entrée dépasse un seuil logique de tension.

Bonjour,
pulsIn va marcher, mais si le seuil de déclenchement n'est pas exactement 2.5 V et que la courbe n'est pas une sinusoïde parfaite, cela va être difficile de calculer précisément la fréquence.

Il vaut mieux compter le nombre de pulsation pendant un temps donné avec une interruption. Exemple :

/* FREQUENCEMETRE ARDUINO */

#define ECHO  2		// pin qui reçoit la fréquence à mesurer (pin 2 ou 3 sur Uno, 3-5 V maxi !!! )
#define SAMPLE 5000	//durée prise de mesure en millisecondes

unsigned long t0=millis(),t1;
unsigned long pulsecount=0;

void setup()
	{
        Serial.begin(9600);
	pinMode(ECHO, INPUT);
	attachInterrupt(digitalPinToInterrupt(ECHO), pulse, RISING);
	}

void pulse()
	{
	pulsecount+=1;
	}

void loop()
	{
        float frequence;
	t1=millis()-t0;
	if (t1 >= SAMPLE)
		{
		frequence=pulsecount*1000.0/t1;
		Serial.println(frequence);
		t0=millis();
		pulsecount=0;
		}
	}

Merci pour vos reponse,
mais pour le pulseIn() et la plupart des autres solutions j’avais cru comprendre que ça fonctionnait seulement sur les pins numériques, est ce bien le cas ? Car si oui je cherche à utiliser les entrées analogique.

Les fréquences serons comprise entre 0 et 16Hz

@louislel

Regarde dans la datasheet du microcontrôleur les seuils de basculement des entrées.
Chapitre “Electrical Charateristics”

Tu comprendra pourquoi Christain a écrit :

Christian_R:
Une sinusoïde qui passe dans une bascule à seuil en ressort la tête au carré.

Les entrées des avr basculent autour de 2,5 V avec un hystérésis (voir ce nom) de 50 mV

Louislel:
...Car si oui je cherche à utiliser les entrées analogique.

Bonjour,

Pourquoi?

La meilleure solution est celle proposée par pepe : utilisation du comparateur interne du micro.

Ah c'est vrai : Arduino ne le gère pas, aucune bibliothèque dans l'IDE.

Mais le micro est prévu pour le faire ! Cela vaut le coup de faire un petit effort.