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
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);
}