类 ADC – 模数转换

构建对象

class ADC.ADC(Pin)

创建与设定引脚关联的ADC对象。这样您就可以读取该引脚上的模拟值。

  • Pin - ADC在专用引脚上可用,ESP32可用引脚有:IO39、IO36、IO35、IO33、IO34、IO32。掌控板的ADC引脚有P0、P1、P2、P3、P4、P10。

详细引脚定义可查阅 ESP32引脚功能表.掌控板引脚定义 章节。

示例:

from machine import ADC, Pin

adc = ADC(Pin(33))      # create an ADC object

方法

ADC.read()

读取ADC并返回读取结果。

ADC.atten(db)

该方法允许设置ADC输入的衰减量。这允许更宽的可能输入电压范围,但是以精度为代价(相同的位数现在表示更宽的范围)。在未设置atten(),默认为0DB衰减。可能的衰减选项包括:

  • db

    宏定义

    衰减量

    数值

    满量程电压

    ADC.ATTN_0DB

    0dB衰减

    0

    1V

    ADC.ATTN_2_5DB

    2.5dB衰减

    1

    1.5V

    ADC.ATTN_6DB

    6dB衰减

    2

    2V

    ADC.ATTN_11DB

    11dB衰减

    3

    3.3V

ADC.width(bit)

设置数据宽度(分辨率)。ADC的分辨率是指能够将采集的模拟信号转化为数字信号的精度,通常我们用“位”来表述,比如8位就是指ADC可以将制定量程内的电压信号,分别对应到0 - 2^8-1,即 0-255这256个数字上。分辨率位数越高,能够表示的也就越精确,信息丢失的也就越少。

  • bit - 宽度选项有:

    宏定义

    数值

    满量程

    ADC.WIDTH_9BIT

    0

    0x1ff(511)

    ADC.WIDTH_10BIT

    1

    0x3ff(1023)

    ADC.WIDTH_11BIT

    2

    0x7ff(2047)

    ADC.WIDTH_12BIT

    3

    00xfff(4095)

示例:

from machine import ADC, Pin

adc = ADC(Pin(34))      # create an ADC object
adc.atten(adc.ATTN_11DB)   # set 3.3V Range
x = adc.read()
print(x)

常量

衰减比

ADC.ATTN_0DB
ADC.ATTN_2_5DB
ADC.ATTN_6DB
ADC.ATTN_11DB

数据宽度

ADC.WIDTH_9BIT
ADC.WIDTH_10BIT
ADC.WIDTH_11BIT
ADC.WIDTH_12BIT