Mesurer une fréquence avec un Arduino
Un G.B.F. (Générateur de basses fréquences) permet de délivrer un signal avec la fréquence désirée sous forme de sinusoïdes, de créneaux (signal carré), ou de triangles.
Nous allons ainsi envoyer un signal à l’Arduino. Celui-ci pourra ensuite mesurer la fréquence du signal d’entrée.
Il est conseillé de directement relier votre GBF à un oscilloscope afin d’obtenir une image en direct du signal que vous générez.
Nous utiliserons plus tard une fonction qui permet de détecter le temps d’état haut et/ou le temps d’état bas d’un signal. Nous devons donc générer un signal carré.
Sur le GBF, il suffit de presser le bouton ci-dessous :
Les entrées analogiques de l’Arduino ne peuvent recevoir que des tensions comprises entre 0V et +5V. Envoyer une valeur plus grande risque de détruire l’interface, voir la carte.
Il faut donc bien veiller à créer un signal électrique avec une amplitude inférieur ou égale à 5V.
De base, le GBF va créer un signal oscillant entre -5V et +5V. Il faut donc déplacer ce signal afin d’obtenir un signal oscillant entre 0V et +5V.
Le bouton Offset permet d’ajouter une composante continue à notre signal. Nous pouvons donc faire monter notre signal dans l’intervalle qui nous intéresse.
Le réglage de l’offset et de l’amplitude s’effectue de cette façon :
(il faut tirer le bouton de l’offset afin de modifier la composante continue).
Attention ! Avant de brancher votre Arduino au GBF, vérifiez que le signal ressemble à celui-ci sur l’oscilloscope :
Câblage :
PusleIn :
La commande PulseIn permet de mesurer la durée d’une pulsation. Il est ainsi possible de déterminer le temps sur une période de notre signal à un niveau logique 1 ou 0.
PulseIn nous retourne ensuite la durée de l’impulsion en microsecondes.
La syntaxe est la suivante :
pulseIn(pin, value)
pulseIn(pin, value, timeout)
Le premier paramètre permet de définir l’interface où vous souhaitez lire la durée de l’impulsion
Le second paramètre permet de définir si l’on souhaite mesurer la durée d’un état haut (HIGH) ou un état bas (LOW)
Le troisième paramètre permet de déterminer un temps d’attente en microsecondes avant la mesure d’une impulsion.
Code :
11 comments