This commit is contained in:
liubiren 2025-11-25 23:27:07 +08:00
parent 33647fdfae
commit 30457645c3
2 changed files with 61 additions and 21 deletions

View File

@ -1,14 +1,9 @@
import utime import utime
from machine import Pin from utils import WS2812
from utils import MTS102
# 配置引脚 rgb = WS2812()
led = Pin(0, Pin.OUT)
toggle_switch = MTS102(1)
while True: while True:
if toggle_switch.switched: rgb.iridesce()
led.on()
else: utime.sleep_ms(20)
led.off()
utime.sleep_ms(200)

View File

@ -1,3 +1,9 @@
import utime
from machine import Pin, PWM
from neopixel import NeoPixel
class MTS102: class MTS102:
"""MTS102三脚二档钮子开关""" """MTS102三脚二档钮子开关"""
@ -6,14 +12,14 @@ class MTS102:
:param pin: 引脚编号 :param pin: 引脚编号
:param pull_down: 引脚下拉电阻断开为低电平接通为高电平默认为False若使用下拉电阻因钮子接通后断开可能存留电荷/漏电故需在引脚和GND并联1K10K欧电阻 :param pull_down: 引脚下拉电阻断开为低电平接通为高电平默认为False若使用下拉电阻因钮子接通后断开可能存留电荷/漏电故需在引脚和GND并联1K10K欧电阻
""" """
import utime
from machine import Pin
if not isinstance(pull_down, bool): if not isinstance(pull_down, bool):
raise TypeError("pull_down数据类型应为布尔") raise TypeError("pull_down数据类型应为布尔")
self.pull_down = pull_down self.pull_down = pull_down
import utime
from machine import Pin
# 尝试初始化引脚 # 尝试初始化引脚
try: try:
self.pin = Pin( self.pin = Pin(
@ -50,6 +56,29 @@ class MTS102:
return self._debounce() == 1 return self._debounce() == 1
"""
使用示例
引脚0LED220RGND
引脚1MST102GND
import utime
from machine import Pin
from utils import MTS102
led = Pin(0, Pin.OUT)
toggle = MTS102(pin=1)
while True:
if toggle.switched:
led.on()
else:
led.off()
utime.sleep_ms(200)
"""
class WS2812: class WS2812:
"""WS2812可编程 RGB LED""" """WS2812可编程 RGB LED"""
@ -58,6 +87,10 @@ class WS2812:
:param pin: 引脚编号RP2350ZERO板载WS2812使用引脚16 :param pin: 引脚编号RP2350ZERO板载WS2812使用引脚16
:param led_beads: LED灯珠数 :param led_beads: LED灯珠数
""" """
import utime
from machine import Pin
from neopixel import NeoPixel
if not isinstance(led_beads, int): if not isinstance(led_beads, int):
raise TypeError("led_beads数据类型应为整数") raise TypeError("led_beads数据类型应为整数")
@ -66,10 +99,6 @@ class WS2812:
self.led_beads = led_beads self.led_beads = led_beads
import utime
from machine import Pin
from neopixel import NeoPixel
# 尝试初始化LED # 尝试初始化LED
try: try:
self.led = NeoPixel(Pin(pin, Pin.OUT), self.led_beads) self.led = NeoPixel(Pin(pin, Pin.OUT), self.led_beads)
@ -161,6 +190,23 @@ class WS2812:
utime.sleep_ms(20) utime.sleep_ms(20)
"""
使用示例
RP2350ZERP 使用板载WS2812其占用引脚16
import utime
from utils import WS2812
rgb = WS2812()
while True:
rgb.iridesce()
utime.sleep_ms(20)
"""
class Servo: class Servo:
"""舵机基类""" """舵机基类"""
@ -204,7 +250,6 @@ class Servo:
:param dead_zone: 死区单位为微秒 :param dead_zone: 死区单位为微秒
:param duration_per_degree: 转动单位角度对应的时长单位为秒/六十度 :param duration_per_degree: 转动单位角度对应的时长单位为秒/六十度
""" """
import utime import utime
from machine import Pin, PWM from machine import Pin, PWM
@ -348,7 +393,7 @@ class Servo:
class SG90(Servo): class SG90(Servo):
"""SG909G舵机""" """SG90适用于SG90和MG90S等舵机)"""
def __init__(self, pin): def __init__(self, pin):
super().__init__( super().__init__(
pin=pin, pin=pin,