Я работаю над своим первым проектом кодирования (без опыта программирования). У меня есть светодиодная лента 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-й последовательности светодиодов.