|
Petit générateur HF 0 à 30 MHz avec Arduino® UNO R3 et AD9850 Article de Philippe, F6FZU
|
Avec l’aide de Sébastien, F4HFK, j’ai entrepris de fabriquer un générateur HF à base d’Arduino UNO et d’un module DDS avec un AD9850. Le générateur permet d’obtenir un signal sinusoïdal de 0.5 à 1 volt entre 0 et 30 MHz. L’affichage de la fréquence est assuré par un module LCD rétro-éclairé. Le réglage du pas est pré-sélectionnable entre 10 Hz et 1 MHz. Le prix de revient du montage est proche d’une douzaine d’€uros (prix sur Ebay).
Le matériel nécessaire est le suivant : Un Arduino UNO R3 (ou clone) Un module DDS avec un AD9850 Un afficheur LCD GDM 1602K ou Hitachi 44780 Un encodeur rotatif qui porte le doux nom de "Rotary Encoder Module"
Attention, il existe plusieurs modèles du shield DDS. Celui que j’ai utilisé comporte quatre jumpers et un oscillateur 125 MHz. Il peut se trouver en Chine autour de 7/8 euros. |
|||
Il faudra aussi disposer du logiciel écrit par Richard Visokey AD7C et adapté par F6FZU à télécharger sur le site F6KCZ. Télécharger le programme
Le schéma d’interconnexion donne toutes les liaisons à établir ainsi que la position des jumpers sur la platine AD9850.
Télécharger le schéma au format PDF
|
|||
La première opération consiste à câbler l’encodeur rotatif. J’ai choisi de souder les résistances et les condensateurs "en l’air" directement sur les broches du rotary. |
![]() |
||
![]() |
Exemple de câblage de l’afficheur. Le potentiomètre permet de régler le contraste. Il est soudé directement sur les broches du module. La résistance de 100Ω entre le 5v et la broche 15 alimente l’éclairage de l’afficheur. |
||
La platine ci-contre a été développée par Sébastien F4HFK mais il est facile de la remplacer par une plaquette « à trous » puisqu’elle ne supporte que VR3, R7 et C5. Les autres broches permettent d’éviter de câbler directement sur le module AD9850. La sortie du générateur se trouve à droite (Broches OUT et GND du module). |
![]() |
||
![]() |
Vue d’ensemble du montage et premiers essais. Une alimentation de 5 v 600mA a été réalisée pour le montage. Elle se compose d’un transfo de 6v, d’un pont de diodes, d’une capa de 1000μF et d’un régulateur 5V type 7805 avec un petit radiateur. Deux capas de 100nF découplent à la masse, les pattes du régulateur. |
||
Préparation à la mise en boîte. |
![]() |
||
![]() |
Mise en boîte. | ||
|
|||
Le produit fini avec les deux modèles de clones d’Arduino testés. Le modèle de gauche comporte un convertisseur USB-série de type CH341G. Ce modèle n’est pas compatible avec le driver USB standard de l’Arduino et il faut installer le driver dédié. Ce driver est disponible ici : Télécharger le driver pour CH341G Après avoir réalisé le montage, il faudra programmer l’Arduino. Si le câblage a été respecté, l’afficheur devrait indiquer la fréquence : 10.000.000 Hz sur la première ligne et le pas 1 MHz sur la deuxième ligne. Il sera peut-être nécessaire de régler le potentiomètre de contraste VR1 afin de voir quelque chose sur l’afficheur. En branchant un oscilloscope sur la sortie, on pourra vérifier que le générateur produit une belle sinusoïde. Il faudra régler l’amplitude à l’aide de VR3 (Output level). NB : Il n’y a pas de VR2. A 10 MHz, on doit pouvoir régler entre 0.1v et 0.5V. Dès que la fréquence s’affiche, on doit pouvoir mesurer cette même fréquence sur la sortie à l’aide d’un fréquencemètre. Malheureusement, l’oscillateur de 125 MHz présent sur la platine AD9850 ne délivre pas une fréquence parfaitement juste et il y a lieu de mettre en phase le logiciel avec l’oscillateur. Cette mise en phase est empirique. Dans le logiciel, on trouvera la ligne suivante : //********************************************************************************* float lag=-1475; // Adjust this variable to correct the lag between the generator and the frequency meter //*********************************************************************************l Il sera nécessaire de modifier le nombre 1475 soit en plus, soit en moins de façon à mettre en accord, la fréquence générée et le fréquencemètre. Commencer en ajoutant 100 et voir le résultat . La fréquence devrait monter. Le programme utilise une bibliothèque "rotary.lib" qu’il faudra décompresser dans votre répertoire "libraries" existant dans votre répertoire "Arduino" Cette bibliothèque est téléchargeable ICIAprès chaque modification, il faudra téléverser le logiciel et reprendre la mesure. C’est un petit jeu de patience à recommencer tant que la fréquence du fréquencemètre est différente de celle affichée. Cela m’a pris environ une heure.
Les tests :
|
|||
Vérification de la forme d’onde à 1MHz. Oh, la belle sinusoïde !
L’amplitude, ici de 200mV, est réglable par le potentiomètre VR3. |
![]() |
||
![]() |
Passage au fréquencemètre. On est à une quarantaine de Hertz de la fréquence affichée. Mais, ni l’un ni l’autre ne sont des appareils de mesure étalonnés. Il est donc impossible de savoir qui à raison. Le récepteur de trafic donne à peu près la même mesure. |
||
![]() |
|||
A 14 MHz, le décalage reste sensiblement le même. On est à une dizaine de Hertz de la fréquence affichée par le générateur. |
|||
En conclusion, ce petit générateur reste une bonne affaire. Sans vouloir jouer dans la cour des grands, il permettra de régler et d’étalonner nos nombreuses constructions OM.
Je tiens à préciser que le mérite de cette réalisation ne me revient pas : je me suis contenté de la construire et d’adapter le logiciel. Je remercie Sébastien, F4HFK, pour m’avoir communiqué le dossier de ce montage ainsi que Richard, AD7C, pour avoir mis son logiciel à disposition sur le web. En cas de difficultés avec la mise en route, je me ferai un plaisir de vous aider lors des réunions du radio-club de Caen.
|
|||
Bonne construction. |
|||
73 de Philippe F6FZU
|
|||
Mis à jour le 12/02/2017 |