0

我买了 Raspberry Pi Pico 并设置了一切。它完美地工作,但现在有时我有错误sleep(0.001),有时它工作,有时它没有。我有两个 7 段显示器,我想相应地打开和关闭它们。不幸的是,过了一会儿,代码开始在睡眠中发疯。它需要非常小才能使二极管看起来很亮,并使它们能够显示不同的数字。无论如何,这是我的代码(我仍在努力使数字从 7 到 9 也出现,但出现了错误,我不知道为什么)

from machine import Pin
from time import sleep

en_pins = [18, 19, 20, 21, 13, 12, 11, 10]
gnd_pins = [9, 22]
en = []
gnd = []
for i in range(len(en_pins)):
    en.append(Pin(en_pins[i], Pin.OUT))
    en[i].value(0)
for i in range(len(gnd_pins)):
    gnd.append(Pin(gnd_pins[i], Pin.OUT))
    gnd[i].value(0)


def turnOn(to):
    for i in range(len(to)):
        if i == 0:
            to[len(to) - 1].value(0)
        else:
            to[i - 1].value(0)
        to[i].value(1)
        sleep(0.001)
    to[len(to) - 1].value(0)


def numbers(num):
    if   num == 1: return [en[0], en[6]]
    elif num == 2: return [en[1], en[2], en[3], en[5], en[6]]
    elif num == 3: return [en[0], en[1], en[3], en[5], en[6]]
    elif num == 4: return [en[0], en[1], en[6], en[7]]
    elif num == 5: return [en[0], en[1], en[3], en[5], en[7]]
    elif num == 6: return [en[0], en[1], en[2], en[3], en[5], en[6]]
    elif num == 7: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]
    elif num == 8: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]
    elif num == 9: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]
    elif num == 0: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]


while True:
    gnd[0].value(0)
    gnd[1].value(1)
    turnOn(numbers(2))
    gnd[1].value(0)
    gnd[0].value(1)
    turnOn(numbers(6))
4

1 回答 1

1

事实证明,只需更改time.sleep(0.001)utime.sleep_ms(1). 谢谢迈克尔·吉德里!

于 2021-03-18T08:15:48.707 回答