一种基于AD9851模块的廉价DDS信号发生器,可产生高达70MHz(实际为20-30MHz)的正弦波。该模块还内置了一个高达1mhz的参考方波,这是独立于正弦波的工作,占空比通过模块本身内置的电位器控制。
该项目利用Arduino Nano,我还使用旋转编码器来控制信号频率的正弦波。显示器使用的KTM-S1201 7段液晶显示器,因为它是我手边唯一的显示器。液晶显示器需要一个电位计来控制显示对比度。
材料清单
- AD9851 DDS模块
- Arduino Nano
- KTM-S1201 7段液晶显示器
- 旋转编码器
- 电位计(10 k)
连接组件
引脚连接可以非常随意,因为您可以在Arduino代码中指定分配。然而,旋转编码的CLK引脚需要连接到Arduino上的D2或D3,因为这是仅有的两个引脚支持Arduino Nano上的中断连接。
旋转编码器
- 连接Nano D2到编码器CLK
- 连接Nano D3到编码器DT
- 连接Nano D4到编码器SW
- 连接编码器地到地
- 连接编码器Vcc到Arduino +5v
AD9851 (DDS)
- 连接Nano D5到DDS复位
- 连接Nano D6到DDS数据
- 将Nano D7连接到DDS Load
- 连接Nano D8到dds时钟
- 将DDS接地连接
- 连接DDS Vcc到Arduino +5v
KTM-S1201
- 连接Nano D9到LCD CD
- 连接Nano D10到LCD复位
- 连接Nano D11到LCD CS
- 连接Nano D12到LCD N_SCK
- 将Nano D13连接到LCD SI
- 连接LCD地到地
- 连接LCD Vcc到Arduino +5v
电位计
- 将pot左销连接到地面
- 将pot右引脚连接到Arduino +5v
- 将pot中心连接到液晶CS
如何工作
代码非常简单明了,为了便于管理,我将其分成了两个文件。所有与配置和控制DDS相关的功能都在一个单独的文件中,由Arduino IDE自动拉入。
主文件的顶部指定了每个组件(LCD、旋转编码器和AD9851)的引脚选择。其余的代码使用标识符而不是实际的pin号。这就提供了改变线路以适应个人设计和需求的灵活性。
设置初始化信号发生器的初始值为5khz,旋转编码器的步长为1Hz。按编码器作为一个按钮增加频率的10倍,一直到1MHz,然后回到1Hz。
7段液晶显示器显示设置的频率在千赫到小数点后4位分辨率,并显示编码器被推时的增量步长。
本方案更多详细资料可在附件中下载查看
以上内容翻译自网络,原作者:Umar Sear,如涉及侵权,可联系删除。