通过 Arduino Uno 使用 AD9833 生成分辨率为 0.1Hz 的信号
Generate signals with 0.1Hz resolutions using AD9833 via Arduino Uno
我想生成一个分辨率为 0.1Hz 的频率,范围从 0.0 到 1000.0 Hz(例如 23.1 Hz、100.5 Hz 和 999.7 Hz)我发现使用 AD9833 我们可以生成按照我的要求发出信号,但这些注释让我有点困惑。
可获取规范HERE .
如果我们可以编写 Arduino 代码,是否需要您的帮助。假设要通过 Arduino 的串行监视器生成 123.4 Hz 的信号,并在示波器中显示该信号?
谢谢。
查看注释,似乎对该芯片进行编程并非易事。如果您不需要一直到 0 Hz 的频率,使用标准 Windows 声卡可以 更 更轻松地完成这项工作。 (声卡是交流耦合的,因此不会低于几赫兹。)例如,我的 Daqarta 软件可以生成分辨率高于 0.001 赫兹的频率(具有您想要的任何波形)。最大频率将略低于声卡采样率的一半……在默认的 48000 Hz 采样率下通常为 20 kHz。
您不必购买 Daqarta 即可获得此功能; Generator 功能将在试用期后继续工作...免费,永远。
更新:你没有提到你需要什么样的波形,但请注意,如果你可以使用方波,你可以单独使用 Arduino 完成整个工作。这个想法是设置一个定时器来以某个所需的采样率产生中断。在每次中断时,您将一个步进值添加到累加器,并将累加器的 MSB 发送到输出引脚。您可以通过更改步进值来控制输出频率。这本质上是 AD9833(和 Daqarta 生成器)使用的相位累加器方法的 1 位版本。频率分辨率由采样率和累加器的大小控制。您可以轻松获得比 0.1 Hz 更好的分辨率。
此致,
我想生成一个分辨率为 0.1Hz 的频率,范围从 0.0 到 1000.0 Hz(例如 23.1 Hz、100.5 Hz 和 999.7 Hz)我发现使用 AD9833 我们可以生成按照我的要求发出信号,但这些注释让我有点困惑。
可获取规范HERE .
如果我们可以编写 Arduino 代码,是否需要您的帮助。假设要通过 Arduino 的串行监视器生成 123.4 Hz 的信号,并在示波器中显示该信号?
谢谢。
查看注释,似乎对该芯片进行编程并非易事。如果您不需要一直到 0 Hz 的频率,使用标准 Windows 声卡可以 更 更轻松地完成这项工作。 (声卡是交流耦合的,因此不会低于几赫兹。)例如,我的 Daqarta 软件可以生成分辨率高于 0.001 赫兹的频率(具有您想要的任何波形)。最大频率将略低于声卡采样率的一半……在默认的 48000 Hz 采样率下通常为 20 kHz。
您不必购买 Daqarta 即可获得此功能; Generator 功能将在试用期后继续工作...免费,永远。
更新:你没有提到你需要什么样的波形,但请注意,如果你可以使用方波,你可以单独使用 Arduino 完成整个工作。这个想法是设置一个定时器来以某个所需的采样率产生中断。在每次中断时,您将一个步进值添加到累加器,并将累加器的 MSB 发送到输出引脚。您可以通过更改步进值来控制输出频率。这本质上是 AD9833(和 Daqarta 生成器)使用的相位累加器方法的 1 位版本。频率分辨率由采样率和累加器的大小控制。您可以轻松获得比 0.1 Hz 更好的分辨率。
此致,