Présentation

Ce montage doté de 7 LED donne une indication sur la stabilité de la fréquence du secteur 50 Hz ou 60 Hz.

indic_freq_001_pcb_3d_a

Il fait appel à un PIC 16F628A et quelques composants courants, et dispose d'une mémorisation de la valeur la plus faible et la plus élevée détectées depuis la dernière remise à zéro. Ce circuit, moyennant quelques modifications logicielles mineures, peut également servir à afficher la stabilité de la vitesse d'un moteur, d'une roue ou de tout autre système doté d'un capteur qui fournit des impulsions à intervales réguliers (capteur optique ou à effet hall par exemple).

Schéma

En plus du PIC 16F628A, on trouve quelques composants qui ne posent aucune difficulté d'approvisionnement.

indic_freq_001

Principe de fonctionnement

Il repose sur le comptage d'impulsions, les tops de départ et de fin de comptage correspondent aux crêtes positives de la tension sinusoïdale dont on souhaite indiquer la fréquence (on pourrait aussi utiliser les passages par zéro de l'onde, mais ces derniers se produisent deux fois plus souvent et la résolution de mesure s'en trouverait divisée par deux). A chaque nouvelle montée positive de la tension sinus à surveiller, un compteur est remis à zéro. Ce compteur est incrémenté à raison de 1 point par microseconde, son contenu (sa valeur) représente donc directement la période du signal. Et comme vous le savez peut-être, la période T d'un signal périodique correspond à l'inverse de sa fréquence F :
F = 1 / T ou T = 1 / F
Si le compteur est mis à zéro lors d'une alternance et qu'il est stoppé à l'alternance suivante, sa valeur représente le temps (en microseconde) qui s'est écoulé entre le top de départ et celui de fin. Si par exemple l'écart de temps T est de 20000 us (20 ms), on en déduit que la fréquence F est de :
F = 1 / 0.00020000 (s) = 50.000 Hz
formule qu'on peut aussi écrire de la façon suivante :
F = 1000000 / 20000 (us) = 50.000 Hz
Si le compteur contient la valeur 19997, alors cela veut dire que la fréquence est un poil plus élevée que 50 Hz :
F = 1000000 / 19997 (us) = 50.007 Hz
Avec un comptage cadencé à 1 us, on peut espérer une résolution globale de 0.002 ou 0.003 Hz, ce qui n'est pas mal ! Ici, on se contente d'une indication avec des écarts "larges" de -1,5 Hz à +1,5 Hz : plage de 48,5 Hz à 51,5 Hz sur 7 LED, pas de 0,5 Hz.
Quand la fréquence du signal d'entrée est inférieure au seuil le plus bas (ou en absence de signal), la première LED clignote rapidement.

Descriptif détaillé

Le schéma peut être divisé en deux parties, celle du haut (avec le transformateur) correspond à l'alimentation secteur et à l'extraction des "impulsions" de mesure, celle du bas (avec le PIC) correspond au circuit de mesure et d'affichage. L'alimentation est des plus simples, un transformateur abaisseur de tension (230 V / 9 V) est suivi d'une diode de redressement (D1) et d'un "gros" condensateur de filtrage (C3). On a affaire à un redressement mono-alternance qui suffit dans notre application car la consommation générale du montage est faible (quelques mA). La diode D2 permet de prélever la tension "demi-sinus" issue du transformateur d'alimentation, cette tension fait conduire le transistor FET Q1 à peu près la moitié du temps (lors des alternances positives). Le signal obtenu en sortie du transistor Q1 (point noté 50/60Hz) est presque un signal carré, c'est lui qu'on oriente sur la broche RB0 du PIC et qui va déclencher les interruptions externes du PIC, lequel PIC compte tranquilement le temps qui passe tant qu'on ne l'incite pas à faire autre chose. Le compteur interne du PIC est mis en route et s'arrête sur les fronts montants du signal 50/60Hz, ce procédé ressemble bien à celui adopté par les périodemètres, qu'on préfère au fréquencemètre quand il s'agit de mesurer avec précision des signaux dont la fréquence est faible. Le temps qui s'est écoulé entre deux impulsions start/stop est converti en fréquence et est comparé à des valeurs prédéfinies qui correspondent aux "seuils" suivants :
Pour 50 Hz (broche RA5 du PIC à 0, interrupteur SW1 fermé) :

  • Led_Minus3 := (iFreq < 48.75)
  • Led_Minus2 := (iFreq > 48.75) and (iFreq <= 49.25)
  • Led_Minus1 := (iFreq > 49.25) and (iFreq <= 49.75)
  • Led_Center := (iFreq > 49.75) and (iFreq <= 50.25)
  • Led_Plus1 := (iFreq > 50.25) and (iFreq <= 50.75)
  • Led_Plus2 := (iFreq > 50.75) and (iFreq <= 51.25)
  • Led_Plus3 := (iFreq > 51.25)

Pour 60 Hz (broche RA5 du PIC à 1, interrupteur SW1 ouvert) :

  • Led_Minus3 := (iFreq < 58.75)
  • Led_Minus2 := (iFreq > 58.75) and (iFreq <= 59.25)
  • Led_Minus1 := (iFreq > 59.25) and (iFreq <= 59.75)
  • Led_Center := (iFreq > 59.75) and (iFreq <= 60.25)
  • Led_Plus1 := (iFreq > 60.25) and (iFreq <= 60.75)
  • Led_Plus2 := (iFreq > 60.75) and (iFreq <= 61.25)
  • Led_Plus3 := (iFreq > 61.25)

Une compensation est ajoutée dans la routine de mesure pour tenir compte du temps de traitement et de mesure, qui ici dure 8 us.

Fonctions annexes

Les boutons-poussoirs SW2 à SW4 permettent d'afficher et d'effacer les valeurs min et max mémorisées :
SW2 : affiche la valeur min de fréquence détectée depuis la dernière RAZ.
SW3 : affiche la valeur max de fréquence détectée depuis la dernière RAZ.
SW4 : efface les valeurs min et max de fréquence détectées depuis la dernière RAZ.
Le cavalier (jumper) JP1 permet de spécifier si les mesures doivent être ou non moyennées :
JP1 retiré (RB1 = 1) : moyennage effectué en glissant sur les trois dernières mesures
JP1 en place (RB1 = 0) : moyennage désactivé

Sortie Tx ?

Ah, vous l'avez remarquée... Cette sortie délivre un message ASCII (texte) en mode série (9600 bauds, 8 bits données, 1 bit stop) qui n'est rien d'autre que la valeur mesurée entre deux impulsions, en microsecondes. Par exemple si la dernière mesure est de 50 Hz, un message "20000"+#13 est envoyé. Le temps pris pour envoyer ce message ne perturbe pas le compteur, qui s'incrémente en arrière-plan. A noter que la valeur du compteur n'est pas transmise en absence de signal à l'entrée, car ce sont les fronts montants du signal d'entrée qui provoquent l'envoi des données.

Logiciel du PIC

Fichier binaire compilé *.hex à flasher dans le PIC disponible dans l'archive zip suivante. Développé et compilé avec MikroPascal V6.x.
Indicateur fréquence 001 - 16F628A

CATÉGORIES

Copyright © 2019 Des circuits électriques pour radioamateurs.