🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Unit 8 encoder

    Scheduled Pinned Locked Moved Units
    1 Posts 1 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K Offline
      kazooz.igloos
      last edited by

      Hi

      Im trying to use the unit 8 encoder with M5 Paper. I want to get the LED to change colour with pressing the rotary dial in using getbuttonstatus. I have managed to record the button press however it returns to its previous state without repressing the button. Any advice where Im going wrong?

      Here is my code:

      #include "UNIT_8ENCODER.h"
      #include <M5EPD.h>

      UNIT_8ENCODER sensor;
      M5EPD_Canvas canvas(&M5.EPD);

      int32_t encoder[8] = {0};
      uint8_t btn_status[8] = {0};

      void show_encoder_value(void) {

      for (int i = 0; i < 8; i++) {

          btn_status[i] = sensor.getButtonStatus(i);
            encoder[i] = sensor.getEncoderValue(i);
      

      }
      if (btn_status[i] ==true) {
      sensor.setLEDColor(i, 0x00ff00);
      }
      else {
      sensor.setLEDColor(i, 0xff0000);
      }
      }
      }

      void setup() {
      sensor.begin(&Wire, ENCODER_ADDR, 25, 32, 100000UL);
      M5.begin(true,true,true,true,true);
      M5.RTC.begin();
      M5.EPD.SetRotation(90);
      M5.EPD.Clear(true);
      canvas.createCanvas(540, 960);
      }

      void loop() {
      // put your main code here, to run repeatedly:
      show_encoder_value();

      canvas.setTextSize(3);
      

      canvas.drawString(String(encoder[0]), 60, 30);
      canvas.drawString(String(encoder[1]), 125, 30);
      canvas.drawString(String(encoder[2]), 190, 30);
      canvas.drawString(String(encoder[3]), 255, 30);
      canvas.drawString(String(encoder[4]), 60, 60);
      canvas.drawString(String(encoder[5]), 125, 60);
      canvas.drawString(String(encoder[6]), 190, 60);
      canvas.drawString(String(encoder[7]), 255, 60);

       canvas.drawString(String(btn_status[0]), 60, 130);
      canvas.drawString(String(btn_status[1]), 125, 130);
      canvas.drawString(String(btn_status[2]), 190, 130);
      canvas.drawString(String(btn_status[3]), 255, 130);
      canvas.drawString(String(btn_status[4]), 60, 160);
      canvas.drawString(String(btn_status[5]), 125, 160);
      canvas.drawString(String(btn_status[6]), 190, 160);
      canvas.drawString(String(btn_status[7]), 255, 160);
      canvas.pushCanvas(0, 0, UPDATE_MODE_DU4);
      

      delay(100);

      }

      Thanks

      David

      1 Reply Last reply Reply Quote 0

      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

      With your input, this post could be even better 💗

      Register Login
      • First post
        Last post