Problème affichage dans moniteur

Bonsoir,
J'ai déjà posté récemment sur le forum pour poser une question bien spécifique, j'ai finalement résolu mon soucis personnellement mais là n'est pas la question.

J'ai travailler sur mon code ce soir mais celui ci réagi étrangement,
parfois lors que j'imprime une chaine de caractère, celui ci apparaît étrangement avec des caractères spéciaux non demandé.
Le programme à même fonctionné en boucle dans mon setup (ce n'est pas le code actuelle), je crois que tout est lié à ce que j'imprime dans le moniteur...

Je ne comprend pas du tout ce qu'il ce passe, j'ai modifié mon code à plusieurs reprise, ce qui lui donne désormais une forme assez étrange, je me suis dis que quelqu'un de la communauté comprendra sûrement mon soucis.

je précise que je ne suis qu'un amateur pour l'instant et je m'excuse d'avance, car l'erreur doit sûrement être simple mais je ne vois vraiment pas :slightly_frowning_face:

Merci d'avance pour votre aide !

int pinPR=A0; // Pin connecte la photoresistance
boolean remplissage; // variable qui est true si les donnees ne sont pas tout recu
boolean traitement; //variable qui est false tant que les donnees n'ont pas toute etaient recu ou si elle ont toute etait traite
boolean verification;
int valeurMin;
int ligne;
int valeurMax;
int compTest;

void setup() {
  Serial.begin(9600);
  
  
}

void loop() 
{
  delay(20);
  valeurMin = analogRead(pinPR); // on mesure la valeur min (quand la led est eteinte)
  Serial.print("la valeur min est : ");
  Serial.println(valeurMin); // on l'affiche pour vérifier que la mesure a été prise correctement
  delay(80); // on laisse le temps à l'allumage de la Led
  delay(20);
  ligne=0;
  traitement = false;
  verification = true;
  remplissage = false;
  if (verification)
  {
    compTest=0;
    Serial.println("je suis dans verif");
    
    while(compTest<8){
      int testV = analogRead(pinPR);
      if (testV > valeurMin + 15)
      {
       
       compTest= compTest + 1; 
       Serial.println("je verifie la condition");
       Serial.println("comptest = ");
       Serial.println(compTest);
       delay(100);
      }
      else
      {
        compTest == 0;
        
      }
    }
    Serial.println("les donnees sont en cours d'envoi..");
    verification = false;
    remplissage = true;
    valeurMax = analogRead(pinPR); // on mesure la valeur max (quand la led est allumee)
    Serial.print("la valeur max est : ");
    Serial.println(valeurMax); // on l'affiche pour vérifier que la mesure a été prise correctement
    delay(80);
    delay(200);
    
    
    
  }
  
  if(remplissage)
  {
    char codeRecu[1000][8];
    
    for (int i = 0; i<8;i++)
    {
      int valeur = analogRead(pinPR);
      int pourcentage = map(valeur,valeurMin,valeurMax,0,100);
      if (pourcentage>60)
      {
        codeRecu[ligne][i]='1';
      }
      else
      {
       codeRecu[ligne][i]='0';
      }
    }         
    if(codeRecu[ligne][7]=='0')
    {
      remplissage = false;
      traitement = true;
    }
    else
    {
      ligne++;
    }
    delay(0.0000186);

    if (traitement)
    {
      for(int i=0; i < ligne + 1 ; i++)
      {
        char lettre = 'B' + codeRecu[i][0] + codeRecu[i][1] + codeRecu[i][2] + codeRecu[i][3] + codeRecu[i][4] + codeRecu[i][5] + codeRecu[i][6];
        Serial.print(lettre);
      }
      traitement=false;
      verification = true;
      remplissage = false;
    }
  }

  

}

affichage dans le moniteur:
https://raw.githubusercontent.com/swanono/TIPE/master/code_recepteur/affichage%20moniteur%20recepteur.png

mon branchement:
https://raw.githubusercontent.com/swanono/TIPE/master/code_recepteur/recepteur.png

vous pouvez voir mon github si vous voulez le tout, pour l'instant je n'ai pas reposté le nouveau code du transmetteur, et il est possible que le code du récepteur soit différent:
https://github.com/swanono/TIPE

Dans loop()

        compTest == 0;
char codeRecu[1000][8];

Le 2eme lien représente une carte Uno reliée à une photo résistance
Si c'est bien la carte utilisée je me demande comment tu fais pour stocker la variable codeRecu[1000][8], soit 8000 octets dans un µcontrolleur qui n'a que 2048 octets de Ram ?

Oui gros soucis avec la mémoire qui doit faire rebooter votre Arduino c’est pour cela que vous pouvez avoir l’impression que le setup() est appelé en boucle

Sinon il y a d’autres trucs très louches - par exemple dans la loop() vous faites

verification = true;
  remplissage = false;
  if (verification)
  {
      ...

Pourquoi testez vous verification puisque vous venez de le mettre à vrai?

Ou encore delay(0.0000186); ? lire la doc de delay() pour voir quel est le type de param attendu...

Ceci est supposé mettre quoi dans lettre?

char lettre = 'B' + codeRecu[i][0] + codeRecu[i][1] + codeRecu[i][2] + codeRecu[i][3] + codeRecu[i][4] + codeRecu[i][5] + codeRecu[i][6]

(un char c’est un seul octet)

Etc...

Un peu de boulot de nettoyage est nécessaire