2017-12-27 249 views
-2

我希望生成一个频率,分辨率为0.1Hz,范围为0.0至1000.0 Hz(例如23.1 Hz,100.5 Hz和999.7 Hz)I发现使用AD9833我们可以生成我所需要的信号,但是笔记对我来说有点混乱。使用AD9833通过Arduino Uno生成具有0.1Hz分辨率的信号

该规范可以得到HERE

如果我们可以制作Arduino代码,需要您的协助。可以说,通过Arduino的串行监视器生成123.4 Hz的信号,并将其显示在示波器中?

谢谢。

回答

1

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

您不必购买Daqarta即可获得此功能;发电机功能将在试用期后继续工作...自由,永远。

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

此致敬礼,