类 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)