Monitoreo de la frecuencia cardíaca y la temperatura con arduino nano

que hay, gente que lo sabe todo, tengo un problema. estoy realizando un proyecto de monitoreo del pulso cardiaco y la temperatura, como sensores de prueba estoy usando un sensor de pulsos (ese que tiene estampado un corazon) y el conocido LM35, a lo que voy es que necesito que ambos esten midiendo en un solo arduino (nano), cuando combino ambos codigos y trato de enlazar ambos codigos, la temperatura no la mide, cambia de manera repentina y bueno el sensor de pulsos, no me detecta mas de 10 bpm (latidos por minuto), este codigo lo hice buscando programas de por ahi para la temperatura y la frecuencia cardiaca. necesito solucionar este problema pues es para mi proyecto. y nose si tiene que ver que el arduino sea nano o uno, que los sensores sean anologos y se cruzen o quiza este mal el codigo. bueno espero que me ayuden con este problema.

aqui el codigo:

bool BPMTiming=false;
bool BeatComplete=false;
int LastTime=0;
int BPM=0;
 
#define UpperThreshold 550
#define LowerThreshold 500


float tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)
int tempPin = 1; // Variable del pin de entrada del sensor (A1)

void setup() {
  analogReference(INTERNAL);
  Serial.begin(9600);
}
 
 
void loop() 
{
 
  int value=analogRead(0);
  // calc bpm
  
  if(value>UpperThreshold)
  {
    if(BeatComplete)
    {
      BPM=millis()-LastTime;
      BPM=int(60/(float(BPM)/1000));
      BPMTiming=false;
      BeatComplete=false;
    }
    if(BPMTiming==false)
    {
      LastTime=millis();
      BPMTiming=true;
    }
  }
  if((value<LowerThreshold)&(BPMTiming))
    BeatComplete=true;
    // output bpm to serial monitor
  Serial.print(BPM);
  Serial.println(" BPM");
  delay(1000);

    // Lee el valor desde el sensor
    tempC = analogRead(tempPin); 

    // Convierte el valor a temperatura
    tempC = (1.1 * tempC * 100.0)/1024.0; 

    // Envia el dato al puerto serial
    Serial.print(tempC);
    Serial.print(" grados Celsius\n");

    // Espera cinco segundo para repetir el loop
    delay(1000);
}

Prueba a ver estas correcciones mínimas

#define UpperThreshold 550
#define LowerThreshold 500

bool BPMTiming    = false;
bool BeatComplete = false;
int LastTime      = 0;
int BPM           = 0;

float tempC;                  // Variable para almacenar el valor obtenido del sensor (0 a 1023)
int tempPin       = 1;        // Variable del pin de entrada del sensor (A1)

void setup() {
  analogReference(INTERNAL);
  Serial.begin(9600);
}
 
 
void loop() {
 
  int value = analogRead(A0); 

  // calc bpm
  if (value>UpperThreshold)   {
      if (BeatComplete) {
          BPM = millis()-LastTime;
          BPM = int(60/(float(BPM)/1000));
          BPMTiming =false;
          BeatComplete =false;
      }
      if (BPMTiming == false) {
          BPMTiming = true;
          LastTime  = millis();
      }
  }

  if (value < LowerThreshold & BPMTiming) {
      BeatComplete = true;
      // output bpm to serial monitor
      Serial.print(BPM);
      Serial.println(" BPM");
      // Lee el valor desde el sensor
      // Convierte el valor a temperatura

      tempC = 110 * analogRead(tempPin) /1024.0; 

      // Envia el dato al puerto serial
      Serial.print(tempC);
      Serial.print(" grados Celsius\n");

      // Espera 1 segundo para repetir el loop
      delay(1000);
  }
}

Tambien lee el Privado que te envié para que editas la imagen adjunta.