Difficulté pour faire fonctionner mon écran tft :s

Bonjour,

Voilà, j’ai passé des heures à me battre avec un écran tft 1.8 sainsmart alors avec de vous exposer mon problème, ditent moi si il ne vaut pas mieux d’en changer pour une autre marque?

Car voilà, le graphic test (de la librairie sainsmart fonctionne)

J’ai essayé les skecths “simple” arduino, par exemple le displaytext qui m’interesse.

J’utilise une carte UNO, j’ai bien vérifié mes cablages, j’ai même rajouté la librairie specifique à cet écran en plus de celle du sketch:
#include <TFT.h> // Arduino LCD library
#include <SPI.h>

Rien ne fonctionne, l’écran reste blanc.

Voilà, je suis nul ou y a un truc qui m’échappe, ce qui revient au même.

Aidez moi svp, j’ai fait d’autres test mais je veux pas vous innonder de trucs inutile, en + je suis NRV :s

Merci d’avance :slight_smile:

Si tu postes pas ton code on risque pas de pouvoir t'aider ...

Voilà, c’est le code brut ça:

*/

#include <TFT.h>  // Arduino LCD library
#include <SPI.h>

// pin definition for the Uno
#define cs   10
#define dc   9
#define rst  8  

// pin definition for the Leonardo
// #define cs   7
// #define dc   0
// #define rst  1 

// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);

// char array to print to the screen
char sensorPrintout[4];

void setup() {
  
  // Put this line at the beginning of every sketch that uses the GLCD:
  TFTscreen.begin();

  // clear the screen with a black background
  TFTscreen.background(0, 0, 0);
  
  // write the static text to the screen
  // set the font color to white
  TFTscreen.stroke(255,255,255);
  // set the font size
  TFTscreen.setTextSize(2);
  // write the text to the top left corner of the screen
  TFTscreen.text("Sensor Value :\n ",0,0);
  // ste the font size very large for the loop
  TFTscreen.setTextSize(5);
}

void loop() {

  // Read the value of the sensor on A0
  String sensorVal = String(analogRead(A0));
 
  // convert the reading to a char array
  sensorVal.toCharArray(sensorPrintout, 4);

  // set the font color
  TFTscreen.stroke(255,255,255);
  // print the sensor value
  TFTscreen.text(sensorPrintout, 0, 20);
  // wait for a moment
  delay(250);
  // erase the text you just wrote
  TFTscreen.stroke(0,0,0);
  TFTscreen.text(sensorPrintout, 0, 20);
}

Déjà analogRead() retourne une valeur comprise entre 0 et 1023 soit 4 caractères donc ça c'est pas bon

char sensorPrintout[4];

Il manque un caractère dans ce tableau pour placer le terminateur de chaîne. Il faudrait faire ça:

char sensorPrintout[5];

Tu dis que le code fonctionne avec le graphicTest de sainsmart. Pourquoi n'utilises-tu pas leur librairie?
Là il me semble que tu utilises la librairie arduino est-elle bien compatible de ton afficheur?

Je viens de corriger.
J’ai aussi modifier (rajouter) le sketch pour l’adapter à la librairie sainsmart en rajoutant ces lignes:

#include <ST7735.h> lib sainsmart

et celle là:

ST7735 tft = ST7735(cs, dc, rst);

Ce qui fait une partie de code modifiée, j’ai compilé et envoyé mais rien.

*/

#include <TFT.h>  // Arduino LCD library
#include <SPI.h>
#include <ST7735.h>

// pin definition for the Uno
#define cs   10
#define dc   9
#define rst  8  
ST7735 tft = ST7735(cs, dc, rst);  

// pin definition for the Leonardo
// #define cs   7
// #define dc   0
// #define rst  1 

// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);

// char array to print to the screen
char sensorPrintout[5];

Sinon, oui, justement je pourrais utilisé la lib sainsmart avec le sketch du graphictest, mais voilà, je suis pommé sur le sketch, je voudrais faire quelque chose de très simple pourtant, afficher un texte avec une variable qui varie, c’est tout…

Sinon je vais m’orienter vec un tft qui marche du premier coup avec la lib tft d’arduino, si vous connaissez des modèles je suis preneur :slight_smile:

Pourquoi ne pas partir tout simplement de graphictest.pde disponible dans les exemples livrés avec la librairie sainsmart et ne garder que la partie qui écrit du texte.

Car je fais planter mon programme, mais là ça vient de moi...
Je bosse dessus ce matin, je vais voir ce que j'ai enlevé et que je n'aurais pas dû et qui plante la compilation ^^