Skip to content

Knob 模块

模块介绍

旋钮(电位器)驱动模块,用于读取模拟电位器的旋转位置。支持将原始 ADC 值映射为指定范围的浮点或整数值,提供百分比、映射值等便捷属性,使用简单。

硬件引脚说明

引脚名称全称/含义接线颜色功能描述
SSignal/信号黄色数据传输引脚,用于读取旋钮模拟信号(需支持 ADC 功能)
VVoltage/电源红色电源电压输入,为设备提供工作电压
GGround/地线黑色接地引脚,完成电路回路

初始化参数

参数类型默认值说明
pinPin支持 ADC 功能的 machine.Pin实例(如 ESP32 的 GPIO32-39)
min_valint/float0映射范围最小值
max_valint/float100映射范围最大值
adc_bitsint12ADC 位数(决定最大读数,12 位对应 0~4095)

导入和实例创建

python
from machine import Pin  # 导入Pin模块
from knob import Knob  # 导入Knob驱动模块

# 初始化旋钮,连接到 GPIO34(需支持 ADC 功能),映射到 0~100
knob = Knob(pin=Pin(34), min_val=0, max_val=100)  # 创建Knob实例

核心属性方法

属性或方法参数返回类型说明
read()int读取原始 ADC 数值
percentfloat返回百分比(0.0 ~ 100.0),保留 1 位小数
valuefloat返回映射到 min_val ~ max_val 之间的浮点值
value_intint返回映射到 min_val ~ max_val 之间的整数值

使用示例

python
from machine import Pin
from knob import Knob
from time import sleep_ms

# 初始化旋钮,连接到 GPIO34(需支持 ADC 功能),映射到 0~100
knob = Knob(pin=Pin(34), min_val=0, max_val=100)

while True:
    print("原始:", knob.read())
    print("百分比:", knob.percent)
    print("映射值:", knob.value_int)
    sleep_ms(100)  # 配合延时使用,防止程序过载

注意事项

引脚与硬件要求

  • 确保所使用的引脚支持 ADC 输入(如 ESP32 上的 GPIO32、GPIO34、GPIO35、GPIO36、GPIO39 等)
  • 外部电位器应正确连接:两端接电源与地,中间抽头接指定 pin

使用技巧

  • 在 while True 循环中请配合延时函数使用,防止程序过载

技术细节

  • ADC 分辨率因主控而异(如 ESP32 默认为 12 位,即 0~4095),可通过 adc_bits 参数调整