analogRead on M5Atom
-
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);
} -
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/
-
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
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