Réinitialisation auto du code et insertion d'une commande interrupteur

Bonjour, je viens de réaliser un programmes que je souhaiterais compiler.
Tout d’abord le premier qui consiste à recevoir le poids donné par une balance en RS232 lorsque l’on appuie sur le bouton transfert de la balance et le comparer à une donnée. j’ai déjà un soucis dessus, c’est que je n’arrive pas à le réinitialiser le code pour qu’il marche avec une seconde impulsion du bouton sur la balance. Les variables ne se réinitialisent pas et du coup j’obtiens n’importe quoi :

char inData[10]; // Allocate some space for the string
char inChar; // Where to store the character read
byte index = 0;// Index into array; where to store the character
int result1;
int result2;
int result3;
int result4;
int total;
int portePin = 7; // sortie ouverture porte
int interPin = 6; // entrée interrupteur

void setup()
{
  pinMode(portePin, OUTPUT);
  pinMode(interPin, INPUT);
  Serial.begin(9600);
}

void loop()
{

  

  while(Serial.available() > 0) // Don't read unless
                                                 // there you know there is data
  {
      if(index < 9) // One less than the size of the array
      {
          inChar = Serial.read(); // Read a character
          inData[index] = inChar; // Store it
          index++; // Increment where to write next
          inData[index] = '\0'; // Null terminate the string
            
      }
      if(index == 9) 
      {
      Serial.print(inData[4]);
      Serial.print(inData[5]);
      Serial.print(inData[6]);
      Serial.print(inData[7]);
      Serial.println(inData[8]);
      result1 = inData[4]-'0'; //conerti le chiffre char en chiffre int
      if(result1 == -16){
        result1 = 0;
        }
      Serial.println(result1);
      result2 = inData[5]-'0';
      Serial.println(result2);
      result3 = inData[7]-'0';
      Serial.println(result3);
      result4 = inData[8]-'0';
      Serial.println(result4);
      total = result1,result2;
      Serial.println(total);
      index++;

 if(result1==0 && result2==1 && result3==1) // si le poids est de type 01.1x c'est bon
     {
             Serial.println("c'est gagné");

// ouvertporte :
        digitalWrite(portePin, HIGH);  // ouverture de la porte
        delay(5000);
        digitalWrite(portePin, LOW); //fermeture après 5s
    }

      }    
}


}

Ensuite je voudrais insérer une commande pour que l’on puisse ouvrir la porte également en appuyant sur un interrupteur. Est-ce qu’en mettant un if (inter =HIGH) en haut avec un goto ouvertporte; ca peut aller ?

Le principal problème est quand même que le code ne marche qu’une fois …

Merci d’avance.

Yep!

Demande-toi déjà quelle variable tu veux réinitialiser et à quel moment ?

Je ne vois aucune procédure dans ton code qui va dans ce sens.

@+

Zoroastre.

PS : Tu as déjà ouvert un sujet sur ton projet, tu pouvais y rester, pas besoin de multiplier les posts.

Oui j'avais un problème avec mon téléphone il ne voulais pas reprendre le post d'avant...

J'ai essayé de mettre cela à la fin mais ce n'est pas encore correct :

inData[4]=NULL;
inData[5]=NULL;
inData[7]=NULL;
inData[8]=NULL;
inChar=NULL;
index = 0;
result1=NULL;
result2=NULL;
result3=NULL;
result4=NULL;
total=NULL;
Serial.println("variables réinitialisées");