Innehållsförteckning:

Signalgenerator AD9833: 3 steg
Signalgenerator AD9833: 3 steg

Video: Signalgenerator AD9833: 3 steg

Video: Signalgenerator AD9833: 3 steg
Video: Signalgenerator aus China - löte ich zusammen (Long Cut) 2024, Juli
Anonim
Signalgenerator AD9833
Signalgenerator AD9833
Signalgenerator AD9833
Signalgenerator AD9833

En signalgenerator är en mycket användbar testutrustning. Den här använder en AD9833 -modul och en Arduino Nano - det är allt, inte ens ett kretskort. Du kan välja att lägga till en OLED -skärm. AD9833 kan generera sinus-, triangel- och kvadratvågor från 0,1 Hz till 12,5 MHz - programvaran i detta projekt är begränsad till 1 Hz till 100 kHz.

Det har varit andra instruktioner som använder en Arduino och en AD9833, här och här. Detta är enklare och kan användas som svepgenerator. Sopgeneratorer hjälper till att testa frekvenssvaret för filter, förstärkare och så vidare. Till skillnad från de andra Instructables -konstruktionerna inkluderar detta inte en förstärkare eller amplitudkontroll, men du kan lägga till dem om du vill.

Steg 1: Enklaste signalgeneratorn

Enklaste signalgeneratorn
Enklaste signalgeneratorn
Enklaste signalgenerator
Enklaste signalgenerator
Enklaste signalgenerator
Enklaste signalgenerator
Enklaste signalgenerator
Enklaste signalgenerator

För den enklaste signalgeneratorn lödder du bara AD9833 -modulen på baksidan av Arduino Nano. Inget PCB behövs.

AD9833 -modulen jag valde liknar den här. Jag säger inte att det är den bästa eller billigaste leverantören, men du bör köpa en som ser ut som bilden (eller bilden ovan).

Anslutningarna mellan modulerna är:

  • grunder kopplade ihop
  • D2 = FSync
  • D3 = Clk
  • D4 = Data
  • D6 = Vcc av AD9833

AD9833 drivs från datastift D6 på Arduino - Arduino kan leverera tillräckligt med ström. Jag har lagt till en 100n avkopplingskondensator eftersom jag trodde att jag "borde" men jag kunde inte se någon skillnad - det finns redan en avkopplingskondensator på modulen AD9833.

Om du var tjusig kan du oroa dig för "analog mark" mot "digital mark", men om du var tjusig skulle du spendera mer än £ 4.

Den enklaste signalgeneratorn styrs och drivs över en USB -kabel från en dator. USB-enheten emulerar en seriell port som körs på 115200bps (8-bitars, ingen paritet). Kommandona är:

  • '0'.. '9': skifta siffran till "min" frekvensmatris
  • 'S': ställ in AD9833 -frekvens och producera sinusvåg
  • 'T': ställ in frekvens och producera triangelvåg
  • 'Q': ställ in frekvens och producera fyrkantvåg
  • 'R': återställ AD9833
  • 'M': kopiera "min" frekvensmatris till "max" -matris
  • 'G': svep från "min" till "max" över 1 sekund
  • 'H': svep från "min" till "max" under 5 sekunder
  • 'I': svep från "min" till "max" över 20 sekunder

Arduino-programmet innehåller två matriser på 6 tecken "min" och "max. Om du sänder en siffra flyttas den till" min "-matrisen. Om du skickar ett" S "omvandlas" min "-tecken till en longint -frekvens och skickas till AD9833. Så skickar strängen

002500S

kommer att ställa in AD9833 -utgången till en 2500Hz sinusvåg. Du måste alltid skicka alla 6 siffror. Minsta frekvens är 000001 och maxfrekvensen är 999999.

Om du skickar ett 'M' kopieras "min" -matrisen till "max" -matrisen. Om du skickar ett 'H' skickar AD9833 upprepade gånger en gradvis ökande frekvens över 5 sekunder. Det börjar med "min" frekvens och 5 sekunder senare är det "max" frekvens. Så

020000M000100SH

sveper från 100Hz till 20kHz. Frekvensändringen är logaritmisk så efter 1 sekund kommer frekvensen att vara 288Hz, efter 2 sekunder 833Hz sedan 2402, 6931 och 20000. Frekvensen ändras varje millisekund.

Slingan stannar när Arduino får ett annat tecken så var försiktig så att du inte skickar kommandot följt av vagn-retur eller radmatning. Den extra karaktären skulle avsluta slingan. Om du använder Serial Monitor finns det en ruta längst ner till höger som till exempel kan säga "Både NL & CR" som (tror jag) skickar tecken efter ditt kommando. Ställ in det till "Ingen rad slut".

Du kan ladda ner Windows EXE -programmet nedan som skickar de nödvändiga kommandona eller så kan du skriva ditt eget. Arduino INO -filen finns också här.

Steg 2: Lägg till en OLED

Lägg till en OLED
Lägg till en OLED
Lägg till en OLED
Lägg till en OLED
Lägg till en OLED
Lägg till en OLED

Om du lägger till en OLED och två knappar kan signalgeneratorn fungera ensam utan dator.

Ni som har läst mitt oscilloskop Instructable kommer att känna igen likheten. AD9833 -modulen kan läggas till mitt oscilloskop för att producera ett "Oscilloskop och signalgenerator i en tändsticksask".

Displayen är en 1,3 OLED med 3,3V som styrs av ett SH1106 -chip via en I2C -buss.

Sök på eBay efter 1,3 "OLED. Jag vill inte rekommendera en viss säljare eftersom länkar snabbt går in i tiden. Välj en som ser ut som det där fotot, säger" I2C "eller" IIC "och har fyra stift märkta VDD GND SCL SDA. (Vissa skärmar verkar ha stiften i en annan ordning. Kontrollera dem. Det korrekta namnet för klockan på I2C är "SCL" men på eBay kan tavlorna märkas "SCK" som min på bilden.)

En fullständigare beskrivning av OLED -biblioteket finns i mitt oscilloskop Instruerbart i steg 8. Du bör ladda ner och installera drivrutinsbiblioteket SimpleSH1106.zip som finns i steg 8. (Jag vill inte ladda upp en annan kopia här och måste behålla två kopior.)

INO -filen kan laddas ner nedan. Stiftnumren som används för OLED deklareras runt rad 70. Om du har byggt min "Oscilloskop och signalgenerator i en matchbox" och vill testa denna INO -fil med den, aktiveras alternativa pin -nummer via en #define.

Jag har visat en layout på kretskortet för kretsen. Det finns två remsor - en för Nano och AD9833 och en för displayen. De ska bilda en smörgås. Brädorna visas från komponentsidan. Fina flexibla trådar går ihop med de två brädorna. Fäst brädorna tillsammans med lödda avstånd. I mitt diagram visas kassettens koppar i cyan. Röda linjer är trådlänkar på bandplattan eller flexibla trådar som sammanfogar brädorna. Jag har inte visat ström- och "signal" -ledningarna.

Modulen AD9833 är lödd på kopparsidan av bandplattan - på motsatt sida från Nano. Lödstift på kopparremsorna monteras sedan på AD9833 på dem och löds på.

Displayen visar antingen en enda frekvens eller "min" och "max" frekvenser.

Det finns två tryckknappar: en "Horisontell" -knapp för att välja en siffra för frekvenserna och en "Vertikal" -knapp för att ändra den siffran.

Jag driver signalgeneratorn från kretsen jag utvecklar - jag har alltid 5V tillgänglig på min arbetsstation.

Steg 3: Framtida utveckling

Framtida utveckling
Framtida utveckling

Kan det vara batteridriven? Ja, lägg bara till en 9V PP3 ansluten till RAW -stiftet på Nano. Den använder vanligtvis 20mA.

Kan den drivas av en enda litiumcell? Jag förstår inte varför inte. Du bör ansluta OLED Vdd och dess pull-up-motstånd till 3,7V-batteriet (jag tvivlar på om 3,3V-utgången från Arduino skulle fungera korrekt).

En svepgenerator är mer användbar när du testar frekvenssvaret för ett filter om du kan diagramma amplitud mot frekvens. Att mäta amplituden för en signal är knepigt - du måste byta ut förfallet hos din kuvertdetektor mot krusning för låga frekvenser och svarstid för höga frekvenser. Efter att ha byggt din amplituddetektor kan du mata in dess utmatning i ADC: n för Arduino på "Simplest Signal Generator" och sedan skicka resultatet tillsammans med den aktuella frekvensen till datorn.

Denna sida är en användbar utgångspunkt eller sök på "kuvertdetektor" eller "toppdetektor" på Google. I den föreslagna kretsen ovan skulle du ställa in signalfrekvensen, vänta på att den stabiliserades, ställa in Arduino A0 -stiftet för att mata ut digitalt lågt, vänta med att ladda ur C, sätt A0 till ingång, vänta och mät sedan med ADC. Låt mig veta hur du har det.

Rekommenderad: