Step16 Unit
该库是 Unit Step16 的驱动程序。
支持以下产品:
UiFlow2 应用示例
读取编码器
在 UiFlow2 中打开 cores3_step16_unit_example.m5f2 项目。
该示例演示如何读取并显示编码器读数。
UiFlow2 代码块:
示例输出:
None
MicroPython 应用示例
读取编码器
该示例演示如何读取并显示编码器读数。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from hardware import I2C 9from hardware import Pin 10from unit import Step16Unit 11 12 13title0 = None 14label1 = None 15label_val = None 16i2c0 = None 17step16_0 = None 18val = None 19 20 21def setup(): 22 global title0, label1, label_val, i2c0, step16_0, val 23 M5.begin() 24 Widgets.setRotation(1) 25 Widgets.fillScreen(0x222222) 26 title0 = Widgets.Title("UnitStep16 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu24) 27 label1 = Widgets.Label( 28 "Encoder Value:", 10, 55, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu24 29 ) 30 label_val = Widgets.Label("0", 205, 55, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu24) 31 32 i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000) 33 step16_0 = Step16Unit(i2c0, 0x48) 34 print((str("i2c addr: ") + str((step16_0.get_addr())))) 35 print((str("version: ") + str((step16_0.get_firmware_version())))) 36 step16_0.set_led_mode(Step16Unit.AUTO_OFF, 5) 37 step16_0.set_led_brightness(80) 38 print((str("rgb brightness: ") + str((step16_0.get_rgb_brightness())))) 39 print((str("rgb value: ") + str((step16_0.get_rgb_value())))) 40 if step16_0.get_rgb_power(): 41 print("RGB power on") 42 else: 43 print("RG B power off") 44 step16_0.set_rgb_power(True) 45 step16_0.set_rgb_value(0x3333FF) 46 47 48def loop(): 49 global title0, label1, label_val, i2c0, step16_0, val 50 M5.update() 51 val = step16_0.get_encoder_value() 52 label_val.setText(str(val)) 53 54 55if __name__ == "__main__": 56 try: 57 setup() 58 while True: 59 loop() 60 except (Exception, KeyboardInterrupt) as e: 61 try: 62 from utility import print_error_msg 63 64 print_error_msg(e) 65 except ImportError: 66 print("please update to latest firmware")
示例输出:
None
API参考
Step16Unit
- class unit.step16.Step16Unit(i2c, addr=72)
基类:
object创建一个 Step16Unit 对象。
UiFlow2 代码块:

MicroPython 代码块:
from unit import Step16Unit unit_step16_0 = Step16Unit(i2c0, 0x48)
- get_encoder_value()
获取当前编码器值(0~15)。
- 返回:
编码器值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
value = unit_step16_0.get_encoder_value()
- set_encoder_cw_increase(enable)
配置顺时针旋转是否会增加编码器值。
- 参数:
enable (bool) –
True:顺时针旋转会增加编码器值。
False:顺时针旋转会减少编码器的值。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_encoder_cw_increase(True) unit_step16_0.set_encoder_cw_increase(False)
- get_encoder_cw_increase()
获取当前编码器方向模式。
- 返回:
1 表示顺时针递增,0 表示递减。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
direction = unit_step16_0.get_encoder_cw_increase()
- set_led_mode(mode, seconds=5)
设置 LED 显示模式。
- 参数:
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_led_mode(0) # Always off unit_step16_0.set_led_mode(1) # Always on unit_step16_0.set_led_mode(2, 10) # Auto-off after 10 seconds
- get_led_mode()
获取 LED 显示模式。
LED 模式值:
0x00:始终关闭。
0xFE:始终开启。0x00 ~ 0xFD:以秒为单位的自动关闭时间。
- 返回:
LED 显示模式。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.get_led_mode()
- set_led_brightness(brightness)
设置 LED 亮度(0~100)。
- 参数:
int (brightness) – 亮度等级。
brightness (int)
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_led_brightness(80)
- get_led_brightness()
获取当前 LED 亮度。
- 返回:
亮度等级。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
brightness = unit_step16_0.get_led_brightness() print("Brightness:", brightness)
- set_rgb_power(enable)
打开或关闭 RGB 灯电源。
- 参数:
enable (bool) – True 用于打开 RGB 灯,False 用于关闭。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_rgb_power(True) # Turn ON RGB light unit_step16_0.set_rgb_power(False) # Turn OFF RGB light
- get_rgb_power()
获取 RGB 灯的当前电源状态。
- 返回:
如果 RGB light 处于 ON 状态则为 True,如果处于 OFF 状态则为 False。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
power_on = unit_step16_0.get_rgb_power()
- set_rgb_brightness(brightness)
设置 RGB 灯的亮度(0~100%)。
- 参数:
brightness (int) – 亮度百分比(0~100)。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_rgb_brightness(80) # Set RGB brightness to 80%
- get_rgb_brightness()
获取当前 RGB 亮度级别(0~100%)。
- 返回:
当前 RGB 亮度百分比(0~100)。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
brightness = unit_step16_0.get_rgb_brightness() print("RGB Brightness:", brightness)
- set_rgb_value(color=0)
使用 24 位整数设置 RGB LED 颜色。
- 参数:
color (int) – 一个 24 位整数,用于表示 RGB 颜色(例如 0xFF8040 表示 R=255、G=128、B=64)。格式为 (R << 16) | (G << 8) | B。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_rgb_value()
- get_rgb_value()
获取当前 RGB LED 颜色。
- 返回:
(r, g, b) 元组
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
r, g, b = unit_step16_0.get_rgb_value()
- save_led_config()
保存当前 LED 模式和亮度设置。
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.save_led_config()
- 返回类型:
None
- save_rgb_config()
保存当前 RGB 颜色设置。
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.save_rgb_config()
- 返回类型:
None
- set_addr(new_addr)
设置设备的 I2C 地址。
- 参数:
new_addr (int) – 新的 I2C 地址(0x08 ~ 0x77)。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
unit_step16_0.set_addr(0x49)
- get_addr()
获取当前 I2C 设备地址。
- 返回:
“””I2C 地址。”””
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
addr = unit_step16_0.get_addr()


