Cuprins:

Generator de semnal AD9833: 3 pași
Generator de semnal AD9833: 3 pași

Video: Generator de semnal AD9833: 3 pași

Video: Generator de semnal AD9833: 3 pași
Video: Бегущая строка на светодиодной матрице WS2812 2024, Iulie
Anonim
Generator de semnal AD9833
Generator de semnal AD9833
Generator de semnal AD9833
Generator de semnal AD9833

Un generator de semnal este o piesă foarte utilă de echipament de testare. Acesta folosește un modul AD9833 și un Arduino Nano - atâta tot, nici măcar un PCB. Opțional, puteți adăuga un afișaj OLED. AD9833 poate gerera sinus, triunghi și unde pătrate de la 0,1 Hz la 12,5 MHz - software-ul din acest proiect este limitat la 1Hz la 100kHz.

Au existat alte instrumente instructabile folosind un Arduino și un AD9833, aici și aici. Acest lucru este mai simplu și poate fi folosit ca generator de maturare. Generatoarele de măturat ajută la testarea răspunsului în frecvență al filtrelor, amplificatoarelor și așa mai departe. Spre deosebire de celelalte modele Instructables, aceasta nu include un amplificator sau un control de amplitudine, dar le puteți adăuga dacă doriți.

Pasul 1: Cel mai simplu generator de semnal

Cel mai simplu generator de semnal
Cel mai simplu generator de semnal
Cel mai simplu generator de semnal
Cel mai simplu generator de semnal
Cel mai simplu generator de semnal
Cel mai simplu generator de semnal
Cel mai simplu generator de semnal
Cel mai simplu generator de semnal

Pentru cel mai simplu generator de semnal, tocmai ați lipit modulul AD9833 pe partea din spate a Arduino Nano. Nu este nevoie de PCB.

Modulul AD9833 pe care l-am ales este similar cu acesta. Nu spun că acesta este cel mai bun sau cel mai ieftin furnizor, dar ar trebui să cumpărați unul care să arate ca fotografia respectivă (sau fotografia de mai sus).

Conexiunile dintre module sunt:

  • terenuri conectate între ele
  • D2 = FSync
  • D3 = Clk
  • D4 = Date
  • D6 = Vcc din AD9833

AD9833 este alimentat de la pinul de date D6 al Arduino - Arduino poate furniza suficient curent. Am adăugat un condensator de decuplare de 100n pentru că am crezut că „ar trebui”, dar nu am putut vedea nicio diferență - există deja un condensator de decuplare pe placa modulului AD9833.

Dacă ați fi fantezist, s-ar putea să vă faceți griji cu privire la „teren analogic” față de „teren digital”, dar dacă ați fi fantezist, ați cheltui mai mult de 4 GBP.

Cel mai simplu Generator de semnal este controlat și alimentat printr-un cablu USB de pe un PC. USB-ul emulează un port serial care rulează la 115200bps (8 biți, fără paritate). Comenzile sunt:

  • '0'.. '9': comuta cifra în matricea de frecvență „min”
  • „S”: setați frecvența AD9833 și produceți undă sinusoidală
  • „T”: setează frecvența și produce undă triunghiulară
  • „Q”: setați frecvența și produceți unda pătrată
  • „R”: resetați AD9833
  • „M”: copiați matricea de frecvență „min” în matricea „max”
  • „G”: mutați de la „min” la „max” peste 1 secundă
  • „H”: mutați de la „min” la „max” timp de 5 secunde
  • „I”: mutați de la „min” la „max” peste 20 de secunde

Programul Arduino conține două matrice de 6 caractere „min” și „max. Dacă transmiteți o cifră, atunci este mutată în matricea„ min”. Dacă trimiteți un„ S”, atunci caracterele matricei„ min”sunt convertite într-o frecvență lungă și trimis la AD9833. Deci, trimiterea șirului

002500S

va seta ieșirea AD9833 la o undă sinusoidală de 2500Hz. Trebuie să trimiteți întotdeauna toate cele 6 cifre. Frecvența minimă este 000001, iar frecvența maximă este 999999.

Dacă trimiteți un „M”, atunci matricea „min” este copiată în matricea „max”. Dacă trimiteți un „H”, atunci AD9833 redă în mod repetat o frecvență care crește treptat timp de 5 secunde. Începe la frecvența „min” și 5 secunde mai târziu este la frecvența „max”. Asa de

020000M000100SH

mătură de la 100Hz la 20kHz. Schimbarea frecvenței este logaritmică, deci după o secundă frecvența va fi de 288Hz, după 2 secunde 833Hz apoi 2402, 6931 și 20000. Frecvența se schimbă la fiecare milisecundă.

Bucla se oprește atunci când Arduino primește un alt caracter, așa că aveți grijă să nu trimiteți comanda urmată de returnarea carului sau de feed-line. Acest caracter suplimentar ar termina bucla. Dacă utilizați Serial Monitor, există o casetă în partea dreaptă jos care ar putea spune, de exemplu, „Atât NL, cât și CR”, care (cred) trimite caractere după comanda dvs. Setați-l la „Fără sfârșit de linie”.

Puteți descărca mai jos programul Windows EXE, care va trimite comenzile necesare sau le-ați putea scrie pe ale dvs. Fișierul Arduino INO este, de asemenea, aici.

Pasul 2: Adăugați un OLED

Adăugați un OLED
Adăugați un OLED
Adăugați un OLED
Adăugați un OLED
Adăugați un OLED
Adăugați un OLED

Dacă adăugați un OLED și două butoane, generatorul de semnal poate funcționa singur fără un computer.

Cei dintre voi care mi-ați citit osciloscopul instructabil vor recunoaște asemănarea. Modulul AD9833 poate fi adăugat la osciloscopul meu pentru a produce un "Osciloscop și Generator de semnal într-o cutie de chibrituri".

Afișajul este un OLED de 1,3 care rulează la 3,3V, care este controlat de un cip SH1106 printr-o magistrală I2C.

Căutați pe eBay 1.3 "OLED. Nu vreau să recomand un anumit vânzător, deoarece linkurile depășesc rapid. Alegeți unul care arată ca fotografia respectivă, spune" I2C "sau" IIC "și are patru pini etichetați VDD GND SCL SDA. (Unele afișaje par să aibă știfturile într-o ordine diferită. Verificați-le. Denumirea corectă pentru ceasul I2C este „SCL”, dar pe eBay plăcile pot fi etichetate „SCK” ca a mea din fotografie.)

O descriere mai completă a bibliotecii OLED este în osciloscopul meu Instrucționabil la pasul 8. Ar trebui să descărcați și să instalați biblioteca de drivere SimpleSH1106.zip care este la pasul 8. (Nu vreau să încărc o altă copie aici și trebuie să păstrez două copii).)

Fișierul INO poate fi descărcat mai jos. Numerele de pin utilizate pentru OLED sunt declarate în jurul liniei 70. Dacă ați construit „Osciloscopul și generatorul de semnal într-o cutie de chibrituri” și doriți să testați acest fișier INO cu acesta, numerele de pin alternative sunt activate prin intermediul unui #define.

Am arătat o schemă de bord pentru circuit. Există două panouri - una pentru Nano și AD9833 și una pentru afișaj. Ar trebui să formeze un sandviș. Plăcile sunt prezentate din partea componentă. Firele flexibile fine se alătură celor două plăci. Atașați plăcile împreună cu suporturi lipite. În diagrama mea, cuprul plăcii este prezentat în cyan. Liniile roșii sunt legături de sârmă pe placă sau fire flexibile care unesc plăcile împreună. Nu am arătat cablurile de alimentare și „semnal”.

Modulul AD9833 este lipit pe partea de cupru a plăcii - pe partea opusă față de Nano. Lipiți știfturile pe benzile de cupru, apoi montați AD9833 pe ele și lipiți-le.

Afișajul afișează fie o singură frecvență, fie frecvențele „min” și „max”.

Există două butoane: un buton „Orizontal” pentru a selecta o cifră a frecvențelor și un buton „Vertical” pentru a schimba acea cifră.

Alimentez generatorul de semnal din circuitul pe care îl dezvolt - întotdeauna am 5V disponibili la stația mea de lucru.

Pasul 3: Dezvoltări viitoare

Evoluții viitoare
Evoluții viitoare

Ar putea fi alimentat cu baterie? Da, trebuie doar să adăugați un PP3 de 9V conectat la pinul RAW al Nano. De obicei folosește 20mA.

Ar putea fi alimentat de o singură celulă de litiu? Nu văd de ce nu. Ar trebui să conectați OLED Vdd și rezistența sa de tracțiune la bateria de 3,7 V (mă îndoiesc că ieșirea de 3,3 V a Arduino ar funcționa corect).

Un generator de baleiaj este mai util atunci când testați răspunsul în frecvență al unui filtru dacă puteți grafica amplitudinea față de frecvență. Măsurarea amplitudinii unui semnal este dificilă - trebuie să schimbați decăderea detectorului de plic vs ondulația pentru frecvențe joase și timpul de răspuns pentru frecvențe înalte. După ce ați construit detectorul de amplitudine, ați putea alimenta ieșirea acestuia în ADC-ul Arduino al „Simplest Generator de semnal”, apoi puteți trimite rezultatul, împreună cu frecvența curentă către PC.

Această pagină este un punct de plecare util sau căutați pe Google „detector de plic” sau „detector de vârf”. În circuitul sugerat de mai sus, ați seta frecvența semnalului, așteptați stabilizarea acestuia, setați pinul Arduino A0 la ieșire digitală scăzută, așteptați să descărcați C, setați A0 la intrare, așteptați, apoi măsurați cu ADC. Spune-mi cum te descurci.

Recomandat: