Skip to content
Draft
50 changes: 50 additions & 0 deletions examples/Unit_Encoder_M5Unified/Unit_Encoder_M5Unified.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#include <M5Unified.h>
#include <Unit_Encoder.h>

M5Canvas canvas(&M5.Display);
Unit_Encoder sensor;

void setup() {
auto cfg = M5.config();
cfg.clear_display = true;
cfg.serial_baudrate = 115200;
M5.begin(cfg);
int ex_sda = M5.getPin(m5::ex_i2c_sda);
int ex_scl = M5.getPin(m5::ex_i2c_scl);
if (ex_sda >= 0 && ex_scl >= 0) {
sensor.begin(&Wire, ENCODER_ADDR, ex_sda, ex_scl); // I2C address for encoder: 0x40 (ENCODER_ADDR defined in Unit_Encoder.h)
} else {
sensor.begin(&Wire);
}
canvas.createSprite(M5.Display.width(), 80);
canvas.setTextSize(2);
}

signed short int last_value = 0;

void loop() {
signed short int encoder_value = sensor.getEncoderValue();
bool btn_status = sensor.getButtonStatus();
if (last_value != encoder_value) {
Serial.println(encoder_value);
if (last_value > encoder_value) {
sensor.setLEDColor(1, 0x000011);
} else {
sensor.setLEDColor(2, 0x111100);
}
last_value = encoder_value;
} else {
sensor.setLEDColor(0, 0x001100);
}
if (!btn_status) {
sensor.setLEDColor(0, 0xC800FF);
}
canvas.fillSprite(BLACK);
canvas.setCursor(0, 0);
canvas.print("BTN: ");
canvas.println(btn_status);
canvas.print("ENC: ");
canvas.println(encoder_value);
canvas.pushSprite(0, 0);
delay(20);
}
2 changes: 1 addition & 1 deletion library.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"type": "git",
"url": "https://github.com/m5stack/M5Unit-Encoder.git"
},
"version": "0.0.2",
"version": "0.0.3",
"frameworks": "arduino",
"platforms": "espressif32"
}
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=M5Unit-Encoder
version=0.0.2
version=0.0.3
author=M5Stack
maintainer=M5Stack
sentence=Library for M5Stack Unit Encoder
Expand Down