pdf-icon

Arduino入門

2. デバイス&サンプル

6. アプリケーション

Dial Encoder

Dial Encoder に関連する API とサンプルプログラム。

サンプルプログラム

ビルド要件

  • M5Stack ボードマネージャーバージョン >= 3.2.2
  • ボードオプション = M5Dial
  • M5Dial ライブラリバージョン >= 1.0.3
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include "M5Dial.h"

long oldPosition = -999;

void setup() {
  auto cfg = M5.config();
  M5Dial.begin(cfg, true, false);  // encoder, RFID

  M5Dial.Display.setTextColor(GREEN);
  M5Dial.Display.setTextDatum(middle_center);
  M5Dial.Display.setTextFont(&fonts::Orbitron_Light_32);
  M5Dial.Display.setTextSize(2);
}

void loop() {
  M5Dial.update();

  long newPosition = M5Dial.Encoder.read();
  if (newPosition != oldPosition) {
    M5Dial.Speaker.tone(8000, 20);
    M5Dial.Display.clear();
    M5Dial.Display.drawString(String(newPosition),
                              M5Dial.Display.width() / 2,
                              M5Dial.Display.height() / 2);
    oldPosition = newPosition;
  }

  if (M5Dial.BtnA.wasPressed()) {
    M5Dial.Encoder.readAndReset();
  }
  if (M5Dial.BtnA.pressedFor(5000)) {
    M5Dial.Encoder.write(100);
  }
}

コンパイルしてアップロードすると、画面にロータリーエンコーダの変化に追従する数字が表示されます。ボタンを短く押すと数字は 0 にリセットされ、ボタンを 5 秒間長押しすると数字は 100 にリセットされます。

begin

関数プロトタイプ:

void begin();

機能説明:

  • エンコーダ IO を初期化します。

M5Dial.begin() を呼び出す際、パラメータ enableEncodertrue に設定すると同時に初期化できます。

M5Dial.begin(m5::M5Unified::config_t cfg, bool enableEncoder, bool enableRFID);

入力パラメータ:

  • null

戻り値:

  • null

read

関数プロトタイプ:

int32_t read();

機能説明:

  • 現在のエンコーダ値を読み取ります。

入力パラメータ:

  • null

戻り値:

  • int32_t: 現在のエンコーダ値

write

関数プロトタイプ:

void write(int32_t p);

機能説明:

  • エンコーダ値を書き込み、更新します。

入力パラメータ:

  • int32_t p: 更新するエンコーダ値

戻り値:

  • null

readAndReset

関数プロトタイプ:

int32_t readAndReset();

機能説明:

  • 現在のエンコーダ値をリセットします。

入力パラメータ:

  • null

戻り値:

  • int32_t: リセット前のエンコーダ値
On This Page