【发布时间】:2020-01-04 16:38:51
【问题描述】:
我是电子新手,并且一直在玩 esp8266 和 Micropython。我试图让几个链式移位寄存器 (sn74hc595) 控制 16 个 LED,但我很难理解我得到的结果。
我的脚本如下:
from machine import Pin
import time
def sixteen_bit(sleep_time=100):
while True:
for value in [1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535]:
bits = [value >> i & 1 for i in range(15, -1, -1)]
for i in range(15, -1, -1):
data.value(bits[i])
clock.value(1)
clock.value(0)
latch.value(1)
latch.value(0)
time.sleep_ms(sleep_time)
在我的视频中有点难以分辨,但每个 LED 都会在所有重复之前单独亮起。 Google Drive Video Example
根据我的代码和对移位寄存器的初步了解,我预计当[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 移入时所有 LED 都会亮起。
所以我的第一个问题是为什么我的脚本没有点亮每个 LED,而之前的 LED 仍然点亮?如果您需要我进一步澄清,请告诉我!谢谢!
【问题讨论】:
-
在再次将
clock和latch引脚设置为高电平和低电平之间似乎没有任何延迟。您确定数据正确地输入移位寄存器吗?您是否先尝试过一个更简单的示例,例如只存储一个静态位模式?
标签: python led micropython shift-register