Arduino入門
Dial Encoder に関連する API とサンプルプログラム。
#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 にリセットされます。
関数プロトタイプ:
void begin();
機能説明:
M5Dial.begin()
を呼び出す際、パラメータ enableEncoder
を true
に設定すると同時に初期化できます。
M5Dial.begin(m5::M5Unified::config_t cfg, bool enableEncoder, bool enableRFID);
入力パラメータ:
戻り値:
関数プロトタイプ:
int32_t read();
機能説明:
入力パラメータ:
戻り値:
関数プロトタイプ:
void write(int32_t p);
機能説明:
入力パラメータ:
戻り値:
関数プロトタイプ:
int32_t readAndReset();
機能説明:
入力パラメータ:
戻り値: