Съдържание:

Генератор на сигнали AD9833: 3 стъпки
Генератор на сигнали AD9833: 3 стъпки

Видео: Генератор на сигнали AD9833: 3 стъпки

Видео: Генератор на сигнали AD9833: 3 стъпки
Видео: Самый простой генератор сигналов для лаборатории радиолюбителя от 1Гц до 2МГц 2024, Ноември
Anonim
Генератор на сигнали AD9833
Генератор на сигнали AD9833
Генератор на сигнали AD9833
Генератор на сигнали AD9833

Генераторът на сигнали е много полезно изпитвателно оборудване. Този използва модул AD9833 и Arduino Nano - това е всичко, дори не печатна платка. По желание можете да добавите OLED дисплей. AD9833 може да генерира синусоидални, триъгълни и квадратни вълни от 0,1 Hz до 12,5 MHz - софтуерът в този проект е ограничен до 1Hz до 100kHz.

Имаше и други инструктажи, използващи Arduino и AD9833, тук и тук. Това е по -просто и може да се използва като генератор за почистване. Генераторите за почистване помагат за тестване на честотната характеристика на филтри, усилватели и така нататък. За разлика от другите дизайни на Instructables, това не включва усилвател или контрол на амплитудата, но можете да ги добавите, ако искате.

Стъпка 1: Най -простият генератор на сигнали

Най -простият генератор на сигнали
Най -простият генератор на сигнали
Най -простият генератор на сигнали
Най -простият генератор на сигнали
Най -простият генератор на сигнали
Най -простият генератор на сигнали
Най -простият генератор на сигнали
Най -простият генератор на сигнали

За най -простия генератор на сигнали просто запоявате модула AD9833 върху гърба на Arduino Nano. Не е необходима печатна платка.

Модулът AD9833, който избрах, е подобен на този. Не казвам, че това е най -добрият или най -евтиният доставчик, но трябва да закупите такъв, който прилича на тази снимка (или снимката по -горе).

Връзките между модулите са:

  • основания, свързани заедно
  • D2 = FSync
  • D3 = Clk
  • D4 = Данни
  • D6 = Vcc на AD9833

AD9833 се захранва от извод за данни D6 на Arduino - Arduino може да доставя достатъчен ток. Добавих 100n кондензатор за отделяне, защото мислех, че "трябва", но не виждах никаква разлика - вече има отделящ кондензатор на модулната платка AD9833.

Ако бяхте фантастични, може да се притеснявате за „аналогов терен“срещу „цифров терен“, но ако бяхте фантастичен, щяхте да харчите повече от 4 паунда.

Най -простият генератор на сигнали се управлява и захранва чрез USB кабел от компютър. USB емулира сериен порт, работещ при 115200bps (8-бита, без паритет). Командите са:

  • '0'.. '9': изместване на цифрата в честотния масив "min"
  • 'S': задайте честота AD9833 и създайте синусоида
  • 'T': задайте честота и създайте триъгълна вълна
  • 'Q': задайте честота и създайте квадратна вълна
  • 'R': нулиране на AD9833
  • 'M': копирайте честотния масив "min" в масива "max"
  • 'G': размахване от "мин" до "макс" за 1 секунда
  • 'H': размахване от "min" до "max" за 5 секунди
  • 'I': размахване от "min" до "max" над 20 секунди

Програмата Arduino съдържа два 6-символни масива "min" и "max. Ако предавате цифра, тя се премества в масива" min ". Ако изпратите 'S', тогава символите от масив" min "се преобразуват в longint честота и изпратен до AD9833. Така че изпращането на низ

002500S

ще настрои изхода AD9833 на синусова вълна от 2500Hz. Винаги трябва да изпращате всички 6 цифри. Минималната честота е 000001, а максималната 999999.

Ако изпратите 'M', тогава масивът "min" се копира в масива "max". Ако изпратите „H“, тогава AD9833 многократно извежда постепенно нарастваща честота за 5 секунди. Той започва на "мин" честота и 5 секунди по -късно е на "макс" честота. Така

020000M000100SH

размахва от 100Hz до 20kHz. Промяната на честотата е логаритмична, така че след 1 секунда честотата ще бъде 288Hz, след 2 секунди 833Hz след това 2402, 6931 и 20000. Честотата се променя на всеки милисекунда.

Цикълът спира, когато Arduino получи друг знак, така че внимавайте да не изпратите командата, последвана от връщане на каретка или подаване на ред. Този допълнителен знак би прекратил цикъла. Ако използвате серийния монитор, в долния десен ъгъл има поле, което може да казва например „И двете NL и CR“, което (мисля) изпраща знаци след вашата команда. Задайте го на „Без завършване на ред“.

Можете да изтеглите програмата Windows EXE по -долу, която ще изпрати необходимите команди или можете да напишете свои собствени. IND файлът на Arduino също е тук.

Стъпка 2: Добавете OLED

Добавете OLED
Добавете OLED
Добавете OLED
Добавете OLED
Добавете OLED
Добавете OLED

Ако добавите OLED и два бутона, генераторът на сигнал може да работи сам без компютър.

Тези от вас, които са чели моя осцилоскоп Instructable, ще разпознаят приликата. Модулът AD9833 може да бъде добавен към моя осцилоскоп, за да се получи „Осцилоскоп и генератор на сигнали в кутия за кибрит“.

Дисплеят е 1.3 OLED, работещ при 3.3V, който се управлява от чип SH1106 чрез I2C шина.

Потърсете в eBay 1,3 "OLED. Не искам да препоръчам конкретен продавач, тъй като връзките бързо остаряват. Изберете такъв, който прилича на тази снимка, казва" I2C "или" IIC "и има четири пина с етикет VDD GND SCL SDA. (Някои дисплеи изглежда имат щифтове в различен ред. Проверете ги. Правилното име на часовника на I2C е "SCL", но на eBay дъските могат да бъдат обозначени като "SCK" като моя на снимката.)

По -пълно описание на OLED библиотеката е в моя осцилоскоп с инструкции в Стъпка 8. Трябва да изтеглите и инсталирате библиотеката с драйвери SimpleSH1106.zip, която е в Стъпка 8. (Не искам да качвам друго копие тук и трябва да поддържам две копия.)

INO файлът може да бъде изтеглен по -долу. Номерата на пиновете, използвани за OLED, са декларирани около ред 70. Ако сте построили моя „Осцилоскоп и генератор на сигнали в кутия за съвпадение“и искате да тествате този INO файл с него, алтернативните номера на пинове се активират чрез #define.

Показах оформление на лента за веригата. Има две ленти - една за Nano и AD9833 и една за дисплея. Те трябва да образуват сандвич. Дъските са показани от страната на компонентите. Фините гъвкави проводници свързват двете платки. Прикрепете дъските заедно със споени стойки. В моята диаграма медът на лентата е показан в циан. Червените линии са телени връзки на лентата или гъвкави проводници, свързващи дъските заедно. Не съм показал кабелите за захранване и "сигнал".

Модулът AD9833 е запоен от медната страна на лентата - от противоположната страна на Nano. Запоявайте щифтове върху медните ленти, след това поставете AD9833 върху тях и го запоявайте.

Дисплеят показва или единична честота, или честотите "min" и "max".

Има два бутона: бутон "Хоризонтално" за избор на цифра от честотите и бутон "Вертикален" за промяна на тази цифра.

Захранвам генератора на сигнали от схемата, която разработвам - винаги имам 5V на разположение на работното си място.

Стъпка 3: Бъдещи развития

Бъдещи развития
Бъдещи развития

Може ли да се захранва от батерии? Да, просто добавете 9V PP3, свързан към RAW щифта на Nano. Обикновено използва 20mA.

Може ли да се захранва от една литиева клетка? Не виждам защо не. Трябва да свържете OLED Vdd и издърпващия му резистор към батерията 3.7V (съмнявам се, че 3.3V изходът на Arduino ще работи правилно).

Генераторът за почистване е по -полезен при тестване на честотната характеристика на филтър, ако можете да начертаете амплитуда спрямо честота. Измерването на амплитудата на сигнала е сложно - трябва да компенсирате разпадането на вашия детектор за обвивка срещу пулсации за ниски честоти и време за реакция за високи честоти. След като сте изградили своя амплитуден детектор, можете да подадете неговия изход в ADC на Arduino на "Най -простия генератор на сигнали", след което да изпратите резултата, заедно с текущата честота на компютъра.

Тази страница е полезна отправна точка или потърсете в Google „детектор на пликове“или „пиков детектор“. В предложената схема по -горе ще настроите честотата на сигнала, ще изчакате да се стабилизира, ще настроите щифта на Arduino A0 да извежда цифрово ниско ниво, изчакайте да разредите C, настройте A0 на вход, изчакайте и след това ще измерите с ADC. Кажете ми как се справяте.

Препоръчано: