ITADN
matthias-bs/MicroPython-ADC_Cal
matthias-bs/MicroPython-ADC_Cal · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

formatting: lint GitHub release

MicroPython-ADC_Cal

MicroPython ESP32 库,用于校准片上 ADC 转换

请参阅 ESP32 文档以获取最大 ADC 输入电压额定值!!!

Espressif IDF API 参考 描述了 ESP32 内置模数转换器的局限性——并提供了一种(部分)解决方案,即通过使用存储在 efuse 中的芯片特定校准值(或两个校准值,分别)来提高其精度的方法。它还提供了有关噪声抑制以及每种模式下建议的输入电压范围的有用信息。

ADC 校准方案 由 ADC1Cal 类(部分)提供。

适用以下限制:

  • 仅支持 V_ref 校准模式
    (这是因为作者没有合适的 ESP32 设备来测试两点校准模式。)

ADC1Cal 扩展了 MicroPython 的 ESP32 machine.ADC 类。请参阅 MicroPython ESP32 ADC 文档 以了解从 ADC 类继承的方法和属性。

属性:
    name (string):      实例名称(用于调试)
    vref (int):         ADC 参考电压,单位为 mV(来自 efuse 校准数据或由程序员提供)

方法:
    @property
    voltage()
        获取电压测量值 [mV]

        返回:
            float: 电压 [mV]

    __str__()
        以字符串形式转储对象信息

返回: string: "名称: 宽度: , 衰减: , 原始值: , 值: "

使用示例:

    from machine import Pin
    import adc1_cal

    ADC_PIN   = 35                # ADC 输入引脚号
    DIV       = 1                 # div = V_measured / V_input; 此处: 无输入分压器
    AVERAGING = 10                # 用于平均的采样次数 (默认: 10)

    # vref = None -> 从 efuse 读取 V_ref 校准值
    ubatt = ADC1Cal(Pin(ADC_PIN, Pin.IN), DIV, None, AVERAGING, "ADC1 校准")

    # 设置 ADC 结果宽度
    ubatt.width(ADC.WIDTH_10BIT)

    # 设置衰减
    ubatt.atten(ADC.ATTN_6DB)

    print('ADC Vref: {:4}mV'.format(ubatt.vref))

    print('电压:  {:4.1f}mV'.format(ubatt.voltage))