6.1.3. 模拟IO

OpenMV有一个模拟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的容限。