使用AD9833通过Arduino Uno生成0.1Hz分辨率的信号

问题描述 投票:-2回答:1

我想生成一个分辨率为0.1Hz的频率,范围从0.0到1000.0 Hz(例如23.1 Hz,100.5 Hz和999.7 Hz)我发现使用AD9833我们可以像我一样生成信号要求,但笔记对我来说有点混乱。

该规范可以获得HERE

如果我们可以制作Arduino代码,需要你的帮助..让我们说,通过Arduino的串行监视器产生123.4 Hz的信号,它显示在示波器中?

谢谢。

arduino frequency arduino-uno
1个回答
1
投票

看一下笔记,看来编程这个芯片将是非常重要的。如果您不需要频率一直到0 Hz,使用标准Windows声卡可以更轻松地完成这项工作。 (声卡是交流耦合的,因此不会低于几赫兹。)例如,我的Daqarta软件可以以高于0.001 Hz的分辨率生成频率(具有您想要的任何波形)。最大频率将略低于声卡采样率的一半...通常在默认48000 Hz采样率下为20 kHz。

您无需购买Daqarta来获得此功能;试用期后,发电机功能将继续工作......永远免费。

更新:您没有提到您需要什么样的波形,但请注意,如果您可以使用方波,您可以单独使用Arduino完成整个工作。我们的想法是设置一个计时器,以某种所需的采样率产生中断。在每次中断时,向累加器添加一个步进值,并将累加器的MSB发送到输出引脚。您可以通过更改步长值来控制输出频率。这基本上是AD9833(以及Daqarta Generator)使用的1位版本的相位累加器方法。频率分辨率由采样率和累加器的大小控制。您可以轻松获得比0.1 Hz分辨率更好的效果。

最好的祝福,

© www.soinside.com 2019 - 2024. All rights reserved.