概要
M5Stack社のユニット紹介シリーズです。今回はボタンユニット。一番地味な?ユニットですね、、、
商品

- M5Stack用ボタンユニット(スイッチサイエンス)
- Mini Button Unit(公式ストア)
単純なユニットなので、かなり安いですね。

インは普通に外側みたいです。

こんな感じのボタンになっています。M5StickCのBtnAと同じような感じになっていて、押すとカチカチ音がします。
スケッチ例
const int button = 33; // M5StickC
void setup() {
Serial.begin(115200);
pinMode(button, INPUT);
}
void loop() {
Serial.println(digitalRead(button));
delay(100);
}
GPIOの値を単純に読み取って、押すとLOW(0)になるのを確認します。
M5StickCのボタンクラスを使う
#include <M5StickC.h>
const int button = 33; // M5StickC
Button BtnGrove = Button(button, true, DEBOUNCE_MS);
void setup() {
M5.begin();
}
void loop() {
BtnGrove.read();
if (BtnGrove.wasPressed()) {
Serial.println("wasPressed");
} else if (BtnGrove.wasReleased()) {
Serial.println("wasReleased");
}
delay(100);
}
こんな感じになります。ただこのクラスは内部処理でプルアップしているのが気になるので非推奨です。
元になったライブラリを見てみたら、AVR用なので使うと警告でるんですよね。過去のPRみたらAVR用を消してくれと出ていましたが、リジェクトされていました。
まとめ
ちょっと離れた場所にボタンを設置したい場合には非常に便利なボタンです。値段も安いので持っていてもいいのかな?



コメント