Fréquencemètre

J’ai nouveau un petit projet qui a des sources tant professionnelles qu’amateurs : j’ai besoin d’un fréquencemètre.

Comme beaucoup de gens, on va sur Google, «frequency meter» on en trouve 36,000 faiblement utiles, ou d’autres qui sont totalement hors de prix.

Seconde option : eBay. C’est cool, mais tous ces produits à15€ me laissent perplexe, j’ai plusieurs fois été déçu : dès qu’un appareil de mesure n’est pas cher, le risque pour sa faible fiabilité/précision augmentent…

En plus, j’ai un certain besoin… Je dois pouvoir interfacer cet appareil à un ordinateur pour faire du datalogging. Ben oui, dans les projets farfelus, on a des idées farfelues.

Après quelques recherches non fructueuses, je me suis dit que j’allais m’en construire un.
Fidèle utilisateur des arduino’s pour plein de projets, ce mricroprocesseur en sera la base.

Après quelques recherches dans les datasheet d’Atmel, j’ai découvert comment utiliser les compteurs/timers intégrés à l’arduino. Deux d’entre eux sont nécessaires :

  1. timer1 : compteur 16 bits, c’est lui qui comptera les flancs montants provenant d’un «prescaler».

  2. timer2 : il me fourni ma base de temps pour compter les pulsations. Il servira de «gate».

Au niveau du prescaler, je m’arrête sur deux composants : l’un a une plus faible gamme de mesure mais plus simple ; le second quant à lui monte à 2,5GHz, mais se pilote par SPI.

Le système comportera également un algorithme «d’autoscale». En effet, le but est de maximiser le nombre de pulsations comptées afin d’augmenter la résolution de l’appareil. Cette partie est encore en développement.

Les prescalers retenus sont les LMX2322 et le MC12080. La première version sera orientée sur le MC12080. L’affichage se fera via un écran LCD 2×16 caractères, avec un protocole série permettant de récupérer à distance la valeur sur des logiciels tiers (LabView, Qt…)
Un LTC5507 sera également intégré afin d’avoir une idée sur la puissance mesurée.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *