Spisu treści:

Generator sygnału AD9833: 3 kroki
Generator sygnału AD9833: 3 kroki

Wideo: Generator sygnału AD9833: 3 kroki

Wideo: Generator sygnału AD9833: 3 kroki
Wideo: AD9833 DDS Generator 2024, Lipiec
Anonim
Generator sygnału AD9833
Generator sygnału AD9833
Generator sygnału AD9833
Generator sygnału AD9833

Generator sygnału to bardzo przydatny sprzęt testowy. Ten wykorzystuje moduł AD9833 i Arduino Nano - to wszystko, nawet nie PCB. Możesz opcjonalnie dodać wyświetlacz OLED. AD9833 może generować fale sinusoidalne, trójkątne i prostokątne od 0,1 Hz do 12,5 MHz - oprogramowanie w tym projekcie jest ograniczone do 1 Hz do 100 kHz.

Były inne instrukcje używające Arduino i AD9833, tu i tutaj. Jest to prostsze i może być używane jako generator zamiatania. Generatory przemiatania pomagają testować pasmo przenoszenia filtrów, wzmacniaczy i tak dalej. W przeciwieństwie do innych projektów Instructables, nie obejmuje to wzmacniacza ani kontroli amplitudy, ale możesz je dodać, jeśli chcesz.

Krok 1: Najprostszy generator sygnału

Najprostszy generator sygnału
Najprostszy generator sygnału
Najprostszy generator sygnału
Najprostszy generator sygnału
Najprostszy generator sygnału
Najprostszy generator sygnału
Najprostszy generator sygnału
Najprostszy generator sygnału

Aby uzyskać najprostszy generator sygnału, po prostu przylutuj moduł AD9833 z tyłu Arduino Nano. Nie jest potrzebna płytka drukowana.

Wybrany przeze mnie moduł AD9833 jest podobny do tego. Nie mówię, że jest to najlepszy lub najtańszy dostawca, ale powinieneś kupić taki, który wygląda jak to zdjęcie (lub zdjęcie powyżej).

Połączenia między modułami to:

  • uziemienia połączone ze sobą
  • D2 = FSync
  • D3 = Clk
  • D4 = Dane
  • D6 = Vcc AD9833

AD9833 jest zasilany z pinu danych D6 Arduino - Arduino może dostarczyć wystarczający prąd. Dodałem kondensator odsprzęgający 100n bo myślałem, że "powinien" ale nie widziałem żadnej różnicy - na płytce modułu AD9833 jest już kondensator odsprzęgający.

Jeśli jesteś fantazyjny, możesz martwić się o „ziemię analogową” w porównaniu z „ziemią cyfrową”, ale jeśli jesteś fantazyjny, wydasz więcej niż 4 funty.

Najprostszy generator sygnału jest sterowany i zasilany przez kabel USB z komputera. USB emuluje port szeregowy działający z prędkością 115200bps (8-bitów, bez parzystości). Polecenia to:

  • '0'..'9': przesuń cyfrę do tablicy częstotliwości "min"
  • "S": ustaw częstotliwość AD9833 i wygeneruj falę sinusoidalną;
  • „T”: ustaw częstotliwość i wygeneruj falę trójkątną
  • 'Q': ustaw częstotliwość i wygeneruj falę prostokątną;
  • „R”: zresetuj AD9833
  • 'M': skopiuj tablicę częstotliwości "min" do tablicy "max"
  • 'G': przesuń od „min” do „maks” w ciągu 1 sekundy
  • 'H': przesuń od „min” do „maks” w ciągu 5 sekund
  • 'I': przesuń od „min” do „maks” przez 20 sekund

Program Arduino zawiera dwie 6-znakowe tablice „min” i „max. Jeśli prześlesz cyfrę, zostanie ona przesunięta do tablicy „min”. Jeśli wyślesz „S”, znaki tablicy „min” są konwertowane na częstotliwość longint i wysłana do AD9833. Więc wysyłając ciąg

002500S

ustawi wyjście AD9833 na falę sinusoidalną 2500 Hz. Zawsze musisz wysłać wszystkie 6 cyfr. Minimalna częstotliwość to 000001, a maksymalna to 999999.

Jeśli wyślesz "M", tablica "min" zostanie skopiowana do tablicy "max". Jeśli wyślesz „H”, AD9833 wielokrotnie wyprowadza stopniowo rosnącą częstotliwość w ciągu 5 sekund. Zaczyna się z częstotliwością „min”, a 5 sekund później z częstotliwością „maks”. Więc

020000M000100SH

przemiata od 100Hz do 20kHz. Zmiana częstotliwości jest logarytmiczna, więc po 1 sekundzie częstotliwość wyniesie 288 Hz, po 2 sekundach 833 Hz, a następnie 2402, 6931 i 20000. Częstotliwość zmienia się co milisekundę.

Pętla zatrzymuje się, gdy Arduino otrzyma kolejny znak, więc uważaj, aby nie wysłać polecenia, po którym następuje powrót karetki lub wysunięcie wiersza. Ten dodatkowy znak zakończy pętlę. Jeśli używasz monitora szeregowego, w prawym dolnym rogu znajduje się pole, które może powiedzieć na przykład „Zarówno NL, jak i CR”, które (chyba) wysyła znaki po twoim poleceniu. Ustaw go na „Bez końca linii”.

Możesz pobrać program Windows EXE poniżej, który wyśle wymagane polecenia lub możesz napisać własne. Plik Arduino INO również jest tutaj.

Krok 2: Dodaj OLED

Dodaj OLED
Dodaj OLED
Dodaj OLED
Dodaj OLED
Dodaj OLED
Dodaj OLED

Jeśli dodasz OLED i dwa przyciski, generator sygnału może działać samodzielnie bez komputera.

Ci z was, którzy czytali mój oscyloskop Instructable, rozpoznają podobieństwo. Moduł AD9833 można dodać do mojego oscyloskopu, aby wytworzyć „oscyloskop i generator sygnału w pudełku zapałek”.

Wyświetlacz to 1,3-calowy OLED pracujący pod napięciem 3,3 V, sterowany przez układ SH1106 za pośrednictwem magistrali I2C.

Wyszukaj w serwisie eBay OLED o przekątnej 1,3 cala. Nie chcę polecać konkretnego sprzedawcy, ponieważ łącza szybko stają się nieaktualne. Wybierz taki, który wygląda jak to zdjęcie, ma napis „I2C” lub „IIC” i ma cztery styki oznaczone jako VDD GND SCL SDA (Wydaje się, że niektóre wyświetlacze mają piny w innej kolejności. Sprawdź je. Prawidłowa nazwa zegara I2C to „SCL”, ale na eBayu płyty mogą być oznaczone jako „SCK”, tak jak moja na zdjęciu.)

Pełniejszy opis biblioteki OLED znajduje się w moim oscyloskopie Instruktaż w kroku 8. Powinieneś pobrać i zainstalować bibliotekę sterownika SimpleSH1106.zip, która jest w kroku 8. (nie chcę tutaj przesyłać kolejnej kopii i muszę utrzymywać dwie kopie.)

Plik INO można pobrać poniżej. Numery pinów używane dla OLED są zadeklarowane w pobliżu linii 70. Jeśli zbudowałeś mój "Oscyloskop i generator sygnału w pudełku zapałek" i chcesz przetestować z nim ten plik INO, alternatywne numery pinów są włączane za pomocą #define.

Pokazałem układ stripboard dla obwodu. Istnieją dwa stripboardy - jeden dla Nano i AD9833, a drugi dla wyświetlacza. Powinny uformować kanapkę. Tablice pokazane są od strony komponentów. Drobne elastyczne druty łączą dwie płyty. Przymocuj deski razem z przylutowanymi wspornikami. Na moim schemacie miedź stripboardu jest pokazana w kolorze cyjan. Czerwone linie to połączenia druciane na stripboardzie lub elastyczne przewody łączące ze sobą deski. Nie pokazałem wyprowadzeń zasilania i "sygnału".

Moduł AD9833 jest lutowany po miedzianej stronie stripboardu - po przeciwnej stronie niż Nano. Przylutuj piny do miedzianych pasków, a następnie dopasuj do nich AD9833 i przylutuj.

Wyświetlacz pokazuje albo pojedynczą częstotliwość, albo częstotliwości „min” i „maks”.

Są dwa przyciski: przycisk „Horizontal” do wyboru cyfry częstotliwości i przycisk „Vertical” do zmiany tej cyfry.

Generator sygnału zasilam z obwodu, który rozwijam - zawsze mam do dyspozycji 5V na swoim stanowisku.

Krok 3: Przyszły rozwój

Przyszły rozwój
Przyszły rozwój

Czy może być zasilany bateryjnie? Tak, wystarczy dodać 9V PP3 podłączony do pinu RAW Nano. Zwykle używa 20mA.

Czy może być zasilany pojedynczą baterią litową? Nie rozumiem, dlaczego nie. Powinieneś podłączyć OLED Vdd i jego rezystor podciągający do akumulatora 3,7 V (wątpię, czy wyjście 3,3 V Arduino będzie działać poprawnie).

Generator przemiatania jest bardziej przydatny podczas testowania odpowiedzi częstotliwościowej filtra, jeśli możesz wykreślić amplitudę w funkcji częstotliwości. Mierzenie amplitudy sygnału jest trudne – musisz skompensować zanik detektora obwiedni z tętnieniem dla niskich częstotliwości i czasem odpowiedzi dla wysokich częstotliwości. Po zbudowaniu detektora amplitudy można wprowadzić jego wyjście do przetwornika ADC Arduino „Najprostszego generatora sygnału”, a następnie przesłać wynik wraz z aktualną częstotliwością do komputera.

Ta strona jest przydatnym punktem wyjścia lub wyszukania w Google hasła „wykrywacz kopert” lub „detektor szczytów”. W sugerowanym powyżej obwodzie należy ustawić częstotliwość sygnału, poczekać, aż się ustabilizuje, ustawić pin Arduino A0 na wyjście cyfrowe w stanie niskim, poczekać na rozładowanie C, ustawić A0 na wejście, poczekać, a następnie zmierzyć za pomocą ADC. Daj mi znać, jak sobie radzisz.

Zalecana: