Каталог

Генератор сигналов на AD9850. Часть 2.

Генератор на AD9850 и Ардуино

В предыдущей публикации мы подробно рассмотрели возможности генератора AD9850, его подключение к Ардуино (как для последовательного, так и для параллельного режима обмена) и научились генерировать нужную частоту на выходе AD9850. Сегодня мы применим эти знания на практике: речь пойдёт о создании полноценного генератора на базе AD9850.

Компоненты

Кроме модуля AD9850 нам понадобятся:

  • Ардуино Нано
  • ЖК дисплей 1602 (я использую поддерживающий кириллицу, но подойдёт и с английским шрифтом)
  • Энкодер вращения с кнопкой EC11
  • BNC разъёмы
  • Корпус
  • Несколько винтов и гаек М3.

Я добавил в проект разъём для подключения питания через вход Vin Ардуино и 2-позиционный выключатель. Но можно обойтись и без них.

Схема генератора

Перечисленные компоненты соединяем в соответствии со следующей схемой:

Схема генератора на AD9850

Я выбрал параллельный способ управления AD9850. Думаю, это будет выгоднее, поскольку планирую добавить в устройство функцию sweep (ни к чему тратить время на последовательную передачу).

Выводами генератора служат ZOUT1 и QOUT1 – синусоида и прямоугольные импульсы. Для управления скважностью прямоугольных импульсов можно выпаять из модуля генератора потенциометр и вынести его на панель устройства. У меня такой необходимости нет, поэтому оставил всё как есть.

Корпус

Корпус устройства я распечатал на 3D принтере. За его основу я взял параметризованную модель https://www.thingiverse.com/thing:1264391. Она позволяет создать корпус нужных размеров. Остаётся лишь немного доработать его для своих целей: добавить необходимые отверстия и стойки для крепления компонентов. Кроме того я решил усилить боковые части корпуса, в которые вворачивается крепёж, т.к. это место показалось мне ненадёжным. Заодно предусмотрел в них пазы для гаек. Получилось довольно неплохо:

Скетч

Итак, соединяем все компоненты по приведённой ранее схеме и устанавливаем их в корпусе. Дело за скетчем. Я реализовал в нём следующие функции: изменение частоты энкодером, изменение шага, ввод произвольной частоты, режим sweep. В скетче использованы библиотеки LiquidCrystal_I2C_Menu для построения меню и TimerOne для работы с таймером 1 (в режиме sweep). Вы можете скачать их вместе со скетчем и моделями для печати на сайте thingiverse.com: https://www.thingiverse.com/thing:5335092

Обратите внимание: при скачивании библиотеки LiquidCrystal_I2C_Menu с сайта github, поддержка кириллицы в ней по умолчанию выключена. Если вы используете дисплей с кириллицей, то необходимо включить её поддержку. Для этого откройте в текстовом редакторе файл LiquidCrystal_I2C_Menu.h, раскомментируйте строку #define CYRILLIC_DISPLAY (удалите символы // в начале строки) и сохраните изменения. После этого вы сможете выводить на дисплей русский текст с использованием данной библиотеки.

Получившийся в итоге генератор вы можете увидеть в следующем видео.

Теперь в планах дополнить генератор усилителем, а также сделать логарифмический режим sweep. Возможно, из этого получится продолжение данной публикации.

footer shadow
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

compacttool logoadaptive site

accepted payment systems

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2015 - 2024г https://compacttool.ru