5.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的容限。