0-40 Mhz, sinus våg generator för $25. (1 / 2 steg)
Steg 1: En diskussion om koden...
#define data_pin 12
#define load_pin A5
#define clock_pin A4
#define clock_hz 120000000LL
DDS ddschip (DDS9850, data_pin, load_pin, clock_pin, clock_hz);
Detta sätter min dds upp med sina 120mhz ombord crystal. Jag ersätta pin-koder med ord för att göra det lättare att förstå. Till exempel skulle ordet data_pin ersättas överallt det finns vid kompileringen med nummer 12. Detta är vad kommandot #define gör
Nu chip stiften har definierats, kan vi bara använda ddschip.setfrequency(Frequency); kommando för att ställa in frekvens till någon frekvens som vi önskar, inom funktionerna i enheten. AD9850 styrelser jag har använt är ganska bra för om 0-40 mhz, utöver att de är lite kortfattat.
Jag tänkte att jag skulle använda upp och ner-knapparna för att höja eller sänka frekvensen.
Jag väljer att använda vänster och höger knapparna för att cykla beloppet frekvensen skulle öka på att höja eller sänka. Jag valde, 1Hz, 10Hz, 100Hz, 1KHz, 10KHz, 100KHz och 1MHz.
Jag sydde ihop några kod, varav jag hacka ur ett tidigare LCD knappsatsen projekt (Morse coder). Jag har hållit gränssnittet ganska enkel, vi har ju bara 16 tecken på två rader.
Efter att jag hade det byggts upp på bänken och hade testat det omfattande väljer jag att sätta det i en låda. Inledningsvis jag ville sätta ett batteri inne i lådan, men beslutade att lämna tillträde till power-uttaget så jag kunde koppla in ett batteripaket externt om jag ville. Resultatet är de bilderna du ser här. LCD knappsatsen skölden är utformad för att användas i den öppna och inte riktigt utformad att gå i ett fall, men jag inklämd det in med massor av styckning. Jag använde en Kopplingsplint på sidan för sinusvåg utdata och jag bestämde mig också att bryta ut kvadratiska vågen produktionen och dess associerade justering potten, LCD kontrast justering potten och DDS ombord strömindikatorn.