Hallo,
die erste Schleife soll solange laufen, bis mein Interwall von 5 Sekunden abgelaufen ist. Danach (else) soll die aktuelle Zeit als vorherige gespeichert werden und die erste Schleife wieder solange durchlaufen werden, bis meine 5 Sek abgelaufen sind. Hier das Prog:
#include <DFRobot_MAX30102.h>
DFRobot_MAX30102 particleSensor;
float Signalmax = 1;
float Signalpeak = 1;
float DC;
float AC;
float Summeinterwall = 0;
float Signal;
float Durchgang;
float Perfusionsindex;
float Signalmin;
float previousMillis;
void setup() {
Serial.begin(115200);
while (!particleSensor.begin()) {
Serial.println("MAX30102 was not found");
delay(1000);
}
particleSensor.sensorConfiguration(/*ledBrightness=*/0x1F, /*sampleAverage=*/SAMPLEAVG_4, \
/*ledMode=*/MODE_MULTILED, /*sampleRate=*/SAMPLERATE_400, \
/*pulseWidth=*/PULSEWIDTH_411, /*adcRange=*/ADCRANGE_4096);
}
void loop() {
// function1
Signal = (particleSensor.getRed());
unsigned long currentMillis = millis();
const long interval = 5000;
if (currentMillis - previousMillis <= interval)
{
Serial.print("im Interwall");
Serial.print('\n');
if (Signal>Signalmax) { Signalmax = Signal; }
if (Signal<Signalmin) { Signalmin = Signal; }
Summeinterwall = Summeinterwall + Signal;
Durchgang = Durchgang +1;
Serial.print(Summeinterwall);
Serial.print(Durchgang);
Serial.print('\n');
}
else
{ Signalmax = Signalpeak;
Serial.print("Interwall abgelaufen");
Serial.print('\n');
DC = (Signalpeak - (Summeinterwall/Durchgang))*2;
Serial.print(DC);
AC = Signalpeak - DC;
Serial.print(AC);
Perfusionsindex = (AC/DC)*100;
Serial.print("Perfusionsindex");
Serial.print(Perfusionsindex);
Serial.print('\n');
Signalmax = 1; Summeinterwall =1; Durchgang = 0;}
previousMillis = currentMillis;
Serial.print("Aktuelle Zeit auf vorherige gesetzt");
Serial.print('\n');
}
Seltsamerweise bekomme ich aber folgendes im seriellen Monitor:
Aktuelle Zeit auf vorherige gesetzt
im Interwall
2584380.001446.00
Aktuelle Zeit auf vorherige gesetzt
im Interwall
2586232.001447.00
Aktuelle Zeit auf vorherige gesetzt
im Interwall
2588076.001448.00
Aktuelle Zeit auf vorherige gesetzt
Jemand eine Idee?