SSD1963 ne fonctionne pas

Bonjour,

Je suis actuellement en cours de montage d'un écran 7" référencé 'SSD1963" je suis assez habitué des écrans "TFT" mais là je bloque...
En effet quand je met le nom de l'écran (SSD1963) le programme m'envoie un message d'erreur qui me dit que SSD1963 n'est pas reconnu dans la librairie "MCUFRIEND" ni "RA8875"...
J'ai essayé avec des parenthèses, j'ai enlevé le "SSD" et mis juste "1963" et le programme ce téléverse mais rien ne s'affiche, j'ai aussi essayé la librairie "800X480" de mcufriend et pareil, rien ne s'affiche... je doit dire aussi que j'utilise un adaptateur pour passer de Mega2560 à cet écran que j'ai acheté sur amazon( l'adaptateur, car l'écran je l'avais déjà fait fonctionné il y a plus de 4 ans et l'ai laissé en stock). L'écran s'allume en blanc uniquement quand certaines broches sont déconnectées en retirant un peut l'écran de l'adaptateur(donc certaines broches déconnectées), mais pareil aucun résultat non plus.quand je l'insère à fond il est noir.
Y a t il un nom autre que "SSD1963" pour mettre dans le programme ?
J'ai aussi essayé RA8875 et pareil : rien ne ce passe...
Je suis carrément désemparé et voudrais comprendre mon erreur ou si ce n'est pas un problème de carte adaptateur ou l'écran qui est foutu, et connaitre toutes les dénomination des écrans dans les librairie donné et utilisable dans l'IDE Arduino pour les écrans TFT ...
Je ne connais pas ce genre de problème pour les ecran 3,5" et 2,8" donc cela ne doit pas être grand chose... à mon avis, mais quoi ???

Je vous remercie à l'avance pour vos futurs conseils...

Nicolas

Salut

Comme poster un truc qui ne marche pas dans "réalisations et projets finis" c'est un peu gonflé, je déplace ce fil dans la catégorie principale qui est faite pour les questions. (faites attention à la catégorie choisie la prochaine fois - merci)

:slight_smile:


sinon montrez nous votre code de base et expliquez le câblage + alim de votre montage.

Désolé, j'ai pas fait attention... je n'avais pas trouvé la bonne rubrique je ferai plus attention la prochaine fois

```cpp
// UTFT_Demo_800x480 
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program is a demo of how to use most of the functions
// of the library with a supported display modules.
//
// This demo was made for modules with a screen resolution 
// of 800x480 pixels.
//
// This program requires the UTFT library.
//

#include <UTFT.h>

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

// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(SSD1963_800ALT,38,39,40,41);  // d'après moi le problème viens  //de là car en mettant "SSD" il ne le reconnais pas dans le programme si j'enlève "SSD" et"_800ALT" il le télécharge mais n'affiche rien...

void setup()
{
  randomSeed(analogRead(0));
  
// Setup the LCD
  myGLCD.InitLCD();
  myGLCD.setFont(SmallFont);
}

void loop()
{
  int buf[798];
  int x, x2;
  int y, y2;
  int r;

// Clear the screen and draw the frame
  myGLCD.clrScr();

  myGLCD.setColor(255, 0, 0);
  myGLCD.fillRect(0, 0, 799, 13);
  myGLCD.setColor(64, 64, 64);
  myGLCD.fillRect(0, 466, 799, 479);
  myGLCD.setColor(255, 255, 255);
  myGLCD.setBackColor(255, 0, 0);
  myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);
  myGLCD.setBackColor(64, 64, 64);
  myGLCD.setColor(255,255,0);
  myGLCD.print("<http://www.RinkyDinkElectronics.com/>", CENTER, 467);

  myGLCD.setColor(0, 0, 255);
  myGLCD.drawRect(0, 14, 799, 465);

// Draw crosshairs
  myGLCD.setColor(0, 0, 255);
  myGLCD.setBackColor(0, 0, 0);
  myGLCD.drawLine(399, 15, 399, 464);
  myGLCD.drawLine(1, 239, 798, 239);
  for (int i=9; i<790; i+=10)
    myGLCD.drawLine(i, 237, i, 242);
  for (int i=19; i<470; i+=10)
    myGLCD.drawLine(397, i, 402, i);

// Draw sin-, cos- and tan-lines  
  myGLCD.setColor(0,255,255);
  myGLCD.print("Sin", 5, 15);
  for (int i=1; i<798; i++)
  {
    myGLCD.drawPixel(i,239+(sin(((i*1.13)*3.14)/180)*200));
  }
  
  myGLCD.setColor(255,0,0);
  myGLCD.print("Cos", 5, 27);
  for (int i=1; i<798; i++)
  {
    myGLCD.drawPixel(i,239+(cos(((i*1.13)*3.14)/180)*200));
  }

  myGLCD.setColor(255,255,0);
  myGLCD.print("Tan", 5, 39);
  for (int i=1; i<798; i++)
  {
    myGLCD.drawPixel(i,239+(tan(((i*0.9)*3.14)/180)));
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);
  myGLCD.setColor(0, 0, 255);
  myGLCD.setBackColor(0, 0, 0);
  myGLCD.drawLine(399, 15, 399, 464);
  myGLCD.drawLine(1, 239, 798, 239);

// Draw a moving sinewave
  x=1;
  for (int i=1; i<(798*20); i++) 
  {
    x++;
    if (x==799)
      x=1;
    if (i>799)
    {
      if ((x==399)||(buf[x-1]==239))
        myGLCD.setColor(0,0,255);
      else
        myGLCD.setColor(0,0,0);
      myGLCD.drawPixel(x,buf[x-1]);
    }
    myGLCD.setColor(0,255,255);
    y=239+(sin(((i*1.65)*3.14)/180)*(200-(i / 100)));
    myGLCD.drawPixel(x,y);
    buf[x-1]=y;
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some random filled rectangles
  for (int i=0; i<50; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(746);
    y=16+random(397);
    x2=x+50;
    y2=y+50;
    myGLCD.fillRect(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some random filled, rounded rectangles
  for (int i=0; i<50; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(746);
    y=16+random(397);
    x2=x+50;
    y2=y+50;
    myGLCD.fillRoundRect(x, y, x2, y2);
  }
  
  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some random filled circles
  for (int i=0; i<50; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=27+random(746);
    y=41+random(397);
    myGLCD.fillCircle(x, y, 25);
  }
  
  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some lines in a pattern
  myGLCD.setColor (255,0,0);
  for (int i=15; i<463; i+=5)
  {
    myGLCD.drawLine(1, i, (i*1.66)-10, 463);
  }
  myGLCD.setColor (255,0,0);
  for (int i=463; i>15; i-=5)
  {
    myGLCD.drawLine(798, i, (i*1.66)+30, 15);
  }
  myGLCD.setColor (0,255,255);
  for (int i=463; i>15; i-=5)
  {
    myGLCD.drawLine(1, i, 770-(i*1.66), 15);
  }
  myGLCD.setColor (0,255,255);
  for (int i=15; i<463; i+=5)
  {
    myGLCD.drawLine(798, i, 810-(i*1.66), 463);
  }
  
  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some random circles
  for (int i=0; i<250; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=32+random(736);
    y=45+random(386);
    r=random(30);
    myGLCD.drawCircle(x, y, r);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some random rectangles
  for (int i=0; i<250; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(796);
    y=16+random(447);
    x2=2+random(796);
    y2=16+random(447);
    myGLCD.drawRect(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

// Draw some random rounded rectangles
  for (int i=0; i<250; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(796);
    y=16+random(447);
    x2=2+random(796);
    y2=16+random(447);
    myGLCD.drawRoundRect(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

  for (int i=0; i<250; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(796);
    y=16+random(447);
    x2=2+random(796);
    y2=16+random(447);
    myGLCD.drawLine(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,798,464);

  for (int i=0; i<10000; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    myGLCD.drawPixel(2+random(796), 16+random(447));
  }

  delay(2000);

  myGLCD.fillScr(0, 0, 255);
  myGLCD.setColor(255, 0, 0);
  myGLCD.fillRoundRect(320, 190, 479, 289);
  
  myGLCD.setColor(255, 255, 255);
  myGLCD.setBackColor(255, 0, 0);
  myGLCD.print("That's it!", CENTER, 213);
  myGLCD.print("Restarting in a", CENTER, 239);
  myGLCD.print("few seconds...", CENTER, 252);
  
  myGLCD.setColor(0, 255, 0);
  myGLCD.setBackColor(0, 0, 255);
  myGLCD.print("Runtime: (msecs)", CENTER, 450);
  myGLCD.printNumI(millis(), CENTER, 465);
  
  delay (10000);
}

Pour le SSD1963 les noms connus sont définis UTFT.h

#define SSD1963_480		12
#define SSD1963_800		13
#define	SSD1963_800ALT	20
#define ITDB43			12	// SSD1963	(16bit) 480x272
#define ITDB50			13	// SSD1963	(16bit) 800x480
#define CTE50			13	// SSD1963	(16bit) 800x480
#define EHOUSE50		13	// SSD1963	(16bit) 800x480
#define CTE70			20	// SSD1963	(16bit) 800x480 Alternative Init
#define EHOUSE70		20	// SSD1963	(16bit) 800x480 Alternative Init

donc tous ces mots là sont OK pour définir un modèle d'écran.

si cet écran est supporté, il faudrait trouver le modèle exact parce que le code de la bibliothèque compilera ensuite un driver spécifique

Merci, j'ai réussi à "admettre" au programme "SSD1963_800" en le pré installant avec #define SSD1963_800, mais je n'ai toujours rien à l'écran, pouvez vous être plus précis sur le "DRIVER" qu'il faut vérifier ?? je n'ai pas bien compris dsl...

Il semble qu’il y ait du code spécifique pour chacun des écrans SSD 1963 (un par #define). Il faut trouver le bon petit nom qui correspond à l’écran que vous avez - s’il existe dans la liste

J'ai essayé tous les noms (SSD1963_480, SSD1963_800, ALT, CTE70, CTE50, etc...) que vous m'avez donné dans votre dernier message, avec eux pas d'erreur, mais impossible d'afficher quoi que ce soit car l'écran reste sombre... Personne n'a ce problème ?? Car je me faisait une joie et je pensais que c'était simple comme les écrans plus petit (2.8 et 3.5") mais avec plus de taille et de résolution...

Je vais encore chercher sur le web et si je trouve je vous donnerai les explications...

Merci en tout les cas.

Ce serait bien d'avoir :

  • un lien vers l'écran en question pour que l'on connaisse exactement sa référence
  • quelle carte tu utilises pour piloter cet écran
  • un schéma pour savoir comment il est câblé

l'ecran est celui ci : ecran 7 pouces arduino

l'adaptateur : adaptateur pour ecran 7pouces

et il est bien câblé ; il n'y a pas de capteur sur l'ARDUINO MEGA2560 qui utilise l'écran et l'adaptateur est monté entre le MEGA2560 et l’Écran 7" ... par contre j'ai remarqué que sur l'adaptateur il n'y a pas de broches analogique d'utilisé, mais sur plusieurs écran ceux ci sont quelques une qui sont connecté (comme sur l'écran 4,3" par exemple).
Il y a aussi ce "truc" que fait l'écran : en effet il s'allume très brièvement en blanc sur sa totalité au démarrage, ou bien quand je le déconnecte en partie en le retirant un peut de l'adaptateur donc quelque broche ne sont pas utilisé, mais à mon avis cela n'est pas important, ou alors je n'utilise peut être pas les bonne broche dans mon programme ?? j'utilise 38,39,40,41 dans le même ordre.

à mon avis c'est pas grand chose, mais il y a tellement de possibilité j'en ai essayer déjà une bonne trentaine...

un des dernier essais c'est celui là, et il n'y a eu aucun changement :

#include <Adafruit_GFX.h>
#include <UTFTGLUE.h>

#define	SSD1963_800ALT 8
 UTFTGLUE myGLCD(SSD1963_800ALT,38,39,40,41);

void setup(){

  randomSeed(analogRead(0));
  
// Setup the LCD
  myGLCD.InitLCD(PORTRAIT);      //800x480 is already wider than tall.
  myGLCD.setFont(SmallFont);
  pinMode(8, OUTPUT);
  digitalWrite(8,HIGH);

} 

J'ai mis Pin 8 en HIGH car j'avais vu sur un autre post donné aussi pour certain problème du SSD1963 la personne avais fait ça et il n'avait pas les mêmes problème que moi, mais j'ai essayé quand même et sans aucune modification...toujours le même problème...

Lorsqu'on va sur la page du vendeur, on trouve ça comme informations

Module LCD TFT 7.0 ", résolution 800x480, contrôleur SSD1963
Type d'affichage à cristaux liquides: Blanc normal transmissif de TFT
Interface: interface de bus parallèle 16 bits

De plus, rien ne dit que la carte d'adaptation soit compatible avec cet écran.
As-tu vérifié que le brochage indiqué dans "UTFT_Requirements.pdf" est bien respecté.

Bon pour l'instant je ne vois pas quoi essayer d'autre...

Je trouve que c'est dommage (pour être polie) de vendre des appareils qui ne sont doté d'aucun exemple de programmation et pourtant qui fonctionnais il y a 4-5 ans donc je me pose la question suivante : y a t il eu une mise à jour de l'IDE Arduino qui ferai que de ce coté que les anciens système de TFT ne fonctionne plus ?? et j'ai aussi noté que "<UTFT.h>" ne fonctionne pas il faut que je rajoute plutôt "<UTFTGLUE.h>" et je me demande encore d'autre question comme utiliser un autre "BOOTLOADER" (je ne sais pas vraiment ce que c'est mais j'avais déjà eu un problème en raison d'un mauvais bootloader enregistré) mais je ne trouve plus où je peux le modifier, à moins que ce soit automatique maintenant ??
Si vous avez d'autres idées je suis preneur... Pour finir il s'agit d'un CI SSD1963QL à l'arrière de l'écran. il y a quand même des personne qui utilise cet écran et qui devraient me guider et là personne c'est un peut décourageant (et rageant) mais bon, au moins ça me permet d'apprendre un peu plus...

merci pour votre aide.

Niko

IDE signifie en français EDI = Environnement de Développement Intégré.
Un EDI facilite l'usage de bibliothèques, mais n'est pas responsable des bibliothèques.
J'ajoute que le gestionaire de bibliothèque de l'IDE n'est là que pour te faciliter la tâche en te proposant un échantillon de bibliothèques.
Il n'est pas exhaustif et rien ne prouve qu'il est à jour.

As tu essayer de taper dans un moteur de recherche les mots magiques :
"Github SSD1963QL"
sachant que majoritairement les bibliothèques sont hébergées sur Github.

Je viens de le faire et j'ai de nombreuses propositions.

Et bien par exemple t'assurer que le matériel correspond bien aux exigences énumérés dans la doc de la librairie que tu utilises.


L'IDE c'est juste un environnement de travail. Il n'est pas responsable du code que tu essaies de compiler, ni des librairies que tu utilises.


Le bootloader est à incriminer si tu n'arrives plus à télécharger ton code c'est tout.

Je ne connais absolument pas cet écran et je n'ai vu personne en parler sur le forum à part vous mais une recherche sur le forum pour "SSD1963" donne quelques hits.

j'ai aussi une aversion peut-être infondée pour les bibliothèques de Rinky-Dink ...

Après tout ce que j'ai essayé je me demande s'il n'y a pas un problème avec la carte d'adaptation entre le Mega2560 et l'écran 7"... pourtant c'est pas l'alimentation car il y a 3.3volts sur la sortie du régulateur de cette carte et il n'y a que 5 ci de même modèle, à mon avis des convertisseur ou des autre choses que je ne maitrise pas... mais je ne sais pas les contrôler... je verrai si un jour je trouve une solution et je la partagerais .

La tension peut être OK mais le courant dispo ?

Je suppose que l'intensité est OK, car un régulateur, si il dépasse l'intensité dédié baisse en tension et j'ai essayer avec la prise USB et avec la prise 9volts sur une petite alim, c'est pas ça... ce que je peux encore faire c'est de mesurer cette intensité ou du moins l'intensité de la carte avec mon alim...

Au dos de la carte, la consommation est indiquée
image