マウスでもダブルクリックやドラッグができるように、ただの押しボタンスイッチでもいろんなアクションをさせたいと思いました。
実装しようにもあまりいい方法が思いつかないんですよね。
1回状態が変化してから一定時間でどれだけ状態が変化したかで見るのはなんとなく分かりますが...
スポンサーリンク
一番の難点がチャタリングでしてハードウェアで処理してしまえば楽ですが、ソフトでチャタリング+ボタンアクションは非常に面倒です。
色々探しているとArduinoであればライブラリを見つけたのでそれを紹介しようと思います。
これがいいのはチャタリング処理をしてくれているところです。
というのもBounce2というチャタリング処理のライブラリをベースに作られているので、チャタリング処理も問題ないというわけです。
Bounce2は定評があると思います、私もよく使っています。
ただ、Bounce2自体が割り込みを使っていないのでタイミングクリティカルな処理は同様に無理ですけどね。
今のところですけど、外部割り込みを使ったチャタリング処理ライブラリのお気に入りは見つけられていません。
時々ですけど割り込みじゃないと困ることがあるので、こちらもちょっと気にして探してみようと思います。
Bounce2のポーリングをタイマー割り込みでやってもいいんですけどね。
1つのボタンでいろんなアクションをしたいとき
スポンサーリンク
Leave a Comment