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

    analogRead on M5Atom

    Scheduled Pinned Locked Moved Atom
    3 Posts 3 Posters 13.0k 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.
    • S Offline
      sbollaerts
      last edited by

      Hello, I'm trying to make analog readings on pin "G33" and "G23".

      • When I do analogRead(33), I get the same values whatever I send the signal on G33 or G23
      • When I do analogRead(23), I receive no signal on G33 and G23

      What am I missing?

      #if !defined(ARDUINO_M5Stick_C)
      #error Wrong target platform (M5StickC - M5Atom)
      #endif

      #include "M5Atom.h"
      #include "pixelTypes.h"

      uint8_t pinNorth = 33;
      //uint8_t pinSouth = 19;

      void setup()
      {
      M5.begin(false, false, true);
      Serial.begin(115200);
      }

      void loop()
      {
      int readValue;
      int ledValue;

      // Read the North pin
      readValue = analogRead(pinNorth);
      ledValue = map(readValue, 0, 4095, 0, 255);
      Serial.print("- North: ");
      Serial.print(readValue);
      Serial.print(" -> ");
      Serial.println(ledValue);

      M5.dis.drawpix(2, ledValue);
      M5.dis.drawpix(6, ledValue);
      M5.dis.drawpix(7, ledValue);
      M5.dis.drawpix(8, ledValue);

      delay(10);

      // Read the South pin
      // readValue = analogRead(pinSouth);
      // ledValue = map(readValue, 0, 4095, 0, 255);
      //
      // Serial.print("- South: ");
      // Serial.print(readValue);
      // Serial.print(" -> ");
      // Serial.println(ledValue);
      //
      // M5.dis.drawpix(16, ledValue);
      // M5.dis.drawpix(17, ledValue);
      // M5.dis.drawpix(18, ledValue);
      // M5.dis.drawpix(22, ledValue);
      //
      // Serial.println("");
      // delay(10);
      }

      A 1 Reply Last reply Reply Quote 0
      • A Offline
        AndyT @sbollaerts
        last edited by AndyT

        @sbollaerts

        Are you usiing a gpio that does not have a ADC?

        Ah yes GPIO19 is not an ADC pin.
        here is a picture of the pins of the M5Stack
        https://www.instructables.com/Automation-With-SIM800L-ESP32-M5Stack/
        PINS 35 or 36 are the ADC's

        /

        1 Reply Last reply Reply Quote 0
        • felmueF Offline
          felmue
          last edited by felmue

          Hello @sbollaerts

          there is only one analog input available on the M5Atom Matrix: GPIO34 which is shared with GPIO23.

          Please check out M5AtomMatrix Schematic

          In order to use the analog input you'll need to set GPIO34 as input and disable pullup/pulldown resistors of GPIO23.

          Below code works for me:

          #include <M5Atom.h>
          
          void setup()
          {
            M5.begin(true, false, true);
          
            pinMode(GPIO_NUM_34, INPUT);
            gpio_pulldown_dis(GPIO_NUM_23);
            gpio_pullup_dis(GPIO_NUM_23);
          }
          
          void loop()
          {
            Serial.printf("GPIO34: %d\n", analogRead(GPIO_NUM_34));
            delay(1000);
          }
          

          Update: I just realised that GPIO33 can also be used as analog input.

            pinMode(GPIO_NUM_33, INPUT);
            Serial.printf("GPIO33: %d\n", analogRead(GPIO_NUM_33));
          

          Cheers
          Felix

          GPIO translation table M5Stack / M5Core2
          Information about various M5Stack products.
          Code examples

          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