Оглавление:

Генератор сигналов AD9833: 3 шага
Генератор сигналов AD9833: 3 шага

Видео: Генератор сигналов AD9833: 3 шага

Видео: Генератор сигналов AD9833: 3 шага
Видео: Крутейший генератор сигналов на Arduino! 2024, Июль
Anonim
Генератор сигналов AD9833
Генератор сигналов AD9833
Генератор сигналов AD9833
Генератор сигналов AD9833

Генератор сигналов - очень полезный инструмент для тестирования. Здесь используется модуль AD9833 и Arduino Nano - это все, даже не печатная плата. При желании вы можете добавить OLED-дисплей. AD9833 может генерировать синусоидальные, треугольные и прямоугольные волны от 0,1 Гц до 12,5 МГц - программное обеспечение в этом проекте ограничено частотой от 1 Гц до 100 кГц.

Были и другие Instructables, использующие Arduino и AD9833, здесь и здесь. Это проще и может использоваться как генератор развертки. Генераторы развертки помогают проверить частотную характеристику фильтров, усилителей и т. Д. В отличие от других конструкций Instructables, здесь нет усилителя или регулятора амплитуды, но вы можете добавить их, если хотите.

Шаг 1: простейший генератор сигналов

Простейший генератор сигналов
Простейший генератор сигналов
Простейший генератор сигналов
Простейший генератор сигналов
Простейший генератор сигналов
Простейший генератор сигналов
Простейший генератор сигналов
Простейший генератор сигналов

Для простейшего генератора сигналов достаточно припаять модуль AD9833 к задней части Arduino Nano. Печатная плата не требуется.

Выбранный мной модуль AD9833 похож на этот. Я не говорю, что это лучший или самый дешевый поставщик, но вы должны купить тот, который выглядит как эта фотография (или фотография выше).

Связи между модулями:

  • земли соединены вместе
  • D2 = FSync
  • D3 = Clk
  • D4 = Данные
  • D6 = Vcc AD9833

AD9833 питается от вывода данных D6 Arduino - Arduino может обеспечивать достаточный ток. Я добавил развязывающий конденсатор 100н, потому что подумал, что «должен», но я не заметил никакой разницы - на плате модуля AD9833 уже есть развязывающий конденсатор.

Если бы вы были фантазией, вы могли бы беспокоиться о «аналоговой земле» или «цифровой земле», но если бы вы были фантазией, вы бы потратили более 4 фунтов стерлингов.

Простейший генератор сигналов управляется и питается от ПК через USB-кабель. USB имитирует последовательный порт, работающий на скорости 115200 бит / с (8 бит, без контроля четности). Команды:

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

Программа Arduino содержит два 6-символьных массива «min» и «max». Если вы передаете цифру, она сдвигается в массив «min». Если вы отправляете 'S', тогда символы массива «min» преобразуются в longint и отправляется на AD9833. Таким образом, отправляя строку

002500S

установит на выходе AD9833 синусоидальную волну 2500 Гц. Вы всегда должны отправлять все 6 цифр. Минимальная частота - 000001, максимальная - 999999.

Если вы отправляете «M», тогда массив «min» копируется в массив «max». Если вы отправите «H», AD9833 будет постоянно выводить постепенно увеличивающуюся частоту в течение 5 секунд. Он начинается с «минимальной» частоты, а через 5 секунд - с «максимальной» частотой. Так

020000M000100SH

развертка от 100 Гц до 20 кГц. Изменение частоты является логарифмическим, поэтому через 1 секунду частота будет 288 Гц, через 2 секунды 833 Гц, затем 2402, 6931 и 20000. Частота изменяется каждую миллисекунду.

Цикл останавливается, когда Arduino получает другой символ, поэтому будьте осторожны, чтобы не отправить команду, за которой следует возврат каретки или перевод строки. Этот дополнительный символ завершит цикл. Если вы используете Serial Monitor, в правом нижнем углу есть поле, в котором может быть написано, например, «Both NL & CR», которое (я думаю) отправляет символы после вашей команды. Установите для него значение «Без окончания строки».

Вы можете скачать нижеприведенную программу Windows EXE, которая будет отправлять необходимые команды, или вы можете написать свою собственную. INO-файл Arduino также находится здесь.

Шаг 2: добавьте OLED

Добавить OLED
Добавить OLED
Добавить OLED
Добавить OLED
Добавить OLED
Добавить OLED

Если вы добавите OLED и две кнопки, генератор сигналов может работать самостоятельно без ПК.

Те из вас, кто читал мою инструкцию по осциллографу, заметят сходство. Модуль AD9833 можно добавить к моему осциллографу для создания «Осциллографа и генератора сигналов в спичечной коробке».

Дисплей представляет собой 1,3-дюймовый OLED-дисплей с напряжением 3,3 В, который управляется микросхемой SH1106 через шину I2C.

Найдите на eBay OLED 1,3 дюйма. Я не хочу рекомендовать конкретного продавца, поскольку ссылки быстро устаревают. Выберите тот, который выглядит как эта фотография, с надписью «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 и припаяйте.

На дисплее отображается либо одна частота, либо «минимальная» и «максимальная» частоты.

Есть две кнопки: кнопка «По горизонтали» для выбора цифры частот и кнопка «По вертикали» для изменения этой цифры.

Я питаю генератор сигналов от разрабатываемой схемы - на моей рабочей станции всегда есть 5 В.

Шаг 3: Будущие разработки

Будущие разработки
Будущие разработки

Может ли он работать от батареи? Да, просто добавьте 9V PP3, подключенный к контакту RAW Nano. Обычно он использует 20 мА.

Может ли он питаться от одного литиевого элемента? Не понимаю, почему бы и нет. Вы должны подключить OLED Vdd и его подтягивающий резистор к батарее 3,7 В (я сомневаюсь, что выход 3,3 В на Arduino будет работать должным образом).

Генератор развертки более полезен при тестировании частотной характеристики фильтра, если вы можете построить график зависимости амплитуды от частоты. Измерение амплитуды сигнала сложно - вам нужно найти компромисс между затуханием детектора огибающей и пульсацией для низких частот и временем отклика для высоких частот. Построив свой амплитудный детектор, вы можете передать его выходной сигнал в АЦП Arduino «Простейшего генератора сигналов», а затем отправить результат вместе с текущей частотой на ПК.

Эта страница является полезной отправной точкой для поиска в Google по запросу "детектор огибающей" или "пиковый детектор". В предложенной выше схеме вы должны установить частоту сигнала, дождаться ее стабилизации, установить вывод Arduino A0 на цифровой низкий уровень, дождаться разряда C, установить A0 на вход, подождать, а затем измерить с помощью АЦП. Дай мне знать, как у тебя дела.

Рекомендуемые: