ESP32 ADC 校准库:MicroPython-ADC_Cal
[复制链接]
Espressif IDF API参考文件描述了ESP32内置ADC的局限性,并提供了一种(部分)解决方案,通过使用存储在efuse中的芯片特定校准值来提高其精度。它还提供了有用的信息,包括降低噪声和每种模式下建议的输入电压范围。
MicroPython-ADC_Cal是根据这个方法实现的 micropython 库。
使用方法:
from machine import Pin
import adc1_cal
ADC_PIN = 35 # ADC input pin no.
DIV = 1 # div = V_measured / V_input; here: no input divider
AVERAGING = 10 # no. of samples for averaging (default: 10)
# vref = None -> V_ref calibration value is read from efuse
ubatt = ADC1Cal(Pin(ADC_PIN, Pin.IN), DIV, None, AVERAGING, "ADC1 Calibrated")
# set ADC result width
ubatt.width(ADC.WIDTH_10BIT)
# set attenuation
ubatt.atten(ADC.ATTN_6DB)
print('ADC Vref: {:4}mV'.format(ubatt.vref))
print('Voltage: {:4.1f}mV'.format(ubatt.voltage))
|