本帖最后由 1nnocent 于 2021-3-29 15:55 编辑
发现一个不一样的地方,就是板子上没有基准电压的芯片,
所以板子的基准电压是通过开关电源的3.3V经过一阶RC滤波(R7、R9和C13)得到的电压来做为ADC的基准,
因此也会有一定的缺点:
1.开关电源产生的电压可能不会很精准;
2.开关电源输出电压的纹波会相对大一些,所以这个基准电压可能没有那么“干净”;
不过用户也可以加外部基准电压,这些在数据手册描述的很清楚,具体的可以查看数据手册
现在测试一个历程(ADC4测量内部传感器温度),代码如下
import machine
import utime
sensor_temp = machine.ADC(4)
conversion_factor = 3.3 / (65535)
while True:
reading = sensor_temp.read_u16() * conversion_factor
temperature = 27 - (reading - 0.706)/0.001721
print(temperature)
utime.sleep(2)
以下是测试结果
下面使用ADC0来采集外部提供的电压,代码如下:
import machine
import utime
sensor_temp = machine.ADC(0)
conversion_factor = 3.3 / (65535)
while True:
Voltage = sensor_temp.read_u16() * conversion_factor
print(Voltage)
utime.sleep(2)
信号源提供三组测量电压:
依次测量结果:
测试线:
ADC0在GP26,附近刚好有一个模拟地接口
从ADC的测量结果来看确实存在一定的误差