sto acquisendo la pulse wave da un sensore ottico MAX30102 e da un sensore Hall contemporaneamente con questo codice ma poi quando li riporto su MATLAB il segnale fa schifo, qualcuno sa dirmi perchè?
#include <Wire.h>
#include "MAX30105.h"
MAX30105 particleSensor;
const int hallPin = A0;
const unsigned long interval = 10;
unsigned long previousMillis = 0;
unsigned long t;
float tensione_hall = 0.0f;
static long ir = 0;
static long red = 0;
void setup() {
Serial.begin(115200);
Wire.begin();
Wire.setClock(400000);
if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
Serial.println("MAX30102 non trovato. Controlla i collegamenti.");
while (1) { ; }
}
particleSensor.setup();
particleSensor.setSampleRate(100);
particleSensor.setPulseAmplitudeRed(0x1F);
particleSensor.setPulseAmplitudeIR(0x1F);
particleSensor.clearFIFO();
particleSensor.enableFIFORollover();
}
void loop() {
particleSensor.check();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
int hallValue = analogRead(hallPin);
tensione_hall = (hallValue / 1023.0f) * 5.0f;
while (particleSensor.available()) {
ir = particleSensor.getFIFOIR();
red = particleSensor.getFIFORed();
particleSensor.nextSample();
}
Serial.print(currentMillis);
Serial.print(" ");
Serial.print(tensione_hall);
Serial.print(" ");
Serial.print(ir);
Serial.print(" ");
Serial.println(red);
}
}