Button2でチャタリング除去,(ダブルクリック等の)スイッチ処理
某箇所で紹介されていた
というのがありまして,いろいろなArduinoで使えるようなので試してみました。
手っ取り早く,micro:bitに2個のスイッチがありますので,これを使いました。
準備
-
micro:bit 用の環境を揃える
- 以下を参考に, Arduino IDE で micro:bit 用のスケッチを,コンパイル,書き込みできるようにします。
-
Button2をインストールします。
-
https://github.com/LennartHennigs/Button2 にうつり,[Clone or download] で zip をダウンロード, Arduino IDE スケッチ - ライブラリをインクルード - .ZIP形式のライブラリをインストールします。
試してみる
Arduino IDE で,スケッチ例 - Button2 - MultiHandler を選びます。
ボタン定義部分を以下のように書き換えます。
変更前
#define BUTTON_A_PIN 2
/////////////////////////////////////////////////////////////////
Button2 buttonA = Button2(BUTTON_A_PIN);
変更後
// #define BUTTON_A_PIN 2
/////////////////////////////////////////////////////////////////
Button2 buttonA = Button2(PIN_BUTTON_A);
- 実行結果
micro:bit 用の環境を揃える
- 以下を参考に, Arduino IDE で micro:bit 用のスケッチを,コンパイル,書き込みできるようにします。
Button2をインストールします。
- https://github.com/LennartHennigs/Button2 にうつり,[Clone or download] で zip をダウンロード, Arduino IDE スケッチ - ライブラリをインクルード - .ZIP形式のライブラリをインストールします。
Arduino IDE で,スケッチ例 - Button2 - MultiHandler を選びます。
ボタン定義部分を以下のように書き換えます。
#define BUTTON_A_PIN 2
/////////////////////////////////////////////////////////////////
Button2 buttonA = Button2(BUTTON_A_PIN);
// #define BUTTON_A_PIN 2
/////////////////////////////////////////////////////////////////
Button2 buttonA = Button2(PIN_BUTTON_A);
- 実行結果
1回押し,2回押し,3回押し,長押ししてみました。
良いようです。他のスケッチ例も動きました。
チャタリングの処理,2回押し等は,結構面倒なのですが,Button2を使うことで簡単に実装できますね。
いわゆるオフトリガー(=はなしたら反応する)なので,オントリガーを必要とする場合はダメですが...
micro:bitの上記スケッチで,3692バイトでした。
参考URL
https://github.com/LennartHennigs/Button2
https://ht-deko.com/arduino/microbit.html
Author And Source
この問題について(Button2でチャタリング除去,(ダブルクリック等の)スイッチ処理), 我々は、より多くの情報をここで見つけました https://qiita.com/numeru55/items/7383963217ea62619bce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .