数字输入器

数字输入器用于读取主机设备的数字输入。

UiFlow2 应用示例

获取数字输入状态

在 UiFlow2 中打开 stamplc_digital_input_example.m5f2 项目。

此示例演示如何获取数字输入的状态并在屏幕上显示该状态。

UiFlow2 代码块:

stamplc_digital_input_example.png

示例输出:

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 DigitalInput
 9
10
11label0 = None
12digitalinput_0 = None
13
14
15def digitalinput_0_falling_event(args):
16    global label0, digitalinput_0
17    label0.setText(str(digitalinput_0.value()))
18
19
20def digitalinput_0_rising_event(args):
21    global label0, digitalinput_0
22    label0.setText(str(digitalinput_0.value()))
23
24
25def setup():
26    global label0, digitalinput_0
27
28    M5.begin()
29    label0 = Widgets.Label("label0", 112, 57, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
30
31    digitalinput_0 = DigitalInput(1)
32    digitalinput_0.irq(digitalinput_0_falling_event, digitalinput_0.IRQ_FALLING)
33    digitalinput_0.irq(digitalinput_0_rising_event, digitalinput_0.IRQ_RISING)
34    label0.setText(str(digitalinput_0.value()))
35
36
37def loop():
38    global label0, digitalinput_0
39    M5.update()
40
41
42if __name__ == "__main__":
43    try:
44        setup()
45        while True:
46            loop()
47    except (Exception, KeyboardInterrupt) as e:
48        try:
49            from utility import print_error_msg
50
51            print_error_msg(e)
52        except ImportError:
53            print("please update to latest firmware")

示例输出:

None

API参考

DigitalInput

class DigitalInput(id: int)

初始化数字输入器对象。

参数:

id (int) – 数字输入的ID。ID范围是1-8。

UiFlow2 代码块:

init.png

MicroPython 代码块:

from hadrware import DigitalInput

in1 = DigitalInput(1)
get_status() bool

获取数字输入器的状态。

返回:

数字输入器的状态。

返回类型:

bool

UiFlow2 代码块:

get_status.png

MicroPython 代码块:

in1.get_status()
value() int

获取数字输入器的值。

返回:

数字输入的值。

返回类型:

int

UiFlow2 代码块:

value.png

MicroPython 代码块:

in1.value()
irq(handler=None, trigger=IRQ_FALLING | IRQ_RISING) None

启用中断。

参数:
  • handler (function) – 中断处理函数。

  • trigger (int) – 中断触发模式,DigitalInput.IRQ_FALLING 或 DigitalInput.IRQ_RISING。

UiFlow2 代码块:

irq.png

MicroPython 代码块:

def handler(pin):
    print('interrupt triggered')

in1.irq(handler, DigitalInput.IRQ_FALLING)