Fan v1.1 Module

这是Module FAN的驱动库, 用于控制Module FAN。

支持以下产品:

FAN

UiFlow2 应用示例

控制 module fan v1.1

在 UiFlow2 上打开 fan_cores3_example.m5f2 项目。

初始化风扇模块,设置风扇状态、PWM 频率和占空比,并在屏幕上实时显示风扇状态、转速、PWM 频率和占空比。当用户触摸屏幕时,风扇状态会切换为开/关。

UiFlow2 代码块:

example.png

示例输出:

MicroPython 应用示例

控制 module fan v1.1

初始化风扇模块,设置风扇状态、PWM 频率和占空比,并在屏幕上实时显示风扇状态、转速、PWM 频率和占空比。当用户触摸屏幕时,风扇状态会切换为开/关。

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 module import FanModule
 9import time
10
11
12title0 = None
13label0 = None
14label1 = None
15label2 = None
16label3 = None
17fan_v11_0 = None
18
19
20def setup():
21    global title0, label0, label1, label2, label3, fan_v11_0
22
23    M5.begin()
24    Widgets.fillScreen(0x222222)
25    title0 = Widgets.Title(
26        "FanModuleV1.1 CoreS3 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
27    )
28    label0 = Widgets.Label("label0", 0, 57, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
29    label1 = Widgets.Label("label1", 0, 94, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
30    label2 = Widgets.Label("label2", 0, 133, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
31    label3 = Widgets.Label("label3", 0, 168, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
32
33    fan_v11_0 = FanModule(address=0x18)
34    fan_v11_0.set_fan_state(True)
35    fan_v11_0.set_pwm_frequency(0)
36    fan_v11_0.set_pwm_duty_cycle(80)
37
38
39def loop():
40    global title0, label0, label1, label2, label3, fan_v11_0
41    M5.update()
42    label0.setText(str((str("Fan State:") + str((fan_v11_0.get_fan_state())))))
43    label1.setText(str((str("Fan PWM Freq:") + str((fan_v11_0.get_single_frequency())))))
44    label2.setText(str((str("Fan PWM duty cycle:") + str((fan_v11_0.get_pwm_duty_cycle())))))
45    label3.setText(str((str("Fan rpm:") + str((fan_v11_0.get_fan_rpm())))))
46    if M5.Touch.getCount():
47        fan_v11_0.set_fan_state(not (fan_v11_0.get_fan_state()))
48        time.sleep_ms(50)
49
50
51if __name__ == "__main__":
52    try:
53        setup()
54        while True:
55            loop()
56    except (Exception, KeyboardInterrupt) as e:
57        try:
58            from utility import print_error_msg
59
60            print_error_msg(e)
61        except ImportError:
62            print("please update to latest firmware")

示例输出:

API

FanModule

class module.fan.FanModule(address=24)

基类:object

参数:

address (int | list | tuple)

set_fan_state(state)

设置风扇的状态为开/关。

参数:

state (bool) – 风扇的状态。

UiFlow2 代码块:

set_fan_state.png

MicroPython 代码块:

fan_v11_0.set_fan_state(True)
get_fan_state()

获取当前风扇的状态。

返回:

当前风扇的状态。

返回类型:

bool

UiFlow2 代码块:

get_fan_state.png

MicroPython 代码块:

fan_v11_0.get_fan_state()
set_pwm_frequency(freq=2)

设置风扇的PWM频率。

参数:

freq (int) – 风扇的PWM频率。

返回类型:

None

UiFlow2 代码块:

set_pwm_frequency.png

MicroPython 代码块:

fan_v11_0.set_pwm_frequency(2)
get_pwm_frequency()

获取当前PWM频率。

返回:

当前PWM频率。

返回类型:

int

UiFlow2 代码块:

get_pwm_frequency.png

MicroPython 代码块:

fan_v11_0.get_pwm_frequency()
set_pwm_duty_cycle(duty_cycle)

设置风扇的PWM占空比。

参数:

duty_cycle (int) – 风扇的PWM占空比。

返回类型:

None

UiFlow2 代码块:

set_pwm_duty_cycle.png

MicroPython 代码块:

fan_v11_0.set_pwm_duty_cycle(50)
get_pwm_duty_cycle()

获取当前PWM占空比。

返回:

当前PWM占空比。

返回类型:

int

UiFlow2 代码块:

get_pwm_duty_cycle.png

MicroPython 代码块:

fan_v11_0.get_pwm_duty_cycle()
get_fan_rpm()

获取当前风扇的转速(每分钟转速)。

返回:

当前风扇的转速(每分钟转速)。

返回类型:

int

UiFlow2 代码块:

get_fan_rpm.png

MicroPython 代码块:

fan_v11_0.get_fan_rpm()
get_single_frequency()

获取当前信号频率。

返回:

当前信号频率。

返回类型:

int

UiFlow2 代码块:

get_single_frequency.png

MicroPython 代码块:

fan_v11_0.get_single_frequency()
write_flash()

将当前配置(风扇状态、PWM 频率和 PWM 占空比)保存到闪存中。

UiFlow2 代码块:

write_flash.png

MicroPython 代码块:

fan_v11_0.write_flash()
返回类型:

None

get_firmware_version()

获取当前固件版本。

返回:

当前固件版本。

返回类型:

int

UiFlow2 代码块:

get_firmware_version.png

MicroPython 代码块:

fan_v11_0.get_firmware_version()
get_i2c_address()

获取当前I2C地址。

返回:

当前I2C地址。

返回类型:

int

UiFlow2 代码块:

get_i2c_address.png

MicroPython 代码块:

fan_v11_0.get_i2c_address()
set_i2c_address(addr)

设置Module Fan的I2C地址。

参数:

addr (int) – Module Fan的I2C地址。

返回类型:

None

UiFlow2 代码块:

set_i2c_address.png

MicroPython 代码块:

fan_v11_0.set_i2c_address(0x18)