[IDE系列教程]ESP32 3.2.3 ADC/DAC

查看: 79|回复: 0

[IDE系列教程] ESP32 3.2.3 ADC/DAC

[复制链接]

ADC

注意:ADC在专用引脚上可用,可用引脚有:A2/IO34、A3/IO35、A0/IO36、A1/IO39,可测电压范围为0~3.3V。

class machine.ADC(pin)

pin:I/O引脚
    Pin(34)、Pin(35)、Pin(36)、Pin(39)

定义ADC对象

示例:

from machine import ADC, Pin

adc = ADC(Pin(34))

函数

1. ADC.read()

函数说明:读取ADC并返回读取结果。
示例:

x = adc.read()
print(x)

2. ADC.atten(db)

函数说明:设置衰减比(即满量程的电压,比如11db满量程时电压为3.3V)。

db:衰减比
    ADC.ATTIN_0DB、ADC.ATTN_2_5_DB、ADC.ATTN_6DB、ADC.ATTN_11DB

示例:

adc.atten(ADC.ATTN_0DB)

3. ADC.width(bit)

函数说明:设置数据宽度。

bit:
    ADC.WIDTH_9BIT、 ADC.WIDTH_10BIT、ADC.WIDTH_11BIT、 ADC.WIDTH_12BIT

衰减比

  • ADC.ATTN_0DB   = 0    — 满量程:1.2v
  • ADC.ATTN_2_5DB   = 1    — 满量程:1.5v
  • ADC.ATTN_6DB   = 2    — 满量程:2.0v
  • ADC.ATTN_11DB   = 3    — 满量程:3.3v

数据宽度

  • ADC.WIDTH_9BIT   = 0    — 9位数据宽度, 即满量程0x1ff(511)
  • ADC.WIDTH_10BIT   = 1    — 10位数据宽度,即满量程0x3ff(1023)
  • ADC.WIDTH_11BIT   = 2    — 11位数据宽度,即满量程0x7ff(2047)
  • ADC.WIDTH_12BIT   = 3    — 12位数据宽度,即满量程0xfff(4095)

综合示例

from machine import ADC, Pin
import time

adc = ADC(Pin(36))            #设置IO36为模拟IO口
adc.atten(ADC.ATTN_11DB)      #设置衰减比
adc.width(ADC.WIDTH_12BIT)    #设置12位数据宽度
for i in range(0, 10):
  print("adc0 =", adc.read()) #读取IO口模拟电压值
  time.sleep(0.5)

DAC

注意:DAC在专用引脚上可用,可用引脚有:IO25/D2、IO26/D3,电压范围为0~3.3V。

class machine.DAC(pin)

pin:I/O引脚
    Pin(25)、Pin(26)

定义DAC

示例:

from machine import DAC, Pin

dac = DAC(Pin(26))

函数

DAC.write(value)

函数说明:设置输出电压(0~3.3V)。

value:
    0 ≤ value ≤ 255(对应0~3.3V)

示例:


dac.write(255)

综合示例

from machine import DAC, Pin

dac = DAC(Pin(25))  #创建一个DAC对象
dac.write(245)      #输出电压
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail