Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <M5Core2.h>
- #define Faces_Encoder_I2C_ADDR 0X5E
- int encoder_increment;
- int encoder_direction;
- int button_state;
- void setLed(int i, int r, int g, int b){
- Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
- Wire.write(i);
- Wire.write(r);
- Wire.write(g);
- Wire.write(b);
- Wire.endTransmission();
- }
- void getEncoderIncrement(void) {
- int temp_encoder_increment;
- Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
- if (Wire.available()) {
- temp_encoder_increment = Wire.read(); // get increment
- button_state = Wire.read(); // get button value
- }
- if (temp_encoder_increment > 127) {
- //anti-clockwise
- encoder_direction = 1;
- encoder_increment = 256 - temp_encoder_increment;
- } else{
- // clockwise
- encoder_direction = 0;
- encoder_increment = temp_encoder_increment;
- }
- }
- void setup() {
- M5.begin();
- Wire.begin();
- M5.Lcd.setTextFont(2);
- for (int i = 0; i < 12; i++) {
- setLed(i, 200, 100, 0);
- }
- }
- void loop() {
- uint8_t lines = 0;
- while(1) {
- // get status from encoder
- getEncoderIncrement();
- // print button/encoder status
- M5.Lcd.print("encoder: ");
- M5.Lcd.print(encoder_increment);
- M5.Lcd.print(" dir: ");
- if (encoder_direction) {
- M5.Lcd.print("cw");
- } else {
- M5.Lcd.print("ccw");
- }
- M5.Lcd.print(" button: ");
- M5.Lcd.println(button_state);
- delay(333);
- // clear screen after 15 lines
- lines++;
- if (lines >= 14) {
- M5.Lcd.fillScreen(0);
- M5.Lcd.setCursor(0, 0);
- lines = 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement