pdf-icon

Encoder

M5Dial Encoder旋转编码器相关API与案例程序。

案例程序


#include "M5Dial.h"

void setup() {
    auto cfg = M5.config();
    M5Dial.begin(cfg, true, false);
    M5Dial.Display.setTextColor(GREEN);
    M5Dial.Display.setTextDatum(middle_center);
    M5Dial.Display.setTextFont(&fonts::Orbitron_Light_32);
    M5Dial.Display.setTextSize(2);
}

long oldPosition = -999;

void loop() {
    M5Dial.update();
    long newPosition = M5Dial.Encoder.read();
    if (newPosition != oldPosition) {
        M5Dial.Speaker.tone(8000, 20);
        M5Dial.Display.clear();
        oldPosition = newPosition;
        Serial.println(newPosition);
        M5Dial.Display.drawString(String(newPosition),
                                  M5Dial.Display.width() / 2,
                                  M5Dial.Display.height() / 2);
    }
    if (M5Dial.BtnA.wasPressed()) {
        M5Dial.Encoder.readAndReset();
    }
    if (M5Dial.BtnA.pressedFor(5000)) {
        M5Dial.Encoder.write(100);
    }
}

begin

函数原型:

void begin();

功能说明:

  • 初始化编码器IO

可通过调用M5Dial.begin时设置参数enableEncoder为true一同初始化。

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