1

sorry to ask this but I am very very new to Arduino. My project aims to collect the skin temperature by 18B20 and the heart rate & SPO2 level by MAX30100. I have tested the codes for the respective sensors and they work fine, but when i am trying to merge these two codes together, only 18B20 works and 30100 isn't delivering any information (Heart rate:0.00bpm / SpO2:0%). Is there a way to combine these two codes? Thank you very much!

Code of 18B20

#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into digital pin 2 on the Arduino #define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire device OneWire oneWire(ONE_WIRE_BUS);

// Pass oneWire reference to DallasTemperature library DallasTemperature sensors(&oneWire);

void setup(void) { sensors.begin(); // Start up the library Serial.begin(9600); }

void loop(void) { // Send the command to get temperatures sensors.requestTemperatures();

//print the temperature in Celsius Serial.print("Temperature: "); Serial.print(sensors.getTempCByIndex(0)); Serial.print((char)176);//shows degrees character Serial.print("C | ");

delay(500); }

Code of 30100

#include <Wire.h>
#include "MAX30100_PulseOximeter.h"

#define REPORTING_PERIOD_MS 1000

PulseOximeter pox; uint32_t tsLastReport = 0;

void onBeatDetected() { Serial.println("Beat!"); }

void setup() { Serial.begin(115200); Serial.print("Initializing pulse oximeter..");

// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin()) {
    Serial.println(&quot;FAILED&quot;);
    for(;;);
} else {
    Serial.println(&quot;SUCCESS&quot;);
}
 pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);

// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);

}

void loop() { // Make sure to call update as fast as possible pox.update(); if (millis() - tsLastReport > REPORTING_PERIOD_MS) { Serial.print("Heart rate:"); Serial.print(pox.getHeartRate()); Serial.print("bpm / SpO2:"); Serial.print(pox.getSpO2()); Serial.println("%");

    tsLastReport = millis();
}

}

Isaac
  • 11
  • 1

0 Answers0