模拟与数字转换及数字通信知识详解
1. 模拟与数字转换在机器人吸尘器中的应用
1.1 正弦波输出示例
在机器人吸尘器的相关操作中,存在一个通过定时器触发 DAC 模块生成正弦波输出的示例。具体操作是通过定时器 2 以 8 Hz 的频率触发,这样在一个周期内有 128 个元素的输出,且这些输出会在 16 秒内完成,从而得到频率为 1/16 Hz 的正弦波。最后,利用 DMA 模块以循环模式将这些值转换为模拟电压并输出,我们可以通过将一个 LED 连接到引脚 PA5 来观察输出情况。以下是实现该功能的 MicroPython 代码:
import pyb
from array import array
from math import pi, sin
def convertDACVoltage2Value(voltage):
value = int(4095 * voltage / 3.0)
return value
def main():
sineVoltages = array('f', 1.5 + 1.5 * sin(2 * pi * i / 128) for i in range(128))
DACValues = array('H', (0 for i in range(128)))
for i in range(len(DACValues)):
DACValues[i] = convertDACVoltage2Value(sineVoltages[i])
dacOut = pyb.DAC(2, bits=12, buffering=True
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



