使用参数 select 要切换的引脚
Use argument to select which pin to toggle
我有一块板,可以说是 20 个 LED,我想在短时间内独立闪烁。
与其将函数复制 20 次并将引脚的变量名调整为 flash 或使用长 if/else 梯形图,还有更好的解决方案吗?是否可以动态修改变量名(可能是个坏主意...)?
def flash(channel, pulse_length=100):
pin_1.high()
time.sleep_us(pulse_length)
pin_1.low()
我想使用通道参数来实现类似 pin_"channel".toggle()
感谢您的意见!
您 可以 使用类似 globals()[ 'pin_' + str(number)]
的方式动态更改名称,但这非常丑陋且没有必要。
为了扩展评论,使用字典而不是列表,以便可以命名各个引脚,并合并 'toggle' func(请注意,如果引脚在 'flash' 之前打开,它将关闭然后重新打开),(ESP8266 上的 uPy 没有引脚。high/low)...
pin_dict = {
'red': pin_1,
'blue': pin_2,
'green': pin_3,
}
def toggle(pin):
pin.value(not pin.value())
def flash(channel, pulse_length=100):
pin = pin_dict[channel]
toggle(pin)
time.sleep_us(pulse_length)
toggle(pin)
flash('red')
如果您更喜欢使用列表,请使用
pin_list = [pin_1, pin_2, pin_3...]
通道只是列表中引脚的索引 (flash(0))
我有一块板,可以说是 20 个 LED,我想在短时间内独立闪烁。 与其将函数复制 20 次并将引脚的变量名调整为 flash 或使用长 if/else 梯形图,还有更好的解决方案吗?是否可以动态修改变量名(可能是个坏主意...)?
def flash(channel, pulse_length=100):
pin_1.high()
time.sleep_us(pulse_length)
pin_1.low()
我想使用通道参数来实现类似 pin_"channel".toggle()
感谢您的意见!
您 可以 使用类似 globals()[ 'pin_' + str(number)]
的方式动态更改名称,但这非常丑陋且没有必要。
为了扩展评论,使用字典而不是列表,以便可以命名各个引脚,并合并 'toggle' func(请注意,如果引脚在 'flash' 之前打开,它将关闭然后重新打开),(ESP8266 上的 uPy 没有引脚。high/low)...
pin_dict = {
'red': pin_1,
'blue': pin_2,
'green': pin_3,
}
def toggle(pin):
pin.value(not pin.value())
def flash(channel, pulse_length=100):
pin = pin_dict[channel]
toggle(pin)
time.sleep_us(pulse_length)
toggle(pin)
flash('red')
如果您更喜欢使用列表,请使用
pin_list = [pin_1, pin_2, pin_3...]
通道只是列表中引脚的索引 (flash(0))