Raspberry Pi Pico の Circuitpython でキー マトリックスを実装しています。
スキャンして読むことができるようになりました。次に、デバウンスを追加する必要があります。そのために adafruit_debouncer を使用したいと思います。
最初に、行がスキャンされている間にデバウンサーが値を理解しようとしたため、列の入力ピンを単純にデバウンスするという間違いに陥りました...
ここで、キーごとにデバウンサーを作成したいと思います。動作する DigitalIO インスタンスではなく、キー状態の 2 次元配列内の特定のセルを参照するラムダを与えることで、adafruit_debouncer を使用できるはずだと思います。
キーステートとデバウンサーの 2 つの適切なサイズの 2D 配列が与えられた場合、次のように作成します。
for rowindex in range(len(rowpins)):
for colindex in range(len(colpins)):
debouncers[rowindex][colindex] = adafruit_debouncer.Debouncer(lambda: keystates[rowindex][colindex])
を更新する各スキャンを実行した後keystates[][]
、キーがダウンしているかどうかに応じて Trues と Falses を入れてから、 を反復処理しdebouncers[][]
、それぞれを呼び出しupdate()
てから、それらの をクエリしますvalue
。
True
残念ながら、デバウンサーは配列から値を見ることができないようです。少なくとも誰もTrue
自分自身を報告していません。
私の間違いは何ですか?