erreur conversion INT to CHAR Arduino

Bonjour à tous, j'aimerai afficher sur mon écran TFT LCD une variable

Lors de mon téléversement le logiciel indique une erreur liée à la conversion de INT en CHAR.

Je vous joins ci-dessous mon code en espérant pouvoir obtenir votre aide pour me dire là où se trouve le problème et m'aider à le résoudre merci d'avance.

Cordialement

#include <UTFT.h>

//désignation des polices

extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

UTFT myGLCD(CTE32HR,38,39,40,41);

float range_max = 12.8 ;
float range_min = 12 ;
float Read_Volts = 12.5 ;

// Déclarations des variable
int Laser = A10;
int Detector = A11;
int coup;
int JP;
int kmh;
int tour;
int tt;
int vall;

void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
Serial.begin(19200); // Déclacration du protocole de communication avec les composants
pinMode(Laser, OUTPUT); // Dire que le laser est un émetteur (TX)
pinMode(Detector, INPUT); // Dire que le Détecteur est un récepteur (RX)
coup = 0; // initialisation de la variable coup
kmh = 0; // initialisation de la variable kmh
}

void loop()
{

digitalWrite(Laser, HIGH); // allumer le laser
boolean val = digitalRead(Detector); // Demmander de lire l'état du récepteur laser

for (int vall = 0; vall <= 3436; vall++ ) { //dire que "vall" et = a 0, pour toute valeur "vall" <= 0, "vall" = vall+1
vall++;

if (val == 1 && JP == 0) { // Si la variable "val"= à 1 et que la variable JP = 0, alors coup = coup+1 et JP = 1
coup++;
JP = 1;

}

else {
if (val == 0 && JP == 1) { // Si la variable "val"= à 0 et que la variable JP = 1, alors coup = coup+1 et JP = 0
coup++;
JP = 0;

}
}
if (coup == 12) { // Si la variable coup = 12, alors la variable tour = tour+1 et la variable coup = 0
tour = tour + 1;
coup = 0;}
{ myGLCD.setColor(255,0,0);//désignation de la couleur
myGLCD.setFont(BigFont);
myGLCD.print(tour, CENTER, 150);
}}}

Poste les messages d'erreur qui apparaissent lors de la compilation, ils nous aideront à aller voir directement à l'endroit qui pose problème, plutôt que la chercher pendant des heures... Merci

Quelle carte utilises-tu ? Et quel écran (référence) ?

Attention, tu utilises des variables dont les noms se ressemblent (val & vall), c'est un coup à se tromper et chercher l'erreur pendant des heures...

Merci pour votre réponse rapide vous trouverez en pièces jointes la capture du message d'erreur

Merci d'avance pour votre aide

Ton image (un peu petit, il vaut mieux ouvrir le fichier) :

Tu vois que le premier argument de print est un char * et tu lui donnes un int : c'est pour ça qu'il pleure...

Si j'ai bien compris les minuscules charactères rouges de votre pièce jointe, c'est la ligne

   myGLCD.print(tour, CENTER, 150);

qui pose problème

Selon http://www.rinkydinkelectronics.com/resource/UTFT/UTFT.pdf,
CENTER est un entier, servant à coder la position en x
150 est la position en y
tour est un entier, selon vous; or, glcd s'attend à un "string" (avec la minuscule, si je lis bien, i.e un tableau de charactères terminés par 0)

Comme j'ai peur que vous trouviez ce tableau de caractères difficile à fabriquer, je pense que vous devriez reserver de la place pour un tableau

char cTour[78]; // vous laissera de la place

puis

  itoa(tour, cTour, 10); // conversion de l'entier en string
 myGLCD.print(tour, CENTER, 150);

fera l'affaire

sinon si itoa est rejeté (n'est pas standard, quoique populaire)
sprintf(cTour, "%d", tour);
permettra de faire de plus beaux formats d'impression

myGLCD.print(ctour, CENTER, 150); :sunglasses:

Honte à moi (et le compilateur continuera de voir rouge).
Heureusement que sprintf m'a sauvé du ridicule le plus achevé.