Un géné. BF-HF AD9850/Arduino Uno
(V2.1)
Par Daniel Maignan
Le projet Arduino a vu le jour au milieu des années 2000. C’est aujourd’hui une marque qui couvre une série de cartes électroniques pourvues d’un microcontrôleur qui peut être programmé pour effectuer des tâches très diverses, dans la domotique, pour le pilotage d'un robot, dans l'informatique embarquée, etc. Cette plateforme d’une conception géniale, est basée sur une interface entrée/sortie simple destinée à l'origine à la programmation multimédia interactive pour les spectacles ou les animations artistiques, mais qui a été reprise aujourd’hui par les bricoleurs du monde entier, car elle permet une relation directe et interactive avec la machine. La programmation de l’Arduino met en œuvre des logiciels « open source », en libre accès, auxquels tout le monde peut apporter sa contribution en les adaptant ou les améliorant, voire même en en créant de nouveaux. L’objectif de ce projet est de réaliser un générateur BF/HF, avec l’association d’un oscillateur numérique programmable. Puis, disposant d’un signal agile, doté d’une haute résolution et d’une stabilité digne de celle d’un oscillateur à quartz et acceptant un taux élevé de modulation d’amplitude, nous serons à même de construire, avec un petit amplificateur linéaire, un émetteur GO, PO, voire OC. La dernière partie de cette description concerne la mise en œuvre et la programmation qui est indispensable au fonctionnement, une fois la réalisation terminée et vérifiée.
The Arduino project appeared in the early 2000’s. Today it’s a brand which encompasses a series of circuit boards equipped with a microcontroller which can be programmed to perform a wide range of tasks (home automation, control of robots, embedded computing, etc). This well conceived platform is based on a simple input/ output interface, originally aimed at interactive multimedia programming for live performances and artistic shows, but which has now been adopted by enthusiasts all over the world because it enables a direct and interactive linkage with the equipment. Arduino programming implements freely accessible open source software, to which anyone can contribute by adapting, improving or even creating new material. The objective of this project is to make an LF/ HF signal generator, through linkage to programmable digital oscillator. Then, equipped with an agile, high resolution signal with the stability of a quartz oscillator and able to accept a high level of amplitude modulation, we will be able to build (with the addition of a small linear amplifier) a LW/ MW (perhaps even SW) transmitter. The last part of this description is dedicated to the setting and programming the device, steps necessary for operation, once wiring, soldering and mechanics are over and checked.
Première partie: introduction
Histoire et technique:
L'Arduino a été conçu en Italie du Nord à « l’Interactive Design Institute Ivrea » de Ivrée. Il emprunte son nom au « Bar di Re Arduino » (bar du roi Ardouin), lieu où se réunissaient à l’époque ses concepteurs. Sa grande disponibilité, sa facilité d’utilisation et son coût modique ont rapidement contribué à son succès. La figure 1 montre la carte avec le microcontrôleur en boîtier DIL (Dual In Line) « traversant ». Celle-ci existe également en version CMS (Composant Monté en Surface) ou SMD (Surface Mounted Device). Par précaution, il sera préférable de choisir pour débuter la version DIL qui permet l’interchangeabilité aisée du module en cas de problème.
Figure 1 –La carte Arduino Uno avec le module traversant
Le module Arduino Uno est construit autour d'un microcontrôleur Atmel AVR (ATmega328 ) associé à des composants périphériques pour la programmation ou l'interfaçage avec d'autres circuits. La carte possède une régulation de la tension d’alimentation à 5V et une horloge à quartz 16 MHz. La programmation est effectuée grâce à une connexion série par un câble USB et l’alimentation et les contrôles, les entrées et les sorties, sont disponibles sur des connecteurs barrettes femelles HE14. L’ordinateur connecté a la possibilité de faire l’acquisition de certaines données de la carte via le port USB.
Description générale et spécifications:
- Sur le circuit imprimé se trouvent le microcontrôleur sur son support avec les composants CMS périphériques actifs et passifs, le quartz 16 MHz de l’horloge. Les bordures reçoivent les broches d’interfaçage, ainsi qu’une prise d’alimentation et une prise USB. La diode LED verte « ON » est le témoin d’alimentation. Deux leds « Rx » et « Tx » clignotent au rythme des échanges entre la carte et l’ordinateur via le port USB.
- Le microcontôleur dispose de son propre chargeur d’amorçage (bootloader) stocké dans sa mémoire, ce qui lui permet de démarrer automatiquement. Durant le chargement du programme d’utilisation via la connexion USB, l’alimentation de la carte +5V est délivrée par l’ordinateur. Une fois le programme chargé, afin d’obtenir l’autonomie, on peut ôter la prise USB et utiliser la prise alimentation en connectant une pile ou une batterie dont la tension doit être comprise entre 7 et 12 volts. La carte dispose d’un certain nombre d’entrées/sorties numériques (ports) qui sont répertoriées de 0 à 13 avec certains chiffres précédés d’un tiret. Deux d’entre-elles dédiées à la transmission des données en série sont précédées de RX et TX. Enfin la prise GND (Ground) correspond à la masse. Il existe également six entrées analogiques, de A0 à A5 et les six entrées/sorties précédées d’un tiret peuvent être configurées en sorties analogiques dénommées à cette occasion D3, D5, D6, D9, D10 et D11 et qui fonctionnent en modulation de largeur d’impulsion (PWM = Pulse Width Modulation), voir la figure 2.
Figure 2 – Affectation des broches et des prises de l’Arduino Uno
Nota : les ports numériques, entrées ou sorties, fonctionnent avec 5V pour un niveau logique « 1 » ou 0 volt pour un niveau « 0 ». Ne jamais dépasser 5V en entrée pour un niveau « 1 ». Les niveaux de tension sur les ports analogiques peuvent varier entre 0 et 5V.
- Sept broches sont assignées aux alimentations :
- VIN : tension d’entrée d’alimentation entre 7 et 12V.
- 5V : sortie 5V régulée.
- 3,3V : sortie 3,3V régulée (Imax 50 mA).
- GND (3) : masses alimentation.
- IOREF : tension de référence des ports.
- Les différentes mémoires :
- La mémoire flash enregistre le programme que doit exécuter le microcontrôleur. Important : même si la carte n’est plus sous tension, la mémoire garde ces informations pour la mise sous tension suivante.
- La SRAM dont le nom est l’abréviation de « Static Random Access Memory », ou en français mémoire statique à accès aléatoire. Elle sert à stocker temporairement sous forme numérique des valeurs mesurées pour leur traitement par un programme. Ces valeurs temporaires disparaissent à la mise hors tension.
- La mémoire EEPROM, « Electrically Erasable Programmable Read Only Memory» ou en français Mémoire programmable à lecture seule et électriquement effaçable. Cette mémoire conserve ses données enregistrées de façon permanente, même hors tension.
Spécifications :
Microcontrôleur Atmega328 Tension alimentation 5V Plage de tension d’entrée 7 à 12V Limites max tension d’entrée 6/20V Ports numériques 14 Ports analogiques 6 Courant max port 40 mA Courant max 3,3V 50 mA Mémoire flash 32 Ko Mémoire SRAM 2 Ko Mémoire EEPROM 1 Ko Fréquence horloge 16 MHz |
Le module oscillateur DDS AD9850 et la carte AD9850 A401 :
Le circuit AD9850 est un dispositif CMOS à haute intégration utilisant la technologie innovante de la synthèse digital directe (DDS : Digital Direct Synthesis) qui produit, lorsqu’il est référencé par une horloge de précision, un signal sinusoïdal dont la phase (donc la fréquence) est programmable. La technologie DDS couplée à un convertisseur digital/analogique 10 bits et à un comparateur à haute vitesse, forme un synthétiseur à fréquence programmable dont le synoptique est représenté en figure 3.
figure 3 – Le circuit AD9850
Le mot d’instruction numérique qui définie l’accord comporte 32 bits, ce qui donne avec une horloge à 125 MHz, une résolution de la fréquence de 125 x 106 Hz/ 232 = 0,02910383 Hz. Le circuit peut générer un signal dont la fréquence peut monter jusqu’à la moitié de la fréquence de l’horloge et celle-ci peut être changée par la commande à une vitesse pouvant aller jusqu’à 23 millions de nouvelles fréquences par seconde. Les commandes d’accord et les différents contrôles sont chargés dans le circuit via 5 octets (5 mots de 8 bits) en parallèle ou bien un flux de 40 bits série sur une broche unique. La mémoire de phase est un compteur à module variable qui incrémente (ajoute) le nombre enregistré à chaque nouvelle impulsion d'horloge.
Lorsque le compteur déborde, il reboucle sur lui-même de sorte que le signal est généré continuellement.
Le mot de commande de fréquence (fourni dans notre montage par l’Arduino) détermine la valeur de comptage du compteur (modulo), ce qui en fin de compte détermine la taille de l'incrément (delta phase) qui est ajouté dans l'accumulateur (mémoire) de phase lors de l'impulsion d'horloge suivante. Plus l'incrément est grand et plus vite l'accumulateur se remplit et déborde, ce qui produit en définitive une fréquence plus élevée. Le signal numérique de sortie est issu d'un calcul mathématique d'une fonction cosinus avec comme variable la valeur de la phase. Le schéma synoptique de base simplifié du circuit qui est issu de la « data sheet » est représenté sur la figure 4.
figure 4 – Synoptique simplifié du circuit AD9850
Le signal sinusoïdal créé numériquement en sortie du DDS pilote le convertisseur digital-analogique afin de construire l’onde sinusoïdale analogique. Un signal carré compatible TTL et CMOS est également disponible en sortie. Comme l’élaboration provient d’un échantillonnage, le spectre du signal de sortie contient un grand nombre de produits de mélange, avec la fréquence fondamentale plus des fréquences images qui correspondent aux mélanges du signal d’horloge et de ses harmoniques avec la fréquence fondamentale. Il est donc primordial d’installer un filtre adéquat en sortie, comme c’est le cas sur la carte DDS AD9850 A401 qui est équipée d’un filtre passe-bas 70 MHz.
figure 5 –Affectation des broches de la carte AD9850 A401
Le coeur de la carte AD9850 A401 est le circuit AD9850 décrit ci-dessus. Tous les composants externes nécessaires au fonctionnement du DDS sont implantés sur le circuit imprimé, qu’il suffit d’alimenter avec une tension continue de 3,3 ou 5V et de lui fournir les signaux de commandes indiqués en figure 5.
La fonction de chaque broche est détaillée dans le tableau ci-dessous :
Symbole |
Fonction |
VCC |
Alimentation 3,3 ou 5V |
GND |
Masse |
W_CLK |
Horloge utilisée pour charger les mots d’instruction parallèle ou série pour le contrôle de la phase ou de la fréquence. |
FQ_UD |
Mise à jour de la fréquence sur le front montant le DDS actualise sa fréquence dans le registre d’entrée. |
DATA |
D7, entrée série |
RESET |
Réinitialisation. Lorsque le niveau est haut, il efface toutes les données dans les registres, sauf dans celui d’entrée. La sortie du DAC se met sur cos 0 aux cycles d’horloge suivants. |
D0-D7 |
Entrée des mots de 8 bits, c’est l’entrée pour les fréquences sur 32 bits. D7 = bit le plus significatif, D0 = bit le moins significatif. D7 est également utilisé comme entrée série. |
Sortie 1 signal carré |
Sortie du comparateur signal carré vrai |
Sortie 2 signal carré |
Sortie du comparateur signal carré complément |
Sortie 1 signal sinusoïdal |
Sortie analogique du DAC |
Sortie 2 signal sinusoïdal |
Sortie analogique complémentaire du DAC |
Il est regrettable que la broche 12 du circuit intégré qui contrôle le niveau de sortie, ne sorte pas sur la carte, il faudra donc pratiquer une petite intervention, car c’est sur cette dernière que sera appliqué le signal de modulation d’amplitude, comme nous le verrons plus loin.
-------------
Deuxième partie: développement et réalisation
Phase de développement:
Pour mener à bien les essais de programmation, l’évaluation de la fonctionnalité et de la modulation d’amplitude et enfin les mesures, l’ensemble regroupant l’Arduino, la carte AD9850, l’encodeur rotatif et l’affichage a été monté sur une « bread board » (planche à pain) que l’on voit sous tension, sur le cliché de la figure 6, avec le générateur calé sur la fréquence de Europe N°1 en grandes ondes, désormais inoccupée.
figure 6 – la « bread board » utilisée pour le développement
Le programme tel qu’il a été établi, borne la plage de programmation de la fréquence entre 10 Hz et 30 MHz avec un pas de 10Hz-50Hz-100Hz-500Hz-1kHz-2,5kHz-5kHz-10kHz-100kHz ou 1MHz, sélectionné en appuyant sur l’axe de l’encodeur. Le niveau de sortie en fonction de la fréquence a été mesuré, ce qui a permis de définir le niveau d’amplification à mettre en oeuvre.
Examen de la section analogique (générateur):
Figure 7 - Schéma du générateur.
Le cœur du montage est donc ce module DDS AD9850 piloté par un Arduino Uno (figure 7). L’ensemble fonctionne de 10 Hz à 30 MHz et délivre le signal sinusoïdal dont la fréquence est programmable. La fréquence et le pas sont affichés sur un module afficheur à cristaux liquides ou LCD (Liquid Crystal Display). En HF, c'est-à-dire au dessus de 100 kHz environ, le signal est amplifié par le circuit intégré LM6181, avec correction de la bande passante (BC548A) et adaptation sur basse impédance en sortie (J310). L’amplitude du signal peut être réglée d’une manière continue par un potentiomètre, plus un jeu de trois atténuateurs de 3, 6 ou 10 dB en série et mis en service par des relais, permettant d’accomplir des mesures calibrées. Le signal peut être modulé en amplitude jusqu’à 100% avec une linéarité excellente (2N7000), comme nous les verrons plus loin. En BF le signal est amplifié par le TL071 pour fournir un signal de mesure ou d’essais confortable. Il est également réglable, grâce au potentiomètre P2.
La commutation HF/BF se fait manuellement grâce à l’inverseur S2.
Les alimentations dont le schéma est représenté en figure 8, délivrent les trois tensions qui sont indispensables au fonctionnement, soit : 5 V pour l’Arduino, la carte AD9850 A401 et les relais, et +/-15V pour les amplificateurs.
figure 8 – Schéma des alimentations
LISTE DU MATERIEL ET DES COMPOSANTS NECESSAIRES:
http://maignan-daniel.e-monsite.com/medias/images/composants-gene-2.jpg
http://maignan-daniel.e-monsite.com/medias/images/composants-alim..jpg
http://maignan-daniel.e-monsite.com/medias/images/composants-num..jpg
Câblage, assemblage et montage:
Les figures 9 et 10 représentent les typons de la face soudures et de la face composants du circuit imprimé à trous métallisés du module générateur, sur lequel vient se connecter la petite carte AD9850 A401 et sur lequel sont câblés les amplificateurs, les atténuateurs et les commutations, ainsi que le modulateur.
Figure 9 – CI côté soudures
Figure 10 – CI côté composants
Pour parfaire les choses, afin de limiter les rayonnements HF, le circuit est logé dans un boîtier métallique hermétique et toutes les liaisons avec l’extérieur -alimentations, signaux de commande et signaux analogiques- sont réalisées à travers des condensateurs de traversée de 1 nF (by-pass) ou des connecteurs spécifiques. Ce mode de construction est recommandé si l’on destine cet appareil aux réglages et mesures HF de récepteurs en signaux faibles, pour évaluer la sensibilité, le rapport signal/bruit etc.
Rappelons que la figure 5 montre l’affectation des broches de la carte AD9850 A401. Les figures 11 et 12 montrent les détails de la réalisation et de l’aspect du transformateur trifilaire T1.
Figure 11 – Réalisation de T1
Figure 12 – Vues de T1
Pour le câblage du circuit imprimé, il est conseillé d’utiliser un fer à souder de 30 ou 40 watts muni d’une panne fine. Il faudra cependant utiliser un fer plus puissant pour assembler le boîtier en fer étamé et souder les condensateurs de traversée. Un « campingaz » pourra être avantageusement utilisé pour ce travail (figure 13).
Comme déjà mentionné, la carte DDS AD9850 A401 devra subir une petite intervention chirurgicale, il faudra en effet ôter la résistance CMS R6 de 3,9 kohms qui se trouve sur la boche 12 et souder à cet emplacement un petit fil (figure 14) qui sera relié au drain du transistor MOS FET modulateur 2N7000.
Figure 13 – Campingaz
Figure 14 – modification de la carte DDS
Bien que ces informations se trouvent aisément, sur la figure 15 est représenté le brochage des principaux composants.
Figure 15 - Brochages
Pour aller au plus simple, la carte des alimentations peut très bien être câblée sur une plaquette à pastilles, à partir du schéma de la figure 8. La section générateur est câblée selon le schéma de la figure 7, sur le circuit imprimé double face de 74 x 110 mm (figures 9 et 10). Se reporter aux listes des composants et veiller à bien respecter le brochage des composants actifs et la polarité des diodes et des condensateurs chimiques. Sur la figure 16 sont représentées les barrettes servant de support à la carte DDS AD9850.
Figure 16 - Barrettes
Câblage de l’encodeur et interconnexions:
Suivre le câblage de l’encodeur rotatif indiqué sur la figure 17, puis le plan des interconnexions représentées en figure 18.
figure 17 – Câblage de l’encodeur
Figure 18 – Plan de câblage et interconnexions des modules.
(Le potentiomètre de 22 kohms permet d'ajuster la luminosité et l’affichage des caractères).
Les figures 19 à 23 montrent différents clichés de l’appareil terminé.
Figure 19 – le module générateur câblé.
Figure 20 – Coffret ouvert, vue du câblage général.
Figure 21 – Coffret ouvert, boîtier générateur fermé.
Figure 22 – Face avant de l’appareil sous tension.
Figure 23 – Face avant de l’appareil sous tension.
Quelques mesures:
Rappelons que la modulation est seulement possible en position HF.
Quelques mesures sont indiquées ci-dessous à titre indicatif.
La sinusoïde d’un signal 10 MHz est représentée sur l’oscillogramme de la figure 24 et un aspect de la modulation du signal sur cette fréquence, à 1 kHz est représenté sur les clichés des figures 25 et 26, avec des niveaux d’entrée BF de 150 mVeff et 300 mVeff, respectivement.
figure 24 – Signal 10 MHz
figure 25 – Signal 10 MHz modulé à 1 kHz 150mVeff
figure 26 – Signal 10 MHz modulé à 1 kHz 300mVeff
-Mesure de niveau de sortie chargée par 50 ohms en position HF (valeur efficace mesurée sur R&S URV4) :
100kHz : 240 mV
1MHz : 382 mV
5 MHz : 374 mV
10 MHz : 342 mV
15 MHz : 310 mV
20 MHz : 280 mV
25 MHz : 227 mV
29 MHz : 169 mV
-Position en BF, l’impédance de sortie Zs mesurée est égale à ≈ 20 ohms.
-Position BF, niveau mesuré à vide sur oscilloscope = 4 Vcrête à crête de 10 Hz à 100 kHz.
-------------
Troisième partie:
Apprentissage et programmation
L’IDE de l’Arduino
Figure 27 - Logo Arduino Create
L’environnement de développement de l'Arduino est indispensable pour piloter et programmer la carte avec un logiciel. Pour débuter, il est préférable d’utiliser le logiciel officiel Arduino qui est téléchargeable gratuitement. Pour cela, créer un compte (figure 28).
Figure 28
Cet environnement est nommé IDE (Integrated Development Environment). Le tableau de téléchargement (download) figure ci-dessous :
figure 29 – Downloading l’IDE
Comment installer l’IDE sous Windows:
Les fichiers source sont téléchargeables à l’adresse suivante :
http://arduino.cc/en/Main/Software
Il sera également nécessaire d’installer le pilote du port USB de votre ordinaeur auquel sera connectée la carte.
-Télécharger l’environnement sur le site web de l’Arduino en cliquant à droite en haut sur « Windows Installer for Windows XP and up» et cliquer sur le lien correspondant.
-Cliquez sur « Contribute & Download » si vous désirez faire un don, ou bien sur « Just Download ».
-Le téléchargement dure quelques minutes .
Figure 30
-Ouvrez le dossier et double-cliquez sur le fichier d’installation, puis cliquez sur « I agree » (je suis d’accord ) pour démarrer.
Figure 31
L’écran suivant permet de sélectionner le mode d’installation, conserver tous ces éléments sélectionnés par défaut et qui sont détaillés ci-dessous :
- -Installation du pilote USB (indispensable).
- -Création d’un raccourci pour le bureau (pratique).
- -Extension de fichier .ino (indispensable).
Figure 32
-Cliquer ensuite sur le bouton « Next » (suivant), puis sur « Install » pour démarrer l’installation de l’IDE.
Figure 33
La progression s’affiche sur l’écran.
Figure 34
-Une fois l’installation terminée, cliquer sur « Close » (fermer).
-Brancher la carte sur la prise USB de l’ordinateur. Celle-ci doit être reconnue et déclenche automatiquement l’installation du driver en indiquant le port utilisé. Vous pouvez le vérifier en regardant le gestionnaire de périphérique dans le panneau de configuration.
Figure 35
Description de l’IDE :
Vous avez maintenant accès à l’environnement de développement en cliquant sur le logo dans la barre de taches ou dans le bureau de votre ordinateur.
Il comporte différentes zones. L’éditeur de texte avec quelques lignes occupe la majorité de la surface. On y voit le code source ainsi que le début du programme que l’on appelle « sketch » en langage Arduino. Tous les sketches débutent par les deux fonctions de base setup et loop.
Dans le menu "Outils" on peut voir également le port utilisé.
figure 37
Contenu de l’écran:
- L’éditeur de texte affiche le code source du sketch avec le langage de progammationet des mots clés en couleur.
- Messages du compilateur : au dessous de l’éditeur se trouve la zone en noir où est affiché le résultat de la dernière action exécutée ou bien les problèmes, ainsi que l’état de la mémoire.
- Informations de connexion : sur la zone inférieure se trouvent les informations de connexion.
- Onglets : chaque onglet contient le code source d’un sketch, lors du téléversement un seul onglet doit figurer.
- Moniteur série : l’icône de la loupe permet d’ouvrir le moniteur série qui utilise le port série.
- La barre de menus permet d’accéder aux différentes commandes, comme habituellement.
- La barre d’outils contient les fonctionnalités représentées en figure 37.
figure 38
Connexion de la carte :
Figure 39
Comme déjà indiqué, le câble se branche sur une des prises USB de l’ordinateur, afin d’alimenter la carte et permettre l’échange des signaux.
Test de la communication entre la carte et l’ordinateur:
Lorsque la carte est alimentée pour la première fois, la LED « L » indiquant l’état de la broche 13, clignote toutes les secondes, grâce à un sketch préinstallé. L’IDE comporte également de nombreux sketches disponibles. Nous allons ouvrir le sketch « Blink » (clignotement) afin de modifier la fréquence de clignotement, dans le but de vérifier la communication entre la carte et l’ordinateur.
Figure 40
-Ouvir le sketch « Blink » dont il est question :
figure 41
L’image suivante montre la fin du sketch de Blink où figure entre parenthèses le temps en ms de pause de la led : 1000.
-Changeons ce temps de 1000 ms (1s) à 100 ms (0,1s) sur les deux lignes de delay comme suit :
delay(100);
figure 42
-Vérifier dans la barre d’outils que le type de carte – Arduino Uno - est correct et que le port a bien été identifié et est couplé à l’Arduino :
figure 43
Remarques sur les librairies (bibliothèques):
Le mot librairie est en fait la mauvaise traduction du mot anglais « library, pluriel libraries » qui est un faux ami (false friend) qui signifie en français bibliothèque. Donc une librairie est un paquet de code qui permet de connecter facilement une sonde, un affichage …
Vérifier que les librairies qui vont être appelées par le programme sont bien présentes, en particulier "Rotary.h"
Pour cela:
Dans "Croquis", cliquer sur "Inclure une bibliothèque", puis "Ajouter la bibliothèque ZIP". Rotary doit se trouver en bas de la liste, cliquer dessus.
Il s’agit maintenant de compiler le programme modifié , c'est-à-dire de traduire notre langage de programmation (ici le C++ avec des mots en anglais), En langage compréhensible par la machine, en fait une succession de « 1 » et de « 0 ».
En cliquant sur l’icône de compilation, la syntaxe est strictement vérifiée par le logiciel et toute erreur détectée est signalée et interrompt le processus. Si aucune erreur n’est détectée, le message « compilation terminée » apparaît dans la zone verte.
Le code compilé en langage machine peut alors être transmis en cliquant sur la flèche, et si tout se passe bien, le message suivant sera affiché dans la zone verte : « Téléversement terminé » . Pendant le téléversement le diodes « TX » et « RX » clignotent au rythme de la communication bidirectionnelle établie entre la carte et l’ordinateur. Quand le transfert est terminé les LEDs s’éteignent. Si le téléversement a été réussi, la diode « L » clignote maintenant au rythme de 100 mS.
Quelques précisions très utiles:
Le langage C++ fait la différence entre majuscules et minuscules. Par conséquent, une attention particulière doit être observée à ce sujet. Nous n’en sommes pas à la programmation, mais en cas de réécriture, il est possible de faire l’erreur. Par exemple le code suivant « digitalwrite » est incorrect, il doit être écrit : « digitalWrite ».
Si un mot de commande qui doit apparaître en couleur reste dans la couleur générale du code, c’est qu’il comporte une erreur. Les commandes du code se colorent lorsqu'on les saisies. C'est ce qui s'appelle la coloration syntaxique. Elle est très employée en informatique et permet de faire la différence entre les mots clés du langage utilisé et les autres.
Dysfonctionnements :
Si cela ne fonctionne pas, vérifier le câble USB. En cas de défaut d’alimentation la LED « ON » ne s’allumera pas et/ou ne sera pas reconnue. Vérifier que le port COM est bien dédié à l’Arduino. Réessayez en déconnectant et en reconnectant la prise USB et vérifiez si un port est venu s’ajouter. Noter clairement tous les sketches et les libraries et leur endroit de stockage.
A titre indicatif, précisons que les librairies doivent être stockées zippées, car l’IDE se charge de la décompression.
Supprimer les onglets des sketches inutiles s’il y en a, avec la petite flèche en haut à droite, car autrement ils vont se charger les uns après les autres. Les modifications sont prises en charge au redémarrage de l’IDE.
Principe et exemple du code Gray utilisé dans l’encodeur rotatif :
Le code de Gray est un codage binaire, c'est-à-dire une fonction qui associe à chaque nombre une représentation binaire. Cette méthode est différente du codage binaire naturel. Le tableau ci-dessous montre ce codage sur 4 bits. La différence principale entre les deux est le fait que le codage de Gray de deux nombres consécutifs ne diffère que d'une position, ce qui s’avère indispensable pour un encodeur rotatif. Par exemple 5 est codé par 0111, et 6 est codé par 0101 : seul le troisième bit change.
Nombre décimal |
Codage binaire naturel |
Codage Gray ou binaire réfléchi |
0 |
0000 |
0000 |
1 |
0001 |
0001 |
2 |
0010 |
0011 |
3 |
0011 |
0010 |
4 |
0100 |
0110 |
5 |
0101 |
0111 |
6 |
0110 |
0101 |
7 |
0111 |
0100 |
Téléversement du sketch, de l’encodeur et de la bibliothèque :
Cliquer sur le lien suivant : http://maignan-daniel.e-monsite.com/medias/files/ad9850-lcd-rotary-wmenus-bricol-ok.rar
Nous sommes dans l'environnement de l'Arduino contenant l'ensemble du sketch et des librairies prêt à fonctionner pour notre application et qu'il suffira de charger sur la carte Arduino selon la procédure décrite ci-dessus.
Nous arrivons à la fin de notre projet et c’est à cet instant que tout va se jouer!
Essais et conclusion:
Avec le jeu d’atténuateurs, il est possible d’obtenir des atténuations calibrées du signal de 3-6-10-13-16 et 19 dB. Ce générateur, simple et peu coûteux, qui ne posséde pas bien entendu, les performances d’un appareil professionnel, rendera cependant de grands services au laboratoire. L’utilisation de cet ensemble pourra s’étendre au pilotage d’un amplificateur pour la radiodiffusion AM, ou bien servir de base pour un émetteur radioamateur en AM dans la bande des 80 mètres ou d’un émetteur toutes bandes OC en télégraphie.
Je vous souhaite de prendre du plaisir et d'obtenir le succès dans cette réalisation et je me ferai un plaisir de répondre à vos questions ou commentaires. N'hésitez-pas à me consulter si vous avez des difficultés pour l'approvisionnement de certains composants.
Daniel Maignan/F6HMT
sanfil9201@wanadoo.fr
http://maignan-daniel.e-monsite.com/
Remerciements à Victor Cordoba/F6LIA qui a réalisé le design du circuit imprimé.
__________________________________
Bibliographie:
Le Grand Livre d’Arduino par Erik Bartmann éditions Eyrolles 3ème édition 2014
Arduino Create
Analog Device CMOS 125 MHz Complete DDS Synthesizer AD9850
AD9850 DDS VFO by Richard Visokey AD7C
Wikipedia
Copyright TLR 2020 - Toute reproduction interdite sans autorisation préalable de l'auteur.
Merci pour votre participation au coût de l'hébergement et à l'évolution constante de ce site que j'ai créé avant tout pour votre plaisir
Daniel.
Vous pouvez faire une donation en cliquant sur le lien suivant:
Date de dernière mise à jour : 31/08/2023
Commentaires
-
- 1. CHERENCQ Le 30/08/2023
Bonjour Daniel,
Merci pour la description de ce projet qui m'a vivement intéressé et dont j'ai entrepris la réalisation.
La possibilité de le moduler en amplitude est un vrai atout que je ne manquerai pas d'utiliser lors de la restauration de vieux récepeurs de TSF.
Sa stabilité et la possibilité d'apporter des atténuations calibrées est aussi d'un grand intérêt pour un radioamateur ( vérification de l'étalonnage des Smètres notamment).
Ma maquette est maintenant terminée et opérationnelle, je ne peux qu'encourager les passionnés de radio et d'électronique à réaliser ce montage très utile.
Et merci à vous pour vos propositions de montages de technologies anciennes ou modernes, un vrai panorama de l'histoire de la radio !
Amitiés et 73 de François F5NKZ-
- maignan-danielLe 30/08/2023
Merci François pour ces commentaires qui inciterons encore plus les amateurs à réaliser des montages de radio ou d'électronique. Daniel
-
- 2. Pascal Montaigne Le 24/08/2023
Bonjour,
Je n'arrive pas a trouver de fournisseur pour les relais,
Bien cordialement,
Pascal. -
- 3. Jean-pierre MAGNON Le 19/12/2021
Bonjour Daniel,
le générateur est finalisé et me donne toute satisfaction!!!
Encore bravo pour cette réalisation professionnelle!!!
Bien cordialement,,-
- maignan-danielLe 19/12/2021
Bonjour Jean-Pierre, Merci cela encourage à entreprendre cette réalisation. Daniel
-
- 4. Jean-pierre MAGNON Le 15/12/2021
Bonjour Daniel,
il s'agit effectivement du CI vendu par Radiofil.
J'essaierai le coup de la R série, mais à vrai dire, cet aléa n'est pas dérangeant...
Je vais certainement rajouter un circuit à base de XR2206 pour en faire un générateur modulé autonome..
Sur le schéma d'interconnexions, il me semble avoir relevé une erreur: Il y est indiqué JP9 -> +15V, OK, et JP9->commutation HF/BF, cette connexion est en fait JP7...
Bien cordialement,,-
- maignan-danielLe 15/12/2021
Bonjour Jean-Pierre, Merci d'avoir signalé cette erreur que j'ai de suite corrigée. Daniel
-
- 5. Jean-pierre MAGNON Le 14/12/2021
Re-bonjour Daniel,
j'avais effectivement omis ces 3 capas de découplage!!!
Je viens de les rajouter, il y a du progrès: quand j'enclenche les atténuateurs, c'est bon.
En revanche, quand je les coupe, le phénomène réapparaît...
Ce n'est pas très dérangeant en soi....
Bien cordialement,,-
- maignan-danielLe 14/12/2021
Peut-être insérer une résistance série de faible valeur et augmenter la capacité, cela devrait le faire. Est-ce le circuit imprimé vendu par Radiofil?
-
- 6. Jean-pierre MAGNON Le 14/12/2021
Bonjour Daniel,
j'ai finalisé le montage du générateur DDS, tout fonctionne, à une exception:
quand j'actionne un des inters de l'atténuateur (n'importe lequel), le signal en sortie de géné disparaît. Je suis obligé de tourner l'encodeur pour que le signal revienne.
Avez-vous rencontré ce problème?
Bien cordialement,,-
- maignan-danielLe 14/12/2021
Bonjour Jean-Pierre, Oui, votre problème semble provenir de la commutation qui perturbe l'état du logiciel. Dans ma description il y a des condensateurs de découplage de 100nF (C23, C24 et C25) sur les commandes, les avez-vous mis? Merci de me tenir au courant, bon courage. Daniel
-
- 7. Jacques Mahieux Le 02/04/2021
Salut Daniel ,
Répond moi sur mon Email et donne moi ton adresse Email ,
On reparlera de ça , j'ai des idées .
Best 73's -
- 8. Jacques Mahieux Le 01/04/2021
Salut Daniel ,
Ca fait maintenant longtemps depuis le Rx FM à monter .
Ce circuit peut il travailler de 56 à 57.4 MHz de façon continue pour un Rx SDR à 14 MHz ??
As tu écris un article à ce sujet sur le Radiofil magazine , quel No ?? ( je viens de m'y réinscrire # 4890 )
73's-
- maignan-danielLe 01/04/2021
Bonjour Jacques, Merci pour l'intérêt que tu portes à mes réalisations. Malheureusement le DDS AD9850 ne monte pas aussi haut en fréquence. Toute la description du générateur est publiée ici, ce n'est pas la peine de rechercher dans le magazine. Je ne fais plus partie de Radiofil. Bonne continuation et prends soin de toi Daniel/F6HMT
-
- 9. Jean Pierre MAGNON Le 11/02/2021
Bonjour,
bien reçu le circuit imprimé, du travail de pro, merci!!!!
L'archive contenant le programme est toujours endommagée, ou je n'ai pas compris quelque chose...
Bien cordialement,,-
- maignan-danielLe 11/02/2021
Je vous tiens informé sur ce problème. Daniel
-
- 10. Jean Pierre MAGNON Le 03/12/2020
Bonjour,
très intéressé par la réalisation de votre générateur, juste une question: où peut-on se procurer le circuit imprimé?
Bien cordialement,,-
- maignan-danielLe 03/12/2020
Bonjour, Merci pour votre intérêt. Vous pouvez obtenir le circuit imprimé chez Radiofil. cordialement Daniel Maignan
-
- 11. Bernard MILLE Le 12/09/2020
Je suis en train de réaliser ce générateur mais au moment de raccorder le CI je ne vois pas la relation entre les repères portés sur celui-ci (JP1, JP2 etc...) et ceux du plan de cablage (S3,S4 etc..).
Pourriez vous établir la correspondance ?
MERCI
B MILLE adhérent radiofil 4593-
- maignan-danielLe 13/09/2020
Bonjour Bernard, Je vais rajouter les repères du circuit imprimé sur la figure 18. cordialement Daniel Maignan -
- maignan-danielLe 14/09/2020
Bonjour Bernard, J'ai modifié la figure 18 et ai rajouté les repères du circuit imprimé sur le croquis. (version 2.1) Bonne réalisation Daniel Maignan
Ajouter un commentaire