ADC V1.1 Unit

ADC V1.1 Unit 是一款 A/D 转换模块,采用 ADS1110 芯片,这是一款 16 位自校准模数转换器。该模块采用 I2C 接口设计,便于连接。模块提供 8、16、32 和 128 samples per second (SPS) 的转换速率,分别对应 16、15、14 和 12 位分辨率,可提供不同精度等级。

支持以下产品:

ADCV11Unit

MicroPython 应用示例

 1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from hardware import *
 9from unit import ADCV11Unit
10
11
12title0 = None
13label1 = None
14label0 = None
15i2c0 = None
16adc_v11_0 = None
17
18
19def setup():
20    global title0, label1, label0, i2c0, adc_v11_0
21
22    M5.begin()
23    Widgets.fillScreen(0x222222)
24    title0 = Widgets.Title(
25        "ADCV11Unit Core2 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
26    )
27    label1 = Widgets.Label(
28        "ADC 16Bit Value:", 1, 130, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18
29    )
30    label0 = Widgets.Label("ADC Value:", 1, 91, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
31
32    i2c0 = I2C(0, scl=Pin(33), sda=Pin(32), freq=100000)
33    adc_v11_0 = ADCV11Unit(i2c0)
34    adc_v11_0.set_sample_rate(0x00)
35    adc_v11_0.set_mode(0x00)
36    adc_v11_0.start_single_conversion()
37    adc_v11_0.set_gain(0x00)
38
39
40def loop():
41    global title0, label1, label0, i2c0, adc_v11_0
42    M5.update()
43    label0.setText(str((str("ADC Value:") + str((adc_v11_0.get_voltage())))))
44    label1.setText(str((str("ADC 16Bit Value:") + str((adc_v11_0.get_adc_raw_value())))))
45
46
47if __name__ == "__main__":
48    try:
49        setup()
50        while True:
51            loop()
52    except (Exception, KeyboardInterrupt) as e:
53        try:
54            from utility import print_error_msg
55
56            print_error_msg(e)
57        except ImportError:
58            print("please update to latest firmware")

UiFlow2 应用示例:

example.png

adcv11_core2_example.m5f2

class ADCV11Unit

Constructors

class ADCV11Unit(i2c)

使用 I2C 或 PAHUBUnit 接口初始化 ADCV11Unit。

参数:

i2c – 用于通信的 I2C 或 PAHUBUnit 实例。

UIFLOW2:

init.png

Methods

ADCV11Unit.get_voltage()

从 ADC V1.1 Unit 获取测量到的电压。

返回:

测得的电压值,四舍五入到小数点后两位。

UIFLOW2:

get_voltage.png

ADCV11Unit.set_gain(gain)

设置 ADC 的增益配置。

参数:

gain – 用于配置的增益值。

UIFLOW2:

set_gain.png

ADCV11Unit.set_sample_rate(rate)

配置 ADC 的采样率。

参数:

rate – 要设置的采样率。

UIFLOW2:

set_sample_rate.png

ADCV11Unit.set_mode(mode)

设置 ADC 的工作模式。

参数:

mode – 用于配置的模式,例如连续转换或单次转换。

UIFLOW2:

set_mode.png

ADCV11Unit.set_config()

使用当前设置更新 ADC 配置寄存器。

ADCV11Unit.get_adc_raw_value()

读取原始 ADC 值。

UIFLOW2:

get_adc_raw_value.png