1

私はエレクトロニクスが初めてで、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 を点灯しないのはなぜですか? さらに明確にする必要がある場合はお知らせください。ありがとう!

4

1 に答える 1