M5Stack ボタンユニット

概要

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

商品

単純なユニットなので、かなり安いですね。

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

こんな感じのボタンになっています。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用を消してくれと出ていましたが、リジェクトされていました。

まとめ

ちょっと離れた場所にボタンを設置したい場合には非常に便利なボタンです。値段も安いので持っていてもいいのかな?

コメントする

メールアドレスが公開されることはありません。

管理者承認後にページに追加されます。公開されたくない相談はその旨本文に記載するかTwitterなどでDM投げてください。またスパム対策として、日本語が含まれない投稿は無視されますのでご注意ください。