Atomic PWM Base
支持以下产品:
UiFlow2 应用示例:
PWM 输出控制
在 UiFlow2 上打开 atoms3r_pwm_base_example.m5f2 项目。
案例演示控制 PWM 信号的占空比在低到高、高到低之间来回变化。
UiFlow2 代码块:
示例输出:
无
MicroPython 应用示例:
PWM 输出控制
案例演示控制 PWM 信号的占空比在低到高、高到低之间来回变化。
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 base import AtomicPWMBase 9import time 10 11 12title0 = None 13label0 = None 14label1 = None 15label_freq = None 16label_duty = None 17base_pwm = None 18i = None 19 20 21def setup(): 22 global title0, label0, label1, label_freq, label_duty, base_pwm, i 23 M5.begin() 24 title0 = Widgets.Title("PWM Control", 0, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18) 25 label0 = Widgets.Label("freq:", 1, 35, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 26 label1 = Widgets.Label("duty:", 2, 65, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 27 label_freq = Widgets.Label("1000Hz", 47, 35, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 28 label_duty = Widgets.Label("0", 55, 65, 1.0, 0xFFFFFF, 0x000000, Widgets.FONTS.DejaVu18) 29 base_pwm = AtomicPWMBase(5, 1000) 30 label_freq.setText(str((str((base_pwm.get_freq())) + str("Hz")))) 31 32 33def loop(): 34 global title0, label0, label1, label_freq, label_duty, base_pwm, i 35 M5.update() 36 for i in range(100): 37 base_pwm.set_duty_u16(i * 150) 38 label_duty.setText(str(base_pwm.get_duty_u16())) 39 time.sleep_ms(40) 40 for i in range(100): 41 base_pwm.set_duty_u16(15000 - i * 150) 42 label_duty.setText(str(base_pwm.get_duty_u16())) 43 time.sleep_ms(40) 44 45 46if __name__ == "__main__": 47 try: 48 setup() 49 while True: 50 loop() 51 except (Exception, KeyboardInterrupt) as e: 52 try: 53 from utility import print_error_msg 54 55 print_error_msg(e) 56 except ImportError: 57 print("please update to latest firmware")
示例输出:
无
API应用
PWM
- class base.pwm.AtomicPWMBase(out_pin=5, freq=1000)
基类:
object创建一个 AtomicPWMBase 对象。
UiFlow2 代码块:

MicroPython 代码块:
from base import AtomicPWMBase base_pwm = AtomicPWMBase(out_pin=5, freq=1000)
- set_freq(freq=1000)
设置 PWM 频率。
- 参数:
freq (int) – PWM 频率,默认为 1000Hz。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
base_pwm.set_freq()




