我是电子新手,并且一直在玩 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 云端硬盘视频示例
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
根据我的代码和对移位寄存器的基本了解,我希望所有的 LED 在移入时都会亮起。
所以我的第一个问题是为什么我的脚本没有点亮每个 LED,而之前的 LED 仍然点亮?如果您需要我进一步澄清,请告诉我!谢谢!