Table des matières:

Générateur de signaux AD9833 : 3 étapes
Générateur de signaux AD9833 : 3 étapes

Vidéo: Générateur de signaux AD9833 : 3 étapes

Vidéo: Générateur de signaux AD9833 : 3 étapes
Vidéo: AD9833 Programmable Waveform Generator 2024, Juillet
Anonim
Générateur de signaux AD9833
Générateur de signaux AD9833
Générateur de signaux AD9833
Générateur de signaux AD9833

Un générateur de signaux est un équipement de test très utile. Celui-ci utilise un module AD9833 et un Arduino Nano - c'est tout, même pas un PCB. Vous pouvez éventuellement ajouter un écran OLED. L'AD9833 peut générer des ondes sinusoïdales, triangulaires et carrées de 0,1 Hz à 12,5 MHz - le logiciel de ce projet est limité à 1 Hz à 100 kHz.

Il y a eu d'autres Instructables utilisant un Arduino et un AD9833, ici et ici. C'est plus simple et peut être utilisé comme un générateur de balayage. Les générateurs de balayage aident à tester la réponse en fréquence des filtres, des amplificateurs, etc. Contrairement aux autres conceptions Instructables, cela n'inclut pas d'amplificateur ou de contrôle d'amplitude, mais vous pouvez les ajouter si vous le souhaitez.

Étape 1: Générateur de signaux le plus simple

Générateur de signaux le plus simple
Générateur de signaux le plus simple
Générateur de signaux le plus simple
Générateur de signaux le plus simple
Générateur de signaux le plus simple
Générateur de signaux le plus simple
Générateur de signaux le plus simple
Générateur de signaux le plus simple

Pour le générateur de signaux le plus simple, il vous suffit de souder le module AD9833 à l'arrière de l'Arduino Nano. Aucun PCB n'est nécessaire.

Le module AD9833 que j'ai choisi est similaire à celui-ci. Je ne dis pas que c'est le meilleur fournisseur ou le moins cher, mais vous devriez en acheter un qui ressemble à cette photo (ou à la photo ci-dessus).

Les connexions entre les modules sont:

  • motifs reliés entre eux
  • D2 = FSync
  • D3 = Clique
  • D4 = Données
  • D6 = Vcc de AD9833

L'AD9833 est alimenté par la broche de données D6 de l'Arduino - l'Arduino peut fournir un courant suffisant. J'ai ajouté un condensateur de découplage 100n parce que je pensais que je "devrais" mais je ne voyais aucune différence - il y a déjà un condensateur de découplage sur la carte du module AD9833.

Si vous étiez chic, vous pourriez vous inquiéter du "sol analogique" par rapport au "sol numérique", mais si vous étiez chic, vous dépenseriez plus de 4 £.

Le générateur de signaux le plus simple est contrôlé et alimenté via un câble USB à partir d'un PC. L'USB émule un port série fonctionnant à 115200bps (8 bits, pas de parité). Les commandes sont:

  • '0'..'9': décaler le chiffre dans le tableau de fréquences « min »
  • 'S': régler la fréquence AD9833 et produire une onde sinusoïdale
  • 'T': régler la fréquence et produire une onde triangulaire
  • « Q »: régler la fréquence et produire une onde carrée
  • 'R': réinitialiser l'AD9833
  • 'M': copier le tableau de fréquences « min » dans le tableau « max »
  • 'G': balayage de "min" à "max" en 1 seconde
  • 'H': balayage de "min" à "max" en 5 secondes
  • 'I': balayage de « min » à « max » en 20 secondes

Le programme Arduino contient deux tableaux de 6 caractères "min" et "max. Si vous transmettez un chiffre, il est déplacé dans le tableau "min". Si vous envoyez un "S", les caractères du tableau "min" sont convertis en un longint fréquence et envoyé à l'AD9833. Donc envoyer la chaîne

002500S

réglera la sortie AD9833 sur une onde sinusoïdale de 2500 Hz. Vous devez toujours envoyer les 6 chiffres. La fréquence minimale est 000001 et la fréquence maximale est 999999.

Si vous envoyez un "M", le tableau "min" est copié dans le tableau "max". Si vous envoyez un « H », l'AD9833 émet à plusieurs reprises une fréquence progressivement croissante sur 5 secondes. Il démarre à la fréquence "min" et 5 secondes plus tard à la fréquence "max". Donc

020000M000100SH

balaie de 100 Hz à 20 kHz. Le changement de fréquence est logarithmique donc après 1 seconde la fréquence sera de 288Hz, après 2 secondes 833Hz puis 2402, 6931 et 20000. La fréquence est changée toutes les millisecondes.

La boucle s'arrête lorsque l'Arduino reçoit un autre caractère, alors veillez à ne pas envoyer la commande suivie d'un retour chariot ou d'un saut de ligne. Ce caractère supplémentaire mettrait fin à la boucle. Si vous utilisez le moniteur série, il y a une case en bas à droite qui pourrait dire par exemple "Both NL & CR" qui (je pense) envoie des caractères après votre commande. Réglez-le sur "Pas de fin de ligne".

Vous pouvez télécharger le programme Windows EXE ci-dessous qui enverra les commandes requises ou vous pouvez écrire les vôtres. Le fichier Arduino INO est également ici.

Étape 2: ajouter un OLED

Ajouter un OLED
Ajouter un OLED
Ajouter un OLED
Ajouter un OLED
Ajouter un OLED
Ajouter un OLED

Si vous ajoutez un OLED et deux boutons, le générateur de signal peut fonctionner seul sans PC.

Ceux d'entre vous qui ont lu mon oscilloscope Instructable reconnaîtront la similitude. Le module AD9833 peut être ajouté à mon oscilloscope pour produire un "Oscilloscope et générateur de signaux dans une boîte d'allumettes".

L'affichage est un OLED de 1,3 fonctionnant à 3,3V qui est contrôlé par une puce SH1106 via un bus I2C.

Recherchez sur eBay un OLED 1,3". Je ne veux pas recommander un vendeur en particulier car les liens deviennent rapidement obsolètes. Choisissez-en un qui ressemble à cette photo, dit "I2C" ou "IIC" et a quatre broches étiquetées VDD GND SCL SDA (Certains écrans semblent avoir les broches dans un ordre différent. Vérifiez-les. Le nom propre de l'horloge d'I2C est "SCL", mais sur eBay, les cartes peuvent être étiquetées "SCK" comme la mienne sur la photo.)

Une description plus complète de la bibliothèque OLED se trouve dans mon oscilloscope Instructable à l'étape 8. Vous devez télécharger et installer la bibliothèque de pilotes SimpleSH1106.zip qui se trouve à l'étape 8. (Je ne veux pas télécharger une autre copie ici et dois conserver deux copies.)

Le fichier INO est téléchargeable ci-dessous. Les numéros de broche utilisés pour l'OLED sont déclarés autour de la ligne 70. Si vous avez construit mon "Oscilloscope et générateur de signaux dans une boîte d'allumettes" et que vous souhaitez tester ce fichier INO avec, des numéros de broche alternatifs sont activés via un #define.

J'ai montré une disposition de stripboard pour le circuit. Il y a deux stripboards - un pour le Nano et l'AD9833 et un pour l'affichage. Ils doivent former un sandwich. Les cartes sont représentées du côté des composants. De fins fils souples relient les deux planches. Fixez les planches avec des entretoises soudées. Dans mon schéma, le cuivre du stripboard est représenté en cyan. Les lignes rouges sont des liaisons filaires sur le stripboard ou des fils flexibles reliant les cartes ensemble. Je n'ai pas montré les fils d'alimentation et de "signal".

Le module AD9833 est soudé du côté cuivre du stripboard - du côté opposé au Nano. Soudez les broches sur les bandes de cuivre puis installez l'AD9833 dessus et soudez-le.

L'écran affiche soit une seule fréquence, soit les fréquences "min" et "max".

Il y a deux boutons poussoirs: un bouton "Horizontal" pour sélectionner un chiffre des fréquences et un bouton "Vertical" pour changer ce chiffre.

J'alimente le générateur de signaux à partir du circuit que je développe - j'ai toujours du 5V disponible sur mon poste de travail.

Étape 3: Développements futurs

Développements futurs
Développements futurs

Serait-il alimenté par batterie ? Oui, il suffit d'ajouter un 9V PP3 connecté à la broche RAW du Nano. Il utilise généralement 20mA.

Pourrait-il être alimenté par une seule pile au lithium ? Je ne vois pas pourquoi pas. Vous devez connecter l'OLED Vdd et sa résistance de rappel à la batterie 3,7 V (je doute que la sortie 3,3 V de l'Arduino fonctionne correctement).

Un générateur de balayage est plus utile lors du test de la réponse en fréquence d'un filtre si vous pouvez représenter graphiquement l'amplitude en fonction de la fréquence. La mesure de l'amplitude d'un signal est délicate - vous devez faire un compromis entre la décroissance de votre détecteur d'enveloppe et l'ondulation pour les basses fréquences et le temps de réponse pour les hautes fréquences. Après avoir construit votre détecteur d'amplitude, vous pouvez alimenter sa sortie dans l'ADC de l'Arduino du "Générateur de signaux le plus simple", puis envoyer le résultat, ainsi que la fréquence actuelle au PC.

Cette page est un point de départ utile ou recherchez sur Google "détecteur d'enveloppe" ou "détecteur de pic". Dans le circuit suggéré ci-dessus, vous devez régler la fréquence du signal, attendre qu'elle se stabilise, régler la broche Arduino A0 pour sortir numériquement bas, attendre pour décharger C, régler A0 pour entrer, attendre, puis mesurer avec l'ADC. Faites-moi savoir comment vous vous en sortez.

Conseillé: