Digispark キーパッドの多機能化を試みる

Digispark 互換機は事実上 2 つしかピンを使えない。どうやっても 2 つしかボタンを付けられないことになる。

世の中には,ボタンに抵抗をつなぎ,抵抗分圧をアナログで読み取ることで複数のボタンの読み取りをしている人もいる。しかしかなりトリッキーな方法なので,全く知識のない私がやったら動作条件によって誤動作しまくりそうである(ただこれも AliExpress で注文した抵抗が届いたら試す予定)。

そこで,部品点数を増やさずソフトウェア的に対応する方法として,ボタンを複数回数押すことにより機能を出し分けるアプローチを試してみることにした。

残念ながらチャタリングが取り切れずあまり実用的ではないが,それほど時間もかからずにおおよそ狙った通りに機能するコードができた。Arduino と DigiSpark の優れたライブラリの賜物である。

今の実装では 3 秒ごとに押された回数を数えるという素朴な仕組みになっているが,操作がこの 3 秒スパンの終わりに重なると入力の途中で解釈されてしまうことがある。最初の押下をトリガにして動作するようにできればもうちょっとなんとかなりそう?

……と書いていたら少し思いついたので,後で試してみたい。

コメントを残す

投稿にあたり,完全な IP アドレスが保存されます(公開されません)。

コメントはスパムフィルタで処理され,承認後に公開されます。