Как зациклить всю последовательность светодиодов? - PullRequest
0 голосов
/ 22 июня 2019

Я работаю над своим первым проектом кодирования (без опыта программирования). У меня есть светодиодная лента WS2812B, на которой я хочу непрерывно переключать несколько светодиодных схем.

Если у меня есть только последовательности светодиодных шаблонов, все будет выполнено один раз, а затем застрянет в последней последовательности (которую я хочу запустить только на 20 секунд).

Я подозреваю, что я использую слишком много, в то время как Trues или использую их неправильно. Является ли время True в этой 3-й последовательности светодиодов причиной того, что он не запускается заново? Я думаю, что я использую время = функция тоже неправильно.

Я использую брелок adafruit M0 и Mu, чтобы написать, если это имеет значение.

Я пытался все положить в течение некоторого времени True: в начале. Но светодиоды вообще не включаются, если я так делаю.

В то время как Истина:

1-й светодиодный код последовательности

2-й светодиодный код последовательности

3-й светодиодный код последовательности ниже

в то время как True: если время = 20: перерыв

testcol = (255, 255, 255)
ttype=type(testcol)
print(ttype)
#pixels[4] = (testcol)
pixels.show()

colors = {0:(255, 0, 0), 1:(255, 165, 0), 2:(255, 255, 0), 3:(0, 255, 0), 4:(0, 0, 255), 5:(0, 35, 200), 6:(255, 0, 255)}
ccount = len(colors)
#print (ccount)
#print(colors[2])

data = range(0,185)
chunks = [data[x:x+ccount] for x in range(0, len(data), ccount)]

for p in chunks:

    n = 0
    for subp in p:
        print ("this is chunks",p, "subpart", n,":",p[n], colors[n])
        wp = p[n]
        print ("this is wp:", wp)
        color = colors[n]
        print(color)
        pixels[wp] = (color)
        print(p)
        pixels.show()

        n = n+1

while True:
    t = random.randrange(1, 185)
    oc = pixels[t]
    pixels[t] = (174, 255, 0)  #Alitove String modification for GRB
    print("LED:", t, "has been twinkled")
    pixels.show()
    time.sleep(0.2)
    pixels[t] = (255, 255, 255)
    pixels.show()
    time.sleep(0.5)
    pixels[t] = oc
    pixels.show()

Выполнение проверки в Mu возвращает синтаксическую ошибку, если время = 20: до 3-й последовательности светодиодов.

...