INHOUDSOPGAWE:

Seinopwekker AD9833: 3 stappe
Seinopwekker AD9833: 3 stappe

Video: Seinopwekker AD9833: 3 stappe

Video: Seinopwekker AD9833: 3 stappe
Video: Батарон#3 AD9833 с SPI на AVR на ASM 2024, Julie
Anonim
Seinopwekker AD9833
Seinopwekker AD9833
Seinopwekker AD9833
Seinopwekker AD9833

'N Seinopwekker is 'n baie nuttige toetstoestel. Hierdie een gebruik 'n AD9833 -module en 'n Arduino Nano - dit is alles, selfs nie 'n PCB nie. U kan opsioneel 'n OLED -skerm byvoeg. Die AD9833 kan sinus-, driehoek- en vierkantgolwe van 0,1 Hz tot 12,5 MHz opwek - die sagteware in hierdie projek is beperk tot 1Hz tot 100kHz.

Daar was hier en hier ander instruksies wat 'n Arduino en 'n AD9833 gebruik. Dit is eenvoudiger en kan as veeggenerator gebruik word. Sweepopwekkers help om die frekwensierespons van filters, versterkers ensovoorts te toets. Anders as die ander Instructables -ontwerpe, bevat dit nie 'n versterker of amplitude -beheer nie, maar u kan dit byvoeg as u wil.

Stap 1: Eenvoudigste seinopwekker

Eenvoudigste seinopwekker
Eenvoudigste seinopwekker
Eenvoudigste seinopwekker
Eenvoudigste seinopwekker
Eenvoudigste seinopwekker
Eenvoudigste seinopwekker
Eenvoudigste seinopwekker
Eenvoudigste seinopwekker

Vir die eenvoudigste seinopwekker soldeer u net die AD9833 -module aan die agterkant van die Arduino Nano. Geen PCB is nodig nie.

Die AD9833 -module wat ek gekies het, is soortgelyk aan hierdie een. Ek sê nie dat dit die beste of goedkoopste verskaffer is nie, maar u moet een koop wat op die foto lyk (of die foto hierbo).

Die verbindings tussen die modules is:

  • gronde met mekaar verbind
  • D2 = FSync
  • D3 = klk
  • D4 = Data
  • D6 = Vcc van AD9833

Die AD9833 word aangedryf deur die data -pen D6 van die Arduino - die Arduino kan voldoende stroom verskaf. Ek het 'n 100n ontkoppelingskondensator bygevoeg omdat ek gedink het ek moet, maar ek kon geen verskil sien nie - daar is reeds 'n ontkoppelingskondensator op die AD9833 -modulebord.

As u gretig was, kan u u bekommer oor 'analoog grond' teenoor 'digitale grond', maar as u lus het, spandeer u meer as £ 4.

Die eenvoudigste seinopwekker word beheer en aangedryf deur 'n USB -kabel vanaf 'n rekenaar. Die USB emuleer 'n seriële poort wat op 115200bps werk (8-bis, geen pariteit). Die opdragte is:

  • '0'.. '9': skuif syfer in 'min' frekwensie skikking
  • 'S': stel die AD9833 -frekwensie in en produseer sinusgolf
  • 'T': stel frekwensie in en produseer driehoekgolf
  • 'Q': stel frekwensie in en produseer vierkantgolf
  • 'R': stel die AD9833 terug
  • 'M': kopieer die "min" frekwensie skikking na die "maksimum" skikking
  • 'G': sweep van "min" na "maksimum" oor 1 sekonde
  • 'H': vee van "min" na "maksimum" oor 5 sekondes
  • 'Ek': sweep van "min" na "maksimum" oor 20 sekondes

Die Arduino-program bevat twee skikkings van 6 karakters "min" en "max. As u 'n syfer stuur, word dit in die" min "skikking verskuif. As u 'n 'S' stuur, word die 'min' skikkingtekens omgeskakel in 'n longint -frekwensie en na die AD9833 gestuur. Stuur dus die string

002500S

stel die AD9833 -uitset op 'n 2500Hz sinusgolf. U moet altyd al 6 syfers stuur. Die minimum frekwensie is 000001 en die maksimum frekwensie is 999999.

As u 'n 'M' stuur, word die "min" skikking na die "maksimum" skikking gekopieer. As u 'n 'H' stuur, gee die AD9833 herhaaldelik 'n geleidelik toenemende frekwensie oor 5 sekondes af. Dit begin met 'min' frekwensie en 5 sekondes later op 'maksimum' frekwensie. So

020000M000100SH

sweep van 100Hz tot 20kHz. Die frekwensieverandering is logaritmies, so na 1 sekonde sal die frekwensie 288Hz wees, na 2 sekondes 833Hz dan 2402, 6931 en 20000. Die frekwensie word elke millisekonde verander.

Die lus stop as die Arduino 'n ander karakter ontvang, dus wees versigtig om nie die opdrag te stuur nie, gevolg deur koets-terugkeer of reëlvoer. Die ekstra karakter sou die lus beëindig. As u die Serial Monitor gebruik, is daar regs onder 'n boks wat byvoorbeeld 'Beide NL en CR' kan bevat wat (volgens my) karakters na u opdrag stuur. Stel dit in op "Geen reël einde".

U kan die Windows EXE -program hieronder aflaai wat die vereiste opdragte stuur, of u kan dit self skryf. Die Arduino INO -lêer is ook hier.

Stap 2: Voeg 'n OLED by

Voeg 'n OLED by
Voeg 'n OLED by
Voeg 'n OLED by
Voeg 'n OLED by
Voeg 'n OLED by
Voeg 'n OLED by

As u 'n OLED en twee knoppies byvoeg, kan die seingenerator alleen werk sonder 'n rekenaar.

Diegene van julle wat my oscilloskoop Instructable gelees het, sal die ooreenkoms herken. Die AD9833 -module kan by my ossilloskoop gevoeg word om 'n "Ossilloskoop en seinopwekker in 'n vuurhoutjiedosie" te produseer.

Die skerm is 'n 1.3 OLED met 3.3V wat bestuur word deur 'n SH1106 -chip via 'n I2C -bus.

Soek eBay op 1,3 "OLED. Ek wil nie 'n spesifieke verkoper aanbeveel nie, aangesien skakels vinnig verouderd is. Kies een wat op die foto lyk," I2C "of" IIC "en het vier penne met die naam VDD GND SCL SDA. (Sommige skerms het blykbaar die penne in 'n ander volgorde. Kontroleer dit. Die regte naam vir die horlosie van I2C is "SCL", maar op eBay kan die borde "SCK" gemerk word soos my op die foto.)

'N Vollediger beskrywing van die OLED -biblioteek is in my ossilloskoop Instrueerbaar in stap 8. U moet die bestuurderbiblioteek SimpleSH1106.zip wat in stap 8. is, aflaai en installeer (ek wil nie 'n ander kopie hier oplaai nie en moet twee kopieë onderhou.)

Die INO -lêer kan hieronder afgelaai word. Die speldnommers wat vir die OLED gebruik word, word rondom lyn 70 verklaar. As u my "Oscilloscope and Signal Generator in a Matchbox" gebou het en hierdie INO -lêer daarmee wil toets, word alternatiewe speldnommers via 'n #define geaktiveer.

Ek het 'n bordborduitleg vir die kring getoon. Daar is twee strookborde - een vir die Nano en die AD9833 en een vir die skerm. Hulle moet 'n toebroodjie vorm. Die borde word van die komponent se kant getoon. Fyn buigsame drade sluit aan by die twee borde. Heg die planke saam met gesoldeerde afstande. In my diagram word die koper van die strookbord in siaan getoon. Rooi lyne is draadskakels op die strook of buigsame drade wat die planke aanmekaar verbind. Ek het nie die krag- en 'sein' -leidrade gewys nie.

Die AD9833 -module is aan die koperkant van die strook gesoldeer - aan die teenoorgestelde kant van die Nano. Soldeerspelde op die koperstroke pas dan die AD9833 daarop en soldeer dit vas.

Die skerm toon óf 'n enkele frekwensie óf die "min" en "maksimum" frekwensies.

Daar is twee drukknoppies: 'n "Horisontale" knoppie om 'n syfer van die frekwensies te kies en 'n "Vertikale" knoppie om die syfer te verander.

Ek dryf die seingenerator van die stroombaan af wat ek ontwikkel - ek het altyd 5V beskikbaar by my werkstasie.

Stap 3: Toekomstige ontwikkelings

Toekomstige ontwikkelings
Toekomstige ontwikkelings

Kan dit op battery aangedryf word? Ja, voeg net 'n 9V PP3 by die RAW -pen van die Nano. Dit gebruik gewoonlik 20mA.

Kan dit deur 'n enkele litiumsel aangedryf word? Ek sien nie hoekom nie. U moet die OLED Vdd en sy optelweerstand aan die 3.7V-battery koppel (ek twyfel of die 3.3V-uitset van die Arduino behoorlik sou werk).

'N Veeggenerator is nuttiger as u die frekwensierespons van 'n filter toets as u amplitude versus frekwensie kan grafiseer. Dit is moeilik om die amplitude van 'n sein te meet - u moet die verval van u koevertdetektor teenoor rimpeling inruil vir lae frekwensies en responstyd vir hoë frekwensies. Nadat u u amplitude -detektor gebou het, kan u die uitset daarvan in die ADC van die Arduino van die "Simplest Signal Generator" invoer, en dan die resultaat saam met die huidige frekwensie na die rekenaar stuur.

Hierdie bladsy is 'n nuttige beginpunt of soek op Google na "koevertdetektor" of "piekdetektor". In die voorgestelde kring hierbo, stel u die seinfrekwensie in, wag totdat dit stabiliseer, stel die Arduino A0 -pen in om digitale laag te lewer, wag om C te ontlaai, stel A0 in vir invoer, wag en meet dan met die ADC. Laat weet my hoe dit met jou gaan.

Aanbeveel: