Il s'agit d'un circuit simple et économe en énergie qui me fournit simultanément 11 fréquences utilisables dans diverses applications et expériences. Le signal est de type signal d'horloge carré ou créneau, positif et très stable. Il me servira comme fréquences de référence (sans prétention de précision ou de standard) pour alimenter des montages expérimentaux, vérifier les appareils de mesure, ou bien tracer des pistes conductrices dans des montages complexes.
J'ai une expérience ancienne, datant du début des années 1980, de l'utilisation des cristaux de quartz comme microbalance (S.Lazare, JC.Soulignac, P.Fragnaud Appl.Phys.Lett. 50, 684 (1987)). Un quartz recouvert d'un film de polymère voit sa fréquence de résonnance changée d'un grandeur proportionnelle à la masse du film. La variation est très sensible car en moyenne 1 Hz de fréquence correspond à une épaisseur de 1 angstrœm. D'où son application au laboratoire pour suivre l'évolution d'un film de polymère sous différents types d'environnements.
Liste des composants: IC1 74HC04, IC2 CD4060, Quartz 4MHz, R1 1 Mohm, C1 C2 30 pF, R2 220 ohms
Propriétés du circuit: alimentation 12V consommation à 12V 5,5 mA
 |
| Schéma du générateur |
Le circuit oscillateur, à base d'un Quartz 4 MHz, utilise un inverseur du 74HC04 avec une résistance de polarisation R1 de 1 Mohm et deux condensateurs de 30 pF qui ont été choisis pour donner l'amplitude la plus grande en sortie. Avec une alimentation en 5 V cela donne une amplitude pic-à-pic légèrement plus grande que 5 V. On peut aussi choisir le niveau d'alimentation plus élevé, jusqu'à 15 V, mais on verra plus bas lors de la mesure avec le fréquencemètre Arduino, qu'il est impératif de choisir le niveau de 5V. Sur l'oscillogramme de la sortie on remarque que le signal n'est pas parfaitement carré et il peut y avoir plusieurs raisons pour cela. Soit c'est la bande passante de l'oscillo (60 MHz) qui limite ou soit c'est le signal lui même.
Les 10 sorties du CD4060 ont chacune un rapport de division différent égal à 2^n (n=4 à 14 sauf 11) et fournissent des fréquences qui sont listées dans le tableau suivant:
| Sortie | Diviseur | Fréq. (Hz) | Arduino (Hz) | FY2300 (Hz) |
| 0 | 1 | 4000000 | 3997066 | 3999964,5 |
| 1 | 16 | 250000 | 249812,1 | 249999,2 |
| 2 | 32 | 125000 | 124906,4 | 124999,6 |
| 3 | 64 | 62500 | 62453,2 | 62499,8 |
| 4 | 128 | 31250 | 31226,6 | 31249,9 |
| 5 | 256 | 15625 | 15613,8 | 15624,9 |
| 6 | 512 | 7813 | 7806,4 | 7812,4 |
| 7 | 1024 | 3906 | 3903,2 | 3906,3 |
| 8 | 4096 | 977 | 975,5 | 976,6 |
| 9 | 8192 | 488 | 488,2 | 488,2 |
| 10 | 16384 | 244 | 244,1 | 244,1 |
Sur la photo du circuit ci-dessous, la plaquette grisâtre porte l'oscillateur à Quartz de base à 4 MHz avec sa sortie 4 MHz (broche 0 dans le tableau) fil jaune à droite. La plaquette grise possède aussi ses broches d'alimentation et elle a été fixée et câblée sur la plaquette du bas qui comporte le CD4060, ainsi que les bornes à vis d'alimentation (en vert) suivi d'une protection par une diode Transil 15 V et un fusible ré-armable de 500 mA et ses ses broches de sortie. Les broches de sortie, au premier plan, sont numérotées de 1 à 10 en allant de la gauche vers la droite. Les sorties sont mesurées à l'oscilloscope et à l'aide du fréquencemètre Arduino UNO comme décrit plus bas. Les valeurs des fréquences sont rassemblées dans le tableau ci-dessus et sont en accord avec les valeurs attendues. Comme attendu, les signaux montrent des profils bien plus carrés aux basses fréquences.
Les mesures au fréquencemètre Arduino UNO
Celui-ci est décrit en détail dans un blog de Frédéric Legrand
Il met à profit les qualités du TIMER1 16 bits de l'ATmega328 pour compter les fronts montant du signal, tandis que le TIMER2 génère un signal d'horloge qui permet d'arrêter le comptage à chaque seconde par exemple. La performance de ce fréquencemètre est remarquable et pour les détails il vaut mieux se reporter à la description du blog. Si la précision semble bonne, il faut quand même être conscient du fait qu'elle dépend de celle du circuit d'horloge de l'UNO. Si la seconde n'est pas exactement une seconde, parce que le quartz de l'Arduino n'est pas exactement à 16 MHz pile, il en découlera une imprécision sur la valeur de la fréquence. Dans ce cas il faudra étalonner l'Arduino avec un fréquencemètre bien calibré pour pouvoir si nécessaire corriger le résultat par la voie logiciel.
Contrôle des fréquences avec un appareil mieux étalonné
J'ai essayé avec le Feeltech FY2300 qui a une entrée EXT.IN compatible avec les niveaux de signal de mon circuit. Les résultats sont dans la dernière colonne du tableau et montrent un bien meilleur accord avec les valeurs attendues que celles de l'Arduino. Il conviendra, pour poursuivre de faire une correction dans le programme de l'Arduino. Dans mon cas j'applique un facteur correctif égal à 1,00074 à la variable freq dans le sketch de l'Arduino et les résultats deviennent très proches des valeurs attendues et des valeurs mesurées avec le Feeltech. Donc tout semble correct ainsi.
 |
| Détail du module de protection anti-inversion de polarité et anti-surtension visible sur la plaquette brune |
 |
| Sorties 1 et 3 |
 |
| Sorties 7 et 8 |