TOPへ戻る


Arduinoでタクトスイッチ等のボタンスイッチを使ってシングルクリック・ダブルクリック・長押しを検出するスケッチ

イベントドリブンというのでしょうか?、スイッチの検出だけにスケッチの処理が占有しないように、
loop()内でチョコチョコ呼ばれて処理するように作りました。
判定関数は、簡単なステートマシンで作ってみました。



プルアップ抵抗はArduinoのpinで定義していますので、外付け抵抗なしです。
なので、開でHiレベル、閉でLoレベルが検出されます。

ソースファイル

ソースファイルはこちら。



50ms周期にA2portを監視して、状態に変化(Loレベル)があったら50ms周期に10個のバッファ
にA2portのレベル記録します。
バッファにいっぱいになったら、レベルの変化点を数えて0個だったら長押し、
1,2個だったら、クリック。
3,4個だったら、ダブルクリック。
0が5個以上あったら、長押しという判定にしています。





2016/09/14 1版