Réception de données depuis un PC et affichage sur écran LCD

J'ai fait une vidéo du dernier résultat ICI.
Valeur solitaire pas d'erreur.

J'ai essayé de faire un arc mais c'est terriblement lent, ce qu'on trouve sur le net ne l'est pas :frowning:

Programme de l'Arc:

#include <UTFT.h>
#include <SPI.h>
#include <UTFT_tinyFAT.h>
#include <UTFT_Geometry.h>


// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

UTFT myGLCD(CTE70, 38, 39, 40, 41);        //Screen initialization
UTFT_tinyFAT myFiles(&myGLCD);
UTFT_Geometry geo(&myGLCD);

int inByte;
int RPM;
int Speed;
int Accel;
int gearnum;
int valeur;

void setup() {
  Serial.begin (9600);
  myGLCD.InitLCD(LANDSCAPE);
  myGLCD.clrScr();
  file.initFAT();
  myGLCD.setFont(BigFont);
  myGLCD.fillScr(0, 0, 0);
  //myGLCD.clrScr();
  //myFiles.loadBitmap(0, 0, 800, 480, "Fond.RAW");

}

void loop () {

  while (Serial.available() > 0) {
    int inByte = Serial.read(); // lire un premier caractère

    // controle éventuel : décommenter pour voir ce qui arrive
    //Serial.print("index : "); Serial.println(inByte);


    // filtrer : il doit etre une lettre majuscule
    if (inByte >= 'A') {
      valeur = Serial.parseInt();
      //Serial.read();

      // traitement
      switch (inByte) {
        case 'A'://Données commencant par "A" = %Accel (0_100)
          if (valeur > 0) {
            myGLCD.setFont(BigFont);
            myGLCD.setColor(87, 255, 45);
            myGLCD.setBackColor(0, 0, 0);
            myGLCD.printNumI(valeur, 70, 75, 4, '0');
            // controle eventuel de la valeur
            //Serial.print("RPM : "); Serial.println(valeur);
            Arc();
          }
          if (valeur > 9999) {}
          break;
      }
           
    }
  }
} //End loop

void Arc()
{
  //132 valeur
  int valeurA = valeur / 0.75;
  int Bmin = -66;
  int Bmax = 66;
  int AngF = Bmin + valeurA  ;
  int AngM = Bmin + valeurA ;
  myGLCD.setColor(154, 217, 234);
  geo.drawArc( 100, 117, 80, Bmin, AngM, 5);
  myGLCD.setColor(0, 0, 0);
  geo.drawArc( 100, 117, 80, AngF, Bmax, 5);
}