Fan v1.1 Module
这是Module FAN的驱动库, 用于控制Module FAN。
支持以下产品:
UiFlow2 应用示例
控制 module fan v1.1
在 UiFlow2 上打开 fan_cores3_example.m5f2 项目。
初始化风扇模块,设置风扇状态、PWM 频率和占空比,并在屏幕上实时显示风扇状态、转速、PWM 频率和占空比。当用户触摸屏幕时,风扇状态会切换为开/关。
UiFlow2 代码块:
示例输出:
无
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- set_fan_state(state)
设置风扇的状态为开/关。
- 参数:
state (bool) – 风扇的状态。
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.set_fan_state(True)
- get_fan_state()
获取当前风扇的状态。
- 返回:
当前风扇的状态。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_fan_state()
- set_pwm_frequency(freq=2)
设置风扇的PWM频率。
- 参数:
freq (int) – 风扇的PWM频率。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.set_pwm_frequency(2)
- get_pwm_frequency()
获取当前PWM频率。
- 返回:
当前PWM频率。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_pwm_frequency()
- set_pwm_duty_cycle(duty_cycle)
设置风扇的PWM占空比。
- 参数:
duty_cycle (int) – 风扇的PWM占空比。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.set_pwm_duty_cycle(50)
- get_pwm_duty_cycle()
获取当前PWM占空比。
- 返回:
当前PWM占空比。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_pwm_duty_cycle()
- get_fan_rpm()
获取当前风扇的转速(每分钟转速)。
- 返回:
当前风扇的转速(每分钟转速)。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_fan_rpm()
- get_single_frequency()
获取当前信号频率。
- 返回:
当前信号频率。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_single_frequency()
- write_flash()
将当前配置(风扇状态、PWM 频率和 PWM 占空比)保存到闪存中。
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.write_flash()
- 返回类型:
None
- get_firmware_version()
获取当前固件版本。
- 返回:
当前固件版本。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_firmware_version()
- get_i2c_address()
获取当前I2C地址。
- 返回:
当前I2C地址。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
fan_v11_0.get_i2c_address()


