В предыдущей публикации мы подробно рассмотрели возможности генератора AD9850, его подключение к Ардуино (как для последовательного, так и для параллельного режима обмена) и научились генерировать нужную частоту на выходе AD9850. Сегодня мы применим эти знания на практике: речь пойдёт о создании полноценного генератора на базе AD9850.
Кроме модуля AD9850 нам понадобятся:
Я добавил в проект разъём для подключения питания через вход Vin Ардуино и 2-позиционный выключатель. Но можно обойтись и без них.
Перечисленные компоненты соединяем в соответствии со следующей схемой:
Я выбрал параллельный способ управления 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. Возможно, из этого получится продолжение данной публикации.
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru