1

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自分自身を報告していません。

私の間違いは何ですか?

4

0 に答える 0