57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
// 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();
|
|
}
|
|
|
|
} |