6.1.3. 模拟IO¶
OpenMV Cam具有一个模拟I/O引脚(P6),可用作ADC输入或DAC输出。以下是如何使用它来读取0V至3.3V之间的电压值:
import pyb
adc = pyb.ADC(pyb.Pin('P6'))
while(True):
pyb.delay(10) # wait 10 ms
print("%f volts" % (((adc.read() * 3.3) + 2047.5) / 4095)) # read value, 0-4095
ADC具有12位的分辨率,因此它将输出0到4095之间的值,用于0至3.3伏特。最后,请注意,当引脚处于ADC模式时,它不再具有5V容忍性。
接下来,要生成模拟输出电压,您可以将I/O引脚放入DAC模式:
import pyb, math
dac = pyb.DAC(pyb.Pin('P6'))
counter = 0
while(True):
pyb.delay(10) # wait 10 ms
dac.write(int(math.sin(math.radians(counter % 360)) * 255))
counter += 1
以上代码在I/O引脚上生成一个正弦波,该正弦波将在0至255之间变化,对应于0至3.3伏特。同样,请注意,当引脚处于DAC模式时,它不再具有5V容忍性。