私はエレクトロニクスが初めてで、esp8266 と Micropython を楽しんでいます。チェーン化されたシフト レジスタ (sn74hc595) を 2 つ使用して 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 を点灯しないのはなぜですか? さらに明確にする必要がある場合はお知らせください。ありがとう!