0

I'm trying to understand how to use Json with the ESP32 or Arduino. In the following code example the idea is to read the values from a potentiometer and display it on the Serial Monitor. I was expecting to see something like this when I am turning the potentiometer.

"Reading: 0,54,140,175,480,782"

"Reading: 600,523,320,175,48,2"

But I get this

"Reading: 54,54,54,54,54,54"

"Reading: 140,140,140,140,140,140"

#include <ArduinoJson.h>


void setup() {
  Serial.begin(9600);
}

void loop() {

  StaticJsonDocument<500> doc;

  JsonArray analogValues = doc.createNestedArray("analog");
  for (int pin = 0; pin < 6; pin++) {
  
    int value = analogRead(35);

    analogValues.add(value);
  }

 
  Serial.print(F("Reading: "));
  serializeJson(doc, Serial);
  Serial.println();

}

1 Answer 1

1

Your code will take 7 samples from the input pin very quickly - faster than it's likely you'll be able to change the potentiometer. You need to add a delay between the samples to give the potentiometer time to change. So:

  for (int pin = 0; pin < 6; pin++) {
  
    int value = analogRead(35);

    analogValues.add(value);
    delay(200);
  }

would wait 2 tenths of a second between taking samples.

To do some very basic debugging on this you could also confirm that the issues is the samples themselves and not the way you're handling JSON by outputting the sample values as you take them. In your original code this would be:

  for (int pin = 0; pin < 6; pin++) {
  
    int value = analogRead(35);

    Serial.println(value);
    analogValues.add(value);
  }

It's also possible that the act of outputting the samples might slow things down enough that you might start to see variation.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.