Navigation

    M5Stack Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. New_Comix
    3. Posts
    N
    • Continue chat with New_Comix
    • Start new chat with New_Comix
    • Flag Profile
    • Profile
    • Following
    • Followers
    • Blocks
    • Topics
    • Posts
    • Best
    • Groups

    Posts made by New_Comix

    • Core 2 and Faces Bottom II compatible?

      Hi,

      I am thinking about moving from Core to Core 2 as the on/off button and buttons A/B/C are not very reliable. I've developed an application using the Faces bottom. My question is: are Core 2 and Faces bottom are compatible? Since I saw the hint about the battery, I am a little bit concerned.

      Many thanks in advance
      Jörg

      posted in Core 2
      N
      New_Comix
    • RE: Rotary encoder on M5Stack - interrupts?

      Hi,

      sorry about the delay in answering, but I have been really busy with my real life job.

      The rotary encoder (ALPS STEC12E07) is connected to pins 2 and 3 of the M5Stack and GND.

      I also have used pins 22 and 23 in the past, but those can crash the app as soon as you are using the TFT of the M5Stack (looked into the header files of M5Stack and found that pin 22 is connected to the TFT).

      I am using the following code, which you can find in variations on the web:

      /* Read Quadrature Encoder
      Connect Encoder to Pins encoder0PinA, encoder0PinB, and +5V.

      Sketch by max wolf / www.meso.net
      v. 0.1 - very basic functions - mw 20061220

      */

      int encoder0PinA = 2;
      int encoder0PinB = 3;

      int encoderPos = 0;
      int lastReportedPos = 0;

      int aValue = LOW;
      int bValue = LOW;
      int aValueLast = LOW;

      void setup() {
      pinMode (encoder0PinA, INPUT);
      pinMode (encoder0PinB, INPUT);
      digitalWrite(encoder0PinA, LOW);
      digitalWrite(encoder0PinB, LOW);

      encoderPos = 2000;

      Serial.begin (115200);

      }

      void loop() {

      delay(5);

      aValue = digitalRead(encoder0PinA);
      bValue = digitalRead(encoder0PinB);

      if ((aValue != aValueLast) && (aValue == LOW)) { //knob rotated, when aValues changes, BUT use only if aValue is LOW

      if (bValue == LOW) {
        encoderPos++;
      } else {
        encoderPos--;
      }
      

      }

      aValueLast = aValue;

      if(lastReportedPos != encoderPos)
      {

       Serial.print("Position: ");
       Serial.println(encoderPos, DEC);
      
        lastReportedPos = encoderPos;
      

      }

      The code works from time to time, but its not reliable on the M5Stack. Tomorrow I will buy another rotary encoder just to exclude any hardware issues.

      Kind regards
      Jörg

      posted in Lessons and Guides
      N
      New_Comix
    • Rotary encoder on M5Stack - interrupts?

      Hi,

      I am using an M5Stack to develop a WiFi throttle for model trains. All works fine and I can connect and drive a locomotive whilst being connected to a Märklin CS3.

      However I am struggling to use a rotary encoder to control the speed. My current code is not using interrupts and struggling with bouncing. I am trying to use interrupts, but to me it looks like those are not recognized.

      I suspect I am not using the right ports. Any hint would be welcome.

      Many thanks in advance

      Jörg

      posted in Lessons and Guides
      N
      New_Comix