plusieurs mesures dans une boucle principale = bug

j'effectue plusieurs mesures dans ma boucle principale, une mesure de température et une mesure de tr/min, par contre je me suis aperçu que cela causait des erreur de mesures sur les tr/min, en effet meme à l'arret, des valeurs de tr/min apparaissent de temps en temps.

voici le bout de code :

// Thermocouple
  double c = thermocouple.readCelsius();
  if (isnan(c)) {
   Serial.println("Something wrong with thermocouple!");
   } else {
   Serial.println(c);
   delay (1000);
   }
  
   // Tachymetre
   if (rpmcount >= 100 && StartValue == HIGH){                            // Initialise tous les 100 Tours
    rpm = 1000000*60/(micros() - timeold)*rpmcount;
    timeold = micros();
    rpmcount = 0;
    Serial.println(rpm, DEC);
  }

Et lorsque je supprime la partie liée à la température, plus de problème.

Comment est il possible de réaliser plusieurs mesures simultanément sans problème ?

Merci pour votre aide.

bonjour,
mets le code entier.
il manque des trucs.

voilà

//Bibliothèques
#include <SPI.h>
#include "Adafruit_MAX31855.h"


// Déclaration des broches 

#define DO   5                                // Thermocouple
#define CS   6
#define CLK  7
Adafruit_MAX31855 thermocouple(CLK, CS, DO);


// Initialisation des variables

volatile word rpmcount;                     // Tachymetre
unsigned long rpm;
unsigned long timeold;


// Réglages

void setup(){
  Serial.begin(9600);                       // Initialise la connexion
  
  attachInterrupt(0, rpm_fun, RISING);      // Tachy
  rpmcount = 0;                         
  rpm = 0;                              
  timeold = 0;                          
  
  delay(500);
  }
  
void loop() {

   
  // Thermocouple
  double c = thermocouple.readCelsius();
  if (isnan(c)) {
   Serial.println("Something wrong with thermocouple!");
   } else {
   Serial.println(c);
   delay (1000);
   }
  
   // Tachymetre
   if (rpmcount >= 100 && StartValue == HIGH){                            // Initialise tous les 100 Tours
    rpm = 1000000*60/(micros() - timeold)*rpmcount;
    timeold = micros();
    rpmcount = 0;
    Serial.println(rpm, DEC);
  }
    
 
}

void rpm_fun()
{
  rpmcount++;
  //Each rotation, this interrupt function is run
}

pourquoi mettre ces variables dans le setup alors quelles sont déjà mises avant?

  rpmcount = 0;                         
  rpm = 0;                              
  timeold = 0;

tu as quoi comme carte arduino?
liste des pins avec interrupt

une mega.

Oui j'ai lu tout ce qu'il avait sur cette fonction mais ce qui est bizar c'est que la lecture du rpm affiche 0 sans la partie thermocouple mais dès que je rajoute cette partie , j'ai des valeurs aléatoire qui apparaissent en rpm à l’arrêt

c'est bon , plus d'erreur, un problème de connectique je pense.