// manually define all the An ports on ESP32 board #if defined(ESP32) #define A0 (36) #define A1 (39) #define A2 (34) #define A3 (35) #define A4 (32) #define A5 (33) #endif // define the divident of sizeof()'s return value #if defined(ESP32) #define SIZE_DIV 4 // for esp32, the resolution is doubled than the usual arduino board, so we double the factor, too #else #define SIZE_DIV 2 #endif #define WAIT_TIME 1000UL #define SENSOR1 36 // FILE *f = fopen("file.txt", "w"); int pins[] = {A0, A1, A2, A3, A4, A5}; int i, j; unsigned long currTime; // non-blocking time tracker void setup() { Serial.begin(19200); currTime = millis(); analogReadResolution(12); // adcAttachPin(A0); // analogSetClockDiv(255); } void loop() { // we might need analogSetAttenuation to make the measurement more accurate and less noisy? if (millis() - currTime >= WAIT_TIME) { // non-blocking time delay // Serial.println(); Serial.print("["); for (i = 0; i < sizeof(pins)/SIZE_DIV; i++) { // float volts = analogRead(pins[i]); // float result = volts * 3.3 / 4095; // Serial.print(result); float volts = analogReadMilliVolts(pins[i]); Serial.print(volts); // Serial.print(61319 * (3.3/volts - 1)); if (i != sizeof(pins)/SIZE_DIV - 1) { Serial.print(", "); } } Serial.println("]"); // Serial.println(analogReadMilliVolts(SENSOR1)); currTime = millis(); } }