Un géné. BF-HF AD9850/Arduino Uno

 

 

Un générateur BF et HF à DDS AD9850

                  et 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 carte arduino uno

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 broches de l arduino

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

                                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 ad9850

                        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 ad9850 a401 pin affectation

                     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 breadboard gene sur la frequence de e1 go

   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 section analog

                                                     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 schema des alimentations

                                                        figure 8 – Schéma des alimentations



 

LISTE DU MATERIEL ET DES COMPOSANTS NECESSAIRES:

http://maignan-daniel.e-monsite.com/medias/images/composants-gene.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 74x110 cote soudures

              Figure 9 – CI côté soudures

Figure 2 cote composant ok v4

              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 realisation de t1

                Figure 11 – Réalisation de T1

Figure 12 vues de t1

                 Figure 12 – Vues de T1

 

Figure 13 campingaz cv360

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 kΩ 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 pour l am

        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

           Figure 15 - Brochages

 

Pour aller au plus simple, Figure 16 barrettes support ddsla 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 rotary switch encoder 12 mm with push button

          figure 17 – Câblage de l’encodeur

Figure 10 numerique et interconnexions

                                       Figure 18 – Plan de câblage et interconnexions des modules.
                            (Le potentiomètre de 22 kΩ 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 generateur cable

                       Figure  19 – le module générateur câblé.

Figure 20 ensemble cable

                         Figure 20 – Coffret ouvert, vue du câblage général.

Figure 21 ensemble cable boite fermee

                       Figure 21 – Coffret ouvert, boîtier générateur fermé.

Figure 22 appareil sous tension 2

                         Figure  22 – Face avant de l’appareil sous tension.

Figure 23 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 24 – Signal 10 MHz 

Figure 25 signal 10 mhz module a 1 khz 150mveff

figure 25 – Signal 10 MHz modulé à 1 kHz 150mVeff     

Figure 26 signal 10 mhz module a 1 khz 300mveff

figure 26 – Signal 10 MHz modulé à 1 kHz 300mVeff

 

-Mesure de niveau de sortie chargée par 50 Ω 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 MHz

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Ω.

-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

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 tableau login

                                                                       Figure 28

Cet environnement est nommé IDE (Integrated Development Environment). Le tableau de téléchargement (download) figure ci-dessous :Figure 29 contribute et enregistrer

                                           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 download ide                                                       

                                                                            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 i agree                                                          

                                             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 composants installes

                                           Figure 32

-Cliquer ensuite sur le bouton « Next » (suivant), puis sur « Install » pour démarrer l’installation de l’IDE. 

 Figure 33 folder

                                        Figure 33

La progression s’affiche sur l’écran.

 Figure 34 progression

                                          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 port dedie

               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.

Figure 36 menu outils                                                                                     figure 36

 Dans le menu "Outils" on peut voir également le port utilisé.

Figure 37 contenu de l ecran

                                                                                  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 barre d outils

                                    figure 38

Connexion de la carte :

Figure 39 connexion usb

                                                               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 leds

                                Figure 40

-Ouvir le sketch « Blink » dont il est question :

 Figure 41 sketch blink

                                                                    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 blink modif

                                                                      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 verification du port 1

                                                                      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 le
s 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/pgm.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.

4 votes. Moyenne 4.75 sur 5.

Commentaires (10)

Jacques Mahieux
  • 1. Jacques Mahieux | 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
Jacques Mahieux
  • 2. Jacques Mahieux | 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-daniel
  • maignan-daniel | 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
Jean Pierre MAGNON
  • 3. Jean Pierre MAGNON | 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-daniel
  • maignan-daniel | 11/02/2021
Je vous tiens informé sur ce problème. Daniel
Jean Pierre MAGNON
  • 4. Jean Pierre MAGNON | 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-daniel
  • maignan-daniel | 03/12/2020
Bonjour, Merci pour votre intérêt. Vous pouvez obtenir le circuit imprimé chez Radiofil. cordialement Daniel Maignan
Bernard MILLE
  • 5. Bernard MILLE | 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-daniel
  • maignan-daniel | 13/09/2020
Bonjour Bernard, Je vais rajouter les repères du circuit imprimé sur la figure 18. cordialement Daniel Maignan
maignan-daniel
  • maignan-daniel | 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