M5LED
M5LED 是一个轻量级控件,用于在用户界面中模拟发光二极管(LED)指示灯。
UiFlow2 应用示例
LED 基本用法示例
在 UiFlow2 中打开 m5cores3_m5ui_led_example.m5f2 项目。
该示例演示如何创建并控制 LED 控件,展示了如何打开/关闭 LED、改变颜色、调整亮度。
UiFlow2 代码块:
示例输出:
无。
MicroPython 应用示例
LED 基本用法示例
该示例演示如何创建并控制 LED 控件,展示了如何打开/关闭 LED、改变颜色、调整亮度。
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 * 8import m5ui 9import lvgl as lv 10import m5utils 11 12 13page0 = None 14led0 = None 15switch0 = None 16slider0 = None 17label0 = None 18brightness = None 19 20 21def switch0_checked_event(event_struct): 22 global page0, led0, switch0, slider0, label0, brightness 23 led0.set_color(0x3366FF) 24 led0.on() 25 26 27def switch0_unchecked_event(event_struct): 28 global page0, led0, switch0, slider0, label0, brightness 29 led0.off() 30 led0.set_color(0x000000) 31 32 33def slider0_value_changed_event(event_struct): 34 global page0, led0, switch0, slider0, label0, brightness 35 brightness = slider0.get_value() 36 led0.set_brightness(int(m5utils.remap(brightness, 0, 100, 80, 255))) 37 label0.set_text(str((str("Brightness: ") + str((str(brightness) + str("%")))))) 38 print(led0.get_brightness()) 39 40 41def switch0_event_handler(event_struct): 42 global page0, led0, switch0, slider0, label0, brightness 43 event = event_struct.code 44 obj = event_struct.get_target_obj() 45 if event == lv.EVENT.VALUE_CHANGED: 46 if obj.has_state(lv.STATE.CHECKED): 47 switch0_checked_event(event_struct) 48 else: 49 switch0_unchecked_event(event_struct) 50 return 51 52 53def slider0_event_handler(event_struct): 54 global page0, led0, switch0, slider0, label0, brightness 55 event = event_struct.code 56 if event == lv.EVENT.VALUE_CHANGED and True: 57 slider0_value_changed_event(event_struct) 58 return 59 60 61def setup(): 62 global page0, led0, switch0, slider0, label0, brightness 63 M5.begin() 64 Widgets.setRotation(1) 65 m5ui.init() 66 page0 = m5ui.M5Page(bg_c=0x000000) 67 led0 = m5ui.M5LED(x=135, y=14, size=50, color=0x00FF00, on=True, parent=page0) 68 switch0 = m5ui.M5Switch( 69 x=110, 70 y=159, 71 w=100, 72 h=40, 73 bg_c=0xE7E3E7, 74 bg_c_checked=0x2196F3, 75 circle_c=0xFFFFFF, 76 parent=page0, 77 ) 78 slider0 = m5ui.M5Slider( 79 x=20, 80 y=118, 81 w=280, 82 h=16, 83 mode=lv.slider.MODE.NORMAL, 84 min_value=0, 85 max_value=100, 86 value=25, 87 bg_c=0x2193F3, 88 color=0x2193F3, 89 parent=page0, 90 ) 91 label0 = m5ui.M5Label( 92 "Brightness: 0%", 93 x=99, 94 y=85, 95 text_c=0x2193F3, 96 bg_c=0xFFFFFF, 97 bg_opa=0, 98 font=lv.font_montserrat_16, 99 parent=page0, 100 ) 101 switch0.add_event_cb(switch0_event_handler, lv.EVENT.ALL, None) 102 slider0.add_event_cb(slider0_event_handler, lv.EVENT.ALL, None) 103 page0.screen_load() 104 led0.off() 105 brightness = 0 106 slider0.set_value(0, True) 107 led0.align_to(page0, lv.ALIGN.TOP_MID, 0, 5) 108 label0.align_to(slider0, lv.ALIGN.CENTER, 0, -25) 109 led0.set_brightness(80) 110 print(led0.get_brightness()) 111 112 113def loop(): 114 global page0, led0, switch0, slider0, label0, brightness 115 M5.update() 116 117 118if __name__ == "__main__": 119 try: 120 setup() 121 while True: 122 loop() 123 except (Exception, KeyboardInterrupt) as e: 124 try: 125 m5ui.deinit() 126 from utility import print_error_msg 127 128 print_error_msg(e) 129 except ImportError: 130 print("please update to latest firmware")
示例输出:
无。
API 参考
M5LED
- class m5ui.led.M5LED(*args, **kwargs)
基类:
led创建一个 LED 对象。
- 参数:
UiFlow2 代码块:
None
MicroPython 代码块:
from m5ui import M5Led import lvgl as lv m5ui.init() led_0 = M5Led(x=50, y=50, size=50, color=0x00FF00, on=True, parent=page0)
- on()
打开 LED。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.on()
- off()
关闭 LED。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.off()
- toggle()
切换 LED 的状态。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.toggle()
- set_color(color)
设置 LED 的颜色。
- 参数:
color (int) – LED 的颜色(RGB888 格式)。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_color(color)
- set_pos(x, y)
设置 LED 的位置。
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_pos(x, y)
- set_x(x)
设置 LED 的 x 坐标。
- 参数:
x (int) – LED 的 x 坐标。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_x(x)
- set_y(y)
设置 LED 的 y 坐标。
- 参数:
y (int) – LED 的 y 坐标。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_y(y)
- set_size(width, height)
设置 LED 的大小。
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_size(width, height)
- set_width(width)
设置 LED 的宽度。
- 参数:
width (int) – LED 的宽度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_width(width)
- set_height(height)
设置 LED 的高度。
- 参数:
height (int) – LED 的高度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.set_height(height)
- align_to(obj, align, x, y)
将 LED 相对于另一个对象对齐。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
led_0.align_to(page0, lv.ALIGN.CENTER, 0, 0)
- lv.ALIGN
用于定位对象的对齐选项。
lv.ALIGN.DEFAULT
lv.ALIGN.TOP_LEFT
lv.ALIGN.TOP_MID
lv.ALIGN.TOP_RIGHT
lv.ALIGN.BOTTOM_LEFT
lv.ALIGN.BOTTOM_MID:底部居中对齐。
msgstr “”
lv.ALIGN.LEFT_MID
lv.ALIGN.RIGHT_MID
lv.ALIGN.CENTER
lv.ALIGN.OUT_TOP_LEFT
lv.ALIGN.OUT_TOP_MID
lv.ALIGN.OUT_TOP_RIGHT
lv.ALIGN.OUT_BOTTOM_LEFT
lv.ALIGN.OUT_BOTTOM_MID(底部外侧居中对齐)
lv.ALIGN.OUT_BOTTOM_RIGHT
lv.ALIGN.OUT_LEFT_TOP
lv.ALIGN.OUT_LEFT_MID
lv.ALIGN.OUT_LEFT_BOTTOM
lv.ALIGN.OUT_RIGHT_TOP
lv.ALIGN.OUT_RIGHT_MID
lv.ALIGN.OUT_RIGHT_BOTTOM




