Programmation d'un LCD avec 3 boutons

Bonjour à tous,
Je suis étudiant en BTS SN et je dois réaliser un programme à partir d'une carte Arduino Méga2560 , un écran LCD TFT 2.8 et 3 boutons (pull down switch) branchés sur les entrées 35,37et39

Ce programme devrait être composé d'un message d’accueil, puis il faudrait que je sélectionne entre deux choix, puis encore d'autres et ainsi de suite, je voudrai également avoir quand j’appuie sur 2 bouton en même temps un retour à la page d’accueil.

Si vous pouvez m'aider ce serrait cool.
J'attend vos réponses.
A+ Screampy

Salut;
Commence déjà par la mise en place et la gestion des tes boutons.
Fourni un peu de travail. Cherche essais trompe toi recommence et tu apprendra.

A plus!

RE !
je dois réaliser un didacticiel à partir d'un Arduino Mega 2560, de 3 boutons poussoir et d'un afficheur graphique TFT2.8".

J'ai déjà réalisé le code sauf que mes messages (mes println) se superposent sur l'écran et mes boutons ne font pas changer mes pages.

je vous met le code afin que vous compreniez plus en détail ma demande

//#define DEBUG #include // Core graphics library #include // Hardware-specific library

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

// Couleurs d'écriture et de fond possible
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

#define initial 0
#define client 1
#define page11 2
#define page12 3
#define page13 4
#define page14 5
#define page21 6
#define page22 7
#define page23 8
#define page24 9
#define technicien 10
#define page31 11
#define page32 12
#define page33 13
#define page34 14
#define page41 15
#define page42 16
#define page43 17
#define page44 18

const int boutonp = 35 ;
const int boutonm = 37 ;
const int boutonok = 39 ;

int etat=0;

unsigned long envoiMessage(char*texte);

#define DEBUG 1
void setup(void) {
#ifdef DEBUG
Serial.begin(9600);
Serial.println(F("TFT LCD test"));
Serial.print("TFT size is ");
Serial.print(tft.width());
Serial.print("x");
Serial.println(tft.height());
#endif // DEBUG
tft.reset();

pinMode(boutonp, INPUT);
pinMode(boutonm, INPUT);
pinMode(boutonok, INPUT);

#ifdef DEBUG
uint16_t identifier = tft.readID();

switch (identifier)
{
case 0x9325: Serial.println(F("Found ILI9325 LCD driver")); break;

case 0x9328: Serial.println(F("Found ILI9328 LCD driver")); break;

case 0x7575: Serial.println(F("Found HX8347G LCD driver")); break;

case 0x9341: Serial.println(F("Found ILI9341 LCD driver")); break;

case 0x8357: Serial.println(F("Found HX8357D LCD driver")); break;

default : Serial.print(F("Unknown LCD driver chip: "));

Serial.println(identifier, HEX);
Serial.print(F("I try use ILI9341 LCD driver "));
Serial.println(F("If using the Adafruit 2.8" TFT Arduino shield, the line:"));
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
Serial.println(F("Also if using the breakout, double-check that all wiring"));
Serial.println(F("matches the tutorial."));
#endif // DEBUG
identifier = 0x9341;
break;
} // fin switch

tft.begin(identifier);
tft.setRotation(3);
tft.setTextColor(WHITE);
tft.setTextSize(3);
tft.fillScreen(BLACK);

#ifdef DEBUG

Serial.print(F("Fin Setup "));

#endif // DEBUG

}//fin setup

void loop(void)

{
switch(etat)
{
case initial:
tft.println("Initial");
if (boutonp) etat=client;
if (boutonm) etat=technicien;
break;

case client:
tft.println("Client");
if (boutonp) etat=page11;
if (boutonm) etat=page21;
if (boutonok) etat=initial;
break;

case technicien:
tft.println("technicien");
if (boutonp) etat=page31;
if (boutonm) etat=page41;
if (boutonok) etat=initial;
break;

case page11:
tft.println("11");
if (boutonp) etat=page12;
if (boutonm) etat=client;
if (boutonok) etat=initial;
break;

case page12:
tft.println("12");
if (boutonp) etat=page13;
if (boutonm) etat=page11;
if (boutonok) etat=initial;
break;

case page13:
tft.println("13");
if (boutonp) etat=page14;
if (boutonm) etat=page12;
if (boutonok) etat=initial;
break;

case page14:
tft.println("14");
if (boutonp) etat=initial;
if (boutonm) etat=page13;
if (boutonok) etat=initial;
break;

case page21:
tft.println("21");
if (boutonp) etat=page22;
if (boutonm) etat=client;
if (boutonok) etat=initial;
break;

case page22:
tft.println("22");
if (boutonp) etat=page23;
if (boutonm) etat=page21;
if (boutonok) etat=initial;
break;

case page23:
tft.println("23");
if (boutonp) etat=page24;
if (boutonm) etat=page22;
if (boutonok) etat=initial;
break;

case page24:
tft.println("24");
if (boutonp) etat=initial;
if (boutonm) etat=page23;
if (boutonok) etat=initial;
break;

case page31:
tft.println("31");
if (boutonp) etat=page32;
if (boutonm) etat=technicien;
if (boutonok) etat=initial;
break;

case page32:
tft.println("32");
if (boutonp) etat=page33;
if (boutonm) etat=page31;
if (boutonok) etat=initial;
break;

case page33:
tft.println("33");
if (boutonp) etat=page34;
if (boutonm) etat=page32;
if (boutonok) etat=initial;
break;

case page34:
tft.println("34");
if (boutonp) etat=initial;
if (boutonm) etat=page33;
if (boutonok) etat=initial;
break;

case page41:
tft.println("41");
if (boutonp) etat=page42;
if (boutonm) etat=technicien;
if (boutonok) etat=initial;
break;

case page42:
tft.println("42");
if (boutonp) etat=page43;
if (boutonm) etat=page41;
if (boutonok) etat=initial;
break;

case page43:
tft.println("43");
if (boutonp) etat=page44;
if (boutonm) etat=page42;
if (boutonok) etat=initial;
break;

case page44:
tft.println("44");
if (boutonp) etat=initial;
if (boutonm) etat=page43;
if (boutonok) etat=initial;
break;

default:
tft.println ("Erreur");
break;
}
tft.setCursor(0, 0);
}//fin loop

unsigned long envoiMessage(char*texte)
{

unsigned long start = micros();

tft.println(texte);

return micros() - start;
}//fin envoimessage

Si vous avez des solutions à m'apporter ou des questions plus précise ce serait sympa.

Merci A Bientôt.
Screampy57

hello
en fin de ta loop il faut

tft.setCursor(0, 0);
tft.println(" ");//efface l'ancien message
tft.setCursor(0, 0);

Re,
J'ai essayé et cela me fait exactement la même chose

Voici une image de la carte et du LCD

et voici le nouveau code

//#define DEBUG
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library


#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin



// Couleurs d'écriture et de fond possible
#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

#define initial 0
#define client 1
#define page11 2
#define page12 3
#define page13 4
#define page14 5
#define page21 6
#define page22 7
#define page23 8
#define page24 9
#define technicien 10
#define page31 11
#define page32 12
#define page33 13
#define page34 14
#define page41 15
#define page42 16
#define page43 17
#define page44 18

const int boutonp = 35 ;
const int boutonm = 37 ;
const int boutonok = 39 ;

int etat=0;

unsigned long envoiMessage(char*texte);

#define DEBUG 1
void setup(void) {
 #ifdef DEBUG
  Serial.begin(9600);
  Serial.println(F("TFT LCD test"));
  Serial.print("TFT size is ");
  Serial.print(tft.width());
  Serial.print("x");
  Serial.println(tft.height());
#endif // DEBUG
  tft.reset();

pinMode(boutonp, INPUT);
pinMode(boutonm, INPUT);
pinMode(boutonok, INPUT);

#ifdef DEBUG
  uint16_t identifier = tft.readID();
  
  switch (identifier)
  {
    case 0x9325:    Serial.println(F("Found ILI9325 LCD driver")); break;
    
    case 0x9328:    Serial.println(F("Found ILI9328 LCD driver")); break;
    
    case 0x7575:    Serial.println(F("Found HX8347G LCD driver")); break;
    
    case 0x9341:    Serial.println(F("Found ILI9341 LCD driver")); break;
    
    case 0x8357:    Serial.println(F("Found HX8357D LCD driver")); break;
    
    default    :    Serial.print(F("Unknown LCD driver chip: "));

        
                      Serial.println(identifier, HEX);
                      Serial.print(F("I try use ILI9341 LCD driver "));
                      Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
                      Serial.println(F("  #define USE_ADAFRUIT_SHIELD_PINOUT"));
                      Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
                      Serial.println(F("If using the breakout board, it should NOT be #defined!"));
                      Serial.println(F("Also if using the breakout, double-check that all wiring"));
                      Serial.println(F("matches the tutorial."));
#endif // DEBUG
    identifier = 0x9341;
    break;
  } // fin switch
    
 



                      tft.begin(identifier);
                      tft.setRotation(3);
                      tft.setTextColor(WHITE);
                      tft.setTextSize(3);
                      tft.fillScreen(BLACK);
                      

#ifdef DEBUG


                     Serial.print(F("Fin Setup                     "));
       
 

#endif // DEBUG


}//fin setup


void loop(void) 
   
 {
   switch(etat)
   {
        case initial:
         tft.println("Initial");
        if (boutonp) etat=client;
        if (boutonm) etat=technicien;
        break;
        
        case client:
         tft.println("Client");
        if (boutonp) etat=page11;
        if (boutonm) etat=page21;
        if (boutonok) etat=initial;
        break;

        case technicien:
         tft.println("technicien");
        if (boutonp) etat=page31;
        if (boutonm) etat=page41;
        if (boutonok) etat=initial;
        break;

        case page11:
        tft.println("11");
        if (boutonp) etat=page12;
        if (boutonm) etat=client;
        if (boutonok) etat=initial;
        break;

        case page12:
        tft.println("12");
        if (boutonp) etat=page13;
        if (boutonm) etat=page11;
        if (boutonok) etat=initial;
        break;

         case page13:
         tft.println("13");
        if (boutonp) etat=page14;
        if (boutonm) etat=page12;
        if (boutonok) etat=initial;
        break;

         case page14:
         tft.println("14");
        if (boutonp) etat=initial;
        if (boutonm) etat=page13;
        if (boutonok) etat=initial;
        break;

         case page21:
         tft.println("21");
        if (boutonp) etat=page22;
        if (boutonm) etat=client;
        if (boutonok) etat=initial;
        break;

         case page22:
         tft.println("22");
        if (boutonp) etat=page23;
        if (boutonm) etat=page21;
        if (boutonok) etat=initial;
        break;

         case page23:
         tft.println("23");
        if (boutonp) etat=page24;
        if (boutonm) etat=page22;
        if (boutonok) etat=initial;
        break;

         case page24:
         tft.println("24");
        if (boutonp) etat=initial;
        if (boutonm) etat=page23;
        if (boutonok) etat=initial;
        break;

        case page31:
         tft.println("31");
        if (boutonp) etat=page32;
        if (boutonm) etat=technicien;
        if (boutonok) etat=initial;
        break;

         case page32:
         tft.println("32");
        if (boutonp) etat=page33;
        if (boutonm) etat=page31;
        if (boutonok) etat=initial;
        break;

         case page33:
         tft.println("33");
        if (boutonp) etat=page34;
        if (boutonm) etat=page32;
        if (boutonok) etat=initial;
        break;

         case page34:
         tft.println("34");
        if (boutonp) etat=initial;
        if (boutonm) etat=page33;
        if (boutonok) etat=initial;
        break;

         case page41:
         tft.println("41");
        if (boutonp) etat=page42;
        if (boutonm) etat=technicien;
        if (boutonok) etat=initial;
        break;

         case page42:
         tft.println("42");
        if (boutonp) etat=page43;
        if (boutonm) etat=page41;
        if (boutonok) etat=initial;
        break;

         case page43:
         tft.println("43");
        if (boutonp) etat=page44;
        if (boutonm) etat=page42;
        if (boutonok) etat=initial;
        break;

         case page44:
         tft.println("44");
        if (boutonp) etat=initial;
        if (boutonm) etat=page43;
        if (boutonok) etat=initial;
        break;

        default:
        tft.println ("Erreur");
      break;
    }
        tft.setCursor(0, 0);
        tft.println("                    ");//efface l'ancien message
        tft.setCursor(0, 0);

}//fin loop


unsigned long envoiMessage(char*texte) 
{
 
  unsigned long start = micros();
  
 
  tft.println(texte);

  return micros() - start;
}//fin envoimessage

Bonjour,

Quand tu écris

       if (boutonp) etat=client;

Je suppose que ce que tu veux faire c'est

       if (digitalRead(boutonp)) etat=client;

Commences par rectifier dans ton programme.
Mais il faut tester le changement d'état et non l'état autrement tu vas exécuter l'instruction tant que tu restera appuyé sur le bouton

Je viens de le modifier et compiler et toujours la même chose je ne peux pas changer de page avec mes boutons et tous mes messages sont superposés
Voici mon code:

//#define DEBUG
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library


#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin



// Couleurs d'écriture et de fond possible
#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

#define initial 0
#define client 1
#define page11 2
#define page12 3
#define page13 4
#define page14 5
#define page21 6
#define page22 7
#define page23 8
#define page24 9
#define technicien 10
#define page31 11
#define page32 12
#define page33 13
#define page34 14
#define page41 15
#define page42 16
#define page43 17
#define page44 18

const int boutonp = 35 ;
const int boutonm = 37 ;
const int boutonok = 39 ;

int etat=0;

unsigned long envoiMessage(char*texte);

#define DEBUG 1
void setup(void) {
 #ifdef DEBUG
  Serial.begin(9600);
  Serial.println(F("TFT LCD test"));
  Serial.print("TFT size is ");
  Serial.print(tft.width());
  Serial.print("x");
  Serial.println(tft.height());
#endif // DEBUG
  tft.reset();

pinMode(boutonp, INPUT);
pinMode(boutonm, INPUT);
pinMode(boutonok, INPUT);

#ifdef DEBUG
  uint16_t identifier = tft.readID();
  
  switch (identifier)
  {
    case 0x9325:    Serial.println(F("Found ILI9325 LCD driver")); break;
    
    case 0x9328:    Serial.println(F("Found ILI9328 LCD driver")); break;
    
    case 0x7575:    Serial.println(F("Found HX8347G LCD driver")); break;
    
    case 0x9341:    Serial.println(F("Found ILI9341 LCD driver")); break;
    
    case 0x8357:    Serial.println(F("Found HX8357D LCD driver")); break;
    
    default    :    Serial.print(F("Unknown LCD driver chip: "));

        
                      Serial.println(identifier, HEX);
                      Serial.print(F("I try use ILI9341 LCD driver "));
                      Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
                      Serial.println(F("  #define USE_ADAFRUIT_SHIELD_PINOUT"));
                      Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
                      Serial.println(F("If using the breakout board, it should NOT be #defined!"));
                      Serial.println(F("Also if using the breakout, double-check that all wiring"));
                      Serial.println(F("matches the tutorial."));
#endif // DEBUG
    identifier = 0x9341;
    break;
  } // fin switch
    
 



                      tft.begin(identifier);
                      tft.setRotation(3);
                      tft.setTextColor(WHITE);
                      tft.setTextSize(3);
                      tft.fillScreen(BLACK);
                      

#ifdef DEBUG


                     Serial.print(F("Fin Setup                     "));
       
 

#endif // DEBUG


}//fin setup


void loop(void) 
   
 {
   switch(etat)
   {
        case initial:
         tft.println("Initial");
        if (digitalRead(boutonp)) etat=client;
        if (digitalRead(boutonm)) etat=technicien;
        break;
        
        case client:
         tft.println("Client");
        if (digitalRead(boutonp)) etat=page11;
        if (digitalRead(boutonm)) etat=page21;
         if (digitalRead(boutonok)) etat=initial;
        break;

        case technicien:
         tft.println("technicien");
        if (digitalRead(boutonp)) etat=page31;
        if (digitalRead(boutonm)) etat=page41;
         if (digitalRead(boutonok)) etat=initial;
        break;

        case page11:
        tft.println("11");
        if (digitalRead(boutonp)) etat=page12;
        if (digitalRead(boutonm)) etat=client;
         if (digitalRead(boutonok)) etat=initial;
        break;

        case page12:
        tft.println("12");
        if (digitalRead(boutonp)) etat=page13;
        if (digitalRead(boutonm)) etat=page11;
        if (digitalRead(boutonok)) etat=initial;
        break;

         case page13:
         tft.println("13");
        if (digitalRead(boutonp)) etat=page14;
        if (digitalRead(boutonm)) etat=page12;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page14:
         tft.println("14");
        if (digitalRead(boutonp)) etat=initial;
        if (digitalRead(boutonm)) etat=page13;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page21:
         tft.println("21");
        if (digitalRead(boutonp)) etat=page22;
        if (digitalRead(boutonm)) etat=client;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page22:
         tft.println("22");
        if (digitalRead(boutonp)) etat=page23;
        if (digitalRead(boutonm)) etat=page21;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page23:
         tft.println("23");
        if (digitalRead(boutonp)) etat=page24;
        if (digitalRead(boutonm)) etat=page22;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page24:
         tft.println("24");
        if (digitalRead(boutonp)) etat=initial;
        if (digitalRead(boutonm)) etat=page23;
         if (digitalRead(boutonok)) etat=initial;
        break;

        case page31:
         tft.println("31");
        if (digitalRead(boutonp)) etat=page32;
        if (digitalRead(boutonm)) etat=technicien;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page32:
         tft.println("32");
        if (digitalRead(boutonp)) etat=page33;
        if (digitalRead(boutonm)) etat=page31;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page33:
         tft.println("33");
       if (digitalRead(boutonp)) etat=page34;
        if (digitalRead(boutonm)) etat=page32;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page34:
         tft.println("34");
        if (digitalRead(boutonp)) etat=initial;
        if (digitalRead(boutonm)) etat=page33;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page41:
         tft.println("41");
        if (digitalRead(boutonp)) etat=page42;
        if (digitalRead(boutonm)) etat=technicien;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page42:
         tft.println("42");
        if (digitalRead(boutonp)) etat=page43;
        if (digitalRead(boutonm)) etat=page41;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page43:
         tft.println("43");
        if (digitalRead(boutonp)) etat=page44;
        if (digitalRead(boutonm)) etat=page42;
         if (digitalRead(boutonok)) etat=initial;
        break;

         case page44:
         tft.println("44");
        if (digitalRead(boutonp)) etat=initial;
        if (digitalRead(boutonm)) etat=page43;
        if (digitalRead(boutonok)) etat=initial;
        break;

        default:
        tft.println ("Erreur");
      break;
    }
        tft.setCursor(0, 0);
        tft.println("                    ");//efface l'ancien message
        tft.setCursor(0, 0);

}//fin loop


unsigned long envoiMessage(char*texte) 
{
 
  unsigned long start = micros();
  
 
  tft.println(texte);

  return micros() - start;
}//fin envoimessage
  • Pour éviter que les messages se superposent, affiches sur fond noir
    remplaces
tft.setTextColor(WHITE);

par

tft.setTextColor(WHITE,BLACK);
  • Pour voir plus précisément ce qui se passe met temporairement un delay(1000); dans la loop

  • Comment son cablés tes boutons au 5V ou au GND ? Dans ce dernier cas il faut inverser l'état.

J'ai remplacé ce que tu m'as dit et le LCD clignote et affiche initial - technicien - initial - technicien [...]
Ou dois-je mettre exactement mon delay() ?
Oui ils sont branchés entre le 5V et le GND et ils sont reliés sur les pins 35/37/39

Le delay() tu le met au début ou a la fin de la loop, c'est juste pour voir l'alternance de l'affichage, mais tu l'as vu sans le delay()

Ca me parait bizarre, on dirait que les boutons sont enfoncés. Il faut afficher leur état

Il faut pas changer l'état des boutons par hasard ?

En fait ce que je dois faire c'est ça

et la mon afficheur me fait ça

Je suppose que tu voulais mettre des images
On ne les voit pas

C'est bien ce que j'avais compris.
A mon avis tes boutons fonctionnent à l'envers.
Affiches leur état au début de loop avec ce code

void loop(void)
{
  tft.setCursor(0,30);
  tft.print("boutonp: ");
  tft.println(digitalRead(boutonp));

  tft.setCursor(0,60);
  tft.print("boutonm: ");
  tft.println(digitalRead(boutonm));

  tft.setCursor(0,90);
  tft.print("boutonok: ");
  tft.println(digitalRead(boutonok));
  
  tft.setCursor(0, 0);

  ...

Voila ce qui m'affiche :

Donc tes boutons sont à 1 quand relâchés. Est-ce que ça passe à 0 quand tu appuies ?
Il faut inverser les entrées
if (!digitalRead (boutonp)) ...

Oui, ils passent à 0 quand j'appuie et il faut que je remplace tout par cette commande c'est ca ?

oui, il faut inverser toutes les lectures des entrées en mettant un ! (not logique) devant digitalRead()

Ok merci, j'essaye ce soir et je te redis ce qu'il en est .

Après est-ce que tu as des solutions pour effacer les messages parce qu'ils s'entassent sur l'afficheur.

  • tu mets l'affichage avec fond opaque comme je te l'ai indiqué au post #7
  • tu mets un setCursor(0,0) au début de boucle
  • tu complètes tes textes les plus courts avec des espaces de façon à ce qu'ils effacent complètement le message précédent
tft.println("Initial               ");

Pour le dernier point, il est plus élégant de faire une fonction qui va ajouter des espaces avant d'afficher.

Me revoila ! avec des bonnes et mauvaises nouvelles

Les bonnes:
J'ai mais des ! devant mes instructions et effectivement cela ne change plus de page.

Les mauvaises:

Mon messages (initial par exemple) redémarre en boucle.
J'ai l'impression que mes boutons ne prennent pas en compte directement mes impulsions.
Et pour finir, le texte ne va pas jusqu'au bout de l'afficheur.

Si tu as des solutions ce serait cool
merci a+