Как объединить функционал двух кодов(не трогая вычисления). Я новичок в прогромировании, помогите пожалуйста:
Это первый:
#include <LiquidCrystal.h>
#include <Wire.h>
#include “MAX30100_PulseOximeter.h”
// LCD pins connections
LiquidCrystal lcd(12, 11, 10, 9, 8, 13);
// MAX30100 Pulse Oximeter instance
PulseOximeter pox;
// Analog pin for voltage divider
const int voltageDividerPin = A0;
// IR LED and phototransistor pins
const int irLEDPin = 10;
const int phototransistorPin = 11;
// Serial communication for debugging and data output
const int debugSerialSpeed = 9600;
const int oximeterSerialSpeed = 115200;
void setup() {
Serial.begin(debugSerialSpeed);
lcd.begin(16, 2);
Serial.print(“Initializing LCD…”);
lcd.clear();
lcd.print(“Init…”);
delay(3000);
lcd.clear();
lcd.print(“OK”);
Serial.begin(oximetermSerialSpeed);
Serial.print(“Initializing pulse oximeter…”);
lcd.setCursor(0, 1);
lcd.print(“Init…”);
delay(3000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print(“OK”);
// Initialize the PulseOximeter instance
if (!pox.begin()) {
Serial.println(“FAILED”);
while (1) delay(10);
} else {
Serial.println(“SUCCESS”);
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);
}
// Set up the input pins for the voltage divider
pinMode(voltageDividerPin, INPUT);
}
void loop() {
// Update pulse oximeter data
pox.update();
if (millis() - pox.tsLastReport > 10000) { // Report data every 10 seconds
Serial.print(“Heart rate:”);
Serial.print(pox.getHeartRate());
Serial.print(“bpm / SpO2:”);
Serial.print(pox.getSpO2());
Serial.println(“%”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BPM : ");
lcd.print(pox.getHeartRate());
lcd.setCursor(0, 1);
lcd.print("SpO2: ");
lcd.print(pox.getSpO2());
lcd.print("%");
pox.tsLastReport = millis();
}
// Read voltage from the voltage divider and print to serial
int voltage = analogRead(voltageDividerPin);
Serial.print("Voltage: ");
Serial.println(voltage);
// Check for contact on the electrodes
if ((digitalRead(irLEDPin) == 1) || (digitalRead(phototransistorPin) == 1)) {
lcd.clear();
lcd.print(“!”);
} else {
// Nothing to do here, the LCD is updated in the pulse oximeter loop
}
// Small delay to prevent reading too often
delay(10);
}
void onBeatDetected() {
Serial.println(“Beat!”);
lcd.clear();
lcd.print(“Heart Beat!”);
}
Это второй:
void setup()
{
Serial.begin(9600);
// L0+ и L0-, подключенные на 10 и 11 пины, являются выходами детектора контактов электродов
pinMode(10, INPUT); // Настройка выхода L0-
pinMode(11, INPUT); // Настройка выхода L0+
}
void loop()
{
// При отсутствии контакта на одном из 3 электродов
// в мониторе порта будет отображаться “!” на месте
// отображения значения этого электрода
if((digitalRead(10) == 1)||(digitalRead(11) == 1))
{
Serial.println(‘!’);
}
else{
// отправка аналоговых значений с датчиков
Serial.println(analogRead(A0));
}
// Небольшая задержка для получения значений с электродов
delay(1);
}