const uint8_t sensorPins[] = {A0, A1, A2};
const uint8_t sensoranzahl = sizeof sensorPins / sizeof * sensorPins;
const uint8_t maxProben = 60;
int proben[maxProben][sensoranzahl];
uint8_t aktuellerProbenindex = 0;
enum {PROBENAHME, SENDEN} buhne = PROBENAHME;
const unsigned long probenahmezeitraum = 1000; // Millisekunde => 1s
unsigned long letzteProbenahmezeit;
void setup() {
Serial.begin(115200); Serial.println();
letzteProbenahmezeit = -probenahmezeitraum;
}
void loop() {
switch (buhne) {
case PROBENAHME:
if (millis() - letzteProbenahmezeit >= probenahmezeitraum) {
for (uint8_t i = 0; i < sensoranzahl; i++) {
proben[aktuellerProbenindex][i] = analogRead(sensorPins[i]);
proben[aktuellerProbenindex][i] = analogRead(sensorPins[i]); // Doppeltes Ablesen, um den korrekten Wert sicherzustellen
}
letzteProbenahmezeit += probenahmezeitraum;
if (++aktuellerProbenindex >= maxProben) buhne = SENDEN;
}
break;
case SENDEN:
for (uint8_t s = 0; s < maxProben; s++) {
Serial.write('#');
Serial.print(s);
Serial.write('\t');
for (uint8_t i = 0; i < sensoranzahl; i++) {
Serial.print(proben[s][i]);
if (i != sensoranzahl - 1) Serial.write('\t'); else Serial.println();
}
}
Serial.flush();
letzteProbenahmezeit = millis() - probenahmezeitraum;
aktuellerProbenindex = 0;
buhne = PROBENAHME;
break;
}
}