probleme de debutant.

Bonjour.
je suis du sud et je me lance dans le monde arduino pour l’aquariophilie.
je me fourvoie peut être mais dans ma tete ça ce passer comme en informatique.
je choisi mes pièces, je vérifie les compatibilités, j’achète le matos, je le monte, j’installe l’os, quelque réglage de driver et autre, et c’est parti.

donc plutôt que de me fourvoyer avec les comparabilité je choisie d’acheter sur Ebay un pack complet ( mega 2560, shiel tft, écran 3,2 tactile)

je reçois mon matos, le monte, récupère le logiciel arduino les librairie UTFT et UTOUCH et la premier test =(

affichage inversé droite <> gauche et manque des ligne.

mon vendeur me fait parvenir ses lib mais rien n’y fait. (et il s’enerve).
ma question est : AU SECOURS D’OÙ ÇA VIENS. =(

il faudrait déjà commencer par nous mettre ton code…

la vache c’est du rapide.
bonsoir albaflo.

tu veux tout le code :astonished:
ça rentre pas.

nan, juste la ligne de code qui plante ça ira plus vite pour la trouver :smiley:
(insère le code entre balises #)

La librairie UTFT gère de nombreux écrans différents, il faut lui indiquer celui qu'on utilise
Tu dois probablement avoir une ligne de ce genre qui indique les pins utilisées :
UTFT(byte model, int RS, int WR,int CS, int RST,int ALE,int SER)

UTFT();
		UTFT(byte model, int RS, int WR,int CS, int RST, int SER=0);
		void InitLCD(byte orientation=LANDSCAPE);
		void clrScr();
		void drawPixel(int x, int y);
		void drawLine(int x1, int y1, int x2, int y2);
		void fillScr(byte r, byte g, byte b);
		void drawRect(int x1, int y1, int x2, int y2);
		void drawRoundRect(int x1, int y1, int x2, int y2);
		void fillRect(int x1, int y1, int x2, int y2);
		void fillRoundRect(int x1, int y1, int x2, int y2);
		void drawCircle(int x, int y, int radius);
		void fillCircle(int x, int y, int radius);
		void setColor(byte r, byte g, byte b);
		void setBackColor(byte r, byte g, byte b);
		void print(char *st, int x, int y, int deg=0);
		void print(String st, int x, int y, int deg=0);
		void printNumI(long num, int x, int y, int length=0, char filler=' ');
		void printNumF(double num, byte dec, int x, int y, char divider='.', int length=0, char filler=' ');
		void setFont(uint8_t* font);
		void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
		void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
		void lcdOff();
		void lcdOn();
		void setContrast(char c);
		int  getDisplayXSize();
		int	 getDisplayYSize();

c'est ça?

Salut,

Avec le driver il y a un exemple? Il fonctionne?

Tu a bien recontrolé le cablage des pins du shield

c'est quoi la marque de ton shield? J'ai dejà acheté des shield comme toi sur ebay et j'ai abandonné, il a jamais fonctionné.

C'est pour un Sebduino ton projet?

le matos.

dudux2:
C'est pour un Sebduino ton projet?

salut
pour le ferduino ou jarduino.
les exemple donne les images ci dessus premier post.
les trois pièce sont l'une sur l'autre comme décrit par le vendeur.

je trouvais plus la photo.

les données du shield: elecfreak module TFT01_3.2 modele TFT01_32

Tu as suivis des conseils ou tu tuto qui te dise d'acheté ce module précis pour le ferduino?

non trouvé un ensemble certifié fonctionnant.
mais pas encore mis d’appréciation :slight_smile:

Dans ton code tu définis normalement le type d'écran utilisé avec UTFT(model, RS, WR, CS, RST, SER);
tu as mis quoi comme model ? (car le nombre de pixels à afficher dépend du format LxH de l'écran).
et est ce que les pins de branchement Rs Wr Cs Rst... indiquées dans le code correspondent à celles de l'écran ?

Peut tu nous mettre ton code en fichier zip ainsi que la librairie

tout d'abord un grand merci a vous tous, de vous penchez sur les problèmes d'un débutant.

Christian_R:
Dans ton code tu définis normalement le type d'écran utilisé avec UTFT(model, RS, WR, CS, RST, SER);
tu as mis quoi comme model ? (car le nombre de pixels à afficher dépend du format LxH de l'écran).
et est ce que les pins de branchement Rs Wr Cs Rst... indiquées dans le code correspondent à celles de l'écran ?

tu parle de ça?

#ifndef UTFT_h
#define UTFT_h

#define LEFT 0
#define RIGHT 9999
#define CENTER 9998

#define PORTRAIT 0
#define LANDSCAPE 1

#define HX8347A			0
#define ILI9327			1
#define SSD1289			2
#define ILI9325C		3
#define ILI9325D_8		4
#define ILI9325D_16		5
#define HX8340B_8		6
#define HX8340B_S		7
#define HX8352A			8
#define ST7735			9
#define PCF8833			10
#define S1D19122		11
#define SSD1963_480		12
#define SSD1963_800		13
#define S6D1121_8		14
#define S6D1121_16		15

#define ITDB32			0	// HX8347-A (16bit)
#define ITDB32WC		1	// ILI9327  (16bit)
#define TFT01_32W		1	// ILI9327	(16bit)
#define ITDB32S			2	// SSD1289  (16bit)
#define TFT01_32		2	// SSD1289  (16bit)
#define ITDB24			3	// ILI9325C (8bit)
#define ITDB24D			4	// ILI9325D (8bit)
#define ITDB24DWOT		4	// ILI9325D (8bit)
#define ITDB28			4	// ILI9325D (8bit)
#define TFT01_24_8		4	// ILI9325D (8bit)
#define TFT01_24_16		5	// ILI9325D (16bit)
#define ITDB22			6	// HX8340-B (8bit)
#define ITDB22SP		7	// HX8340-B (Serial)
#define ITDB32WD		8	// HX8352-A (16bit)
#define TFT01_32WD		8	// HX8352A	(16bit)
#define ITDB18SP		9	// ST7735   (Serial)
#define LPH9135			10	// PCF8833	(Serial)
#define ITDB25H			11	// S1D19122	(16bit)
#define ITDB43			12	// SSD1963	(16bit) 480x272
#define ITDB50			13	// SSD1963	(16bit) 800x480
#define ITDB24E_8		14	// S6D1121	(8bit)
#define ITDB24E_16		15	// S6D1121	(16bit)

#define SERIAL_4PIN		4
#define SERIAL_5PIN		5

le mien si j'ai bien compris #define ITDB32S 2 // SSD1289 (16bit) si non je bloque.

dudux2:
Peut tu nous mettre ton code en fichier zip ainsi que la librairie

Ferduino_French.ino.zip (8.04 KB)

UTFT.zip (714 KB)

Christian_R:
Dans ton code tu définis normalement le type d'écran utilisé avec UTFT(model, RS, WR, CS, RST, SER);
tu as mis quoi comme model ? (car le nombre de pixels à afficher dépend du format LxH de l'écran).
et est ce que les pins de branchement Rs Wr Cs Rst... indiquées dans le code correspondent à celles de l'écran ?

je continu de chercher.

est ce ça
changer le x 239 par 0
y 319 par 0

		case SSD1289:
			disp_x_size=239;
			disp_y_size=319;
			display_transfer_mode=16;
			break;

salut.
j’ai trouvé chez le fabricant “elecfreaks” sur cette page
http://www.elecfreaks.com/wiki/index.php?title=3.2"_TFT_LCD_Screen_Module (ci ça peut aider).
ce code.

#define LCD_RS   38         
#define LCD_WR   39     
#define LCD_CS   40       
#define LCD_REST 41

#define DCLK     6
#define CS       5  
#define DIN      4 
#define DOUT     3
#define IRQ      2 

unsigned int TP_X,TP_Y;
void spistar()                                     //SPI Start
{
  digitalWrite(CS,HIGH);
  digitalWrite(DCLK,HIGH);
  digitalWrite(DIN,HIGH);
  digitalWrite(DCLK,HIGH);
 
}
//**********************************************************
void WriteCharTo7843(unsigned char num)          //SPI Write Data
{
  unsigned char count=0;
  unsigned char temp;
  unsigned nop;
  temp=num;
  digitalWrite(DCLK,LOW);
  for(count=0;count<8;count++)
  {
    if(temp&0x80)
      digitalWrite(DIN,HIGH);
    else
      digitalWrite(DIN,LOW);
 
    temp=temp<<1; 
 
    digitalWrite(DCLK,LOW);                
    nop++;
    nop++;
    digitalWrite(DCLK,HIGH);
    nop++;
    nop++;
  }
}
 
//**********************************************************
unsigned int ReadFromCharFrom7843()             //SPI Read Data
{ 
  unsigned nop;
  unsigned char count=0;
  unsigned int Num=0;
  for(count=0;count<12;count++)
  {
    Num<<=1;
    digitalWrite(DCLK,HIGH);//DCLK=1; _nop_();_nop_();_nop_();                
    nop++;
    digitalWrite(DCLK,LOW);//DCLK=0; _nop_();_nop_();_nop_();
    nop++;
    if(digitalRead(DOUT)) Num++;
  }
  return(Num);
}
 
void AD7843(void)              
{
  digitalWrite(CS,LOW);                    
  WriteCharTo7843(0x90); 
  digitalWrite(DCLK,HIGH);
  digitalWrite(DCLK,LOW); 
  TP_Y=ReadFromCharFrom7843();
  WriteCharTo7843(0xD0);   
  digitalWrite(DCLK,HIGH);
  digitalWrite(DCLK,LOW);
  TP_X=ReadFromCharFrom7843();
  digitalWrite(CS,HIGH);
}
 
 
 
void Lcd_Writ_Bus(char VH,char VL)
{
  PORTA = VH;
  PORTC = VL;
  digitalWrite(LCD_WR,LOW);
  digitalWrite(LCD_WR,HIGH);
}
 
 
void Lcd_Write_Com(char VH,char VL)  
{   
  digitalWrite(LCD_RS,LOW);
  Lcd_Writ_Bus(VH,VL);
}
 
void Lcd_Write_Data(char VH,char VL)
{
  digitalWrite(LCD_RS,HIGH);
  Lcd_Writ_Bus(VH,VL);
}
 
void Lcd_Write_Com_Data(int com,int dat)
{
     Lcd_Write_Com(com>>8,com);
     Lcd_Write_Data(dat>>8,dat);
}
 
void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
      Lcd_Write_Com_Data(0x0044,(x2<<8)+x1);
      Lcd_Write_Com_Data(0x0045,y1);
      Lcd_Write_Com_Data(0x0046,y2);
      Lcd_Write_Com_Data(0x004e,x1);
      Lcd_Write_Com_Data(0x004f,y1);
      Lcd_Write_Com(0x00,0x22);							 
}
 
void Lcd_Init(void)
{
       digitalWrite(LCD_REST,HIGH);
       delay(5); 
       digitalWrite(LCD_REST,LOW);
       delay(15);
       digitalWrite(LCD_REST,HIGH);
       delay(15);
 
    Lcd_Write_Com_Data(0x0000,0x0001);    delay(1);  //????
    Lcd_Write_Com_Data(0x0003,0xA8A4);    delay(1);   //0xA8A4
    Lcd_Write_Com_Data(0x000C,0x0000);    delay(1);   
    Lcd_Write_Com_Data(0x000D,0x080C);    delay(1);   
    Lcd_Write_Com_Data(0x000E,0x2B00);    delay(1);   
    Lcd_Write_Com_Data(0x001E,0x00B7);    delay(1);   
    Lcd_Write_Com_Data(0x0001,0x2B3F);    delay(1);   //??????320*240  0x6B3F
    Lcd_Write_Com_Data(0x0002,0x0600);    delay(1);
    Lcd_Write_Com_Data(0x0010,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0011,0x6070);    delay(1);        //0x4030           //??????  16?? 
    Lcd_Write_Com_Data(0x0005,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0006,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0016,0xEF1C);    delay(1);
    Lcd_Write_Com_Data(0x0017,0x0003);    delay(1);
    Lcd_Write_Com_Data(0x0007,0x0233);    delay(1);        //0x0233       
    Lcd_Write_Com_Data(0x000B,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x000F,0x0000);    delay(1);        //??????
    Lcd_Write_Com_Data(0x0041,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0042,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0048,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0049,0x013F);    delay(1);
    Lcd_Write_Com_Data(0x004A,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x004B,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0044,0xEF00);    delay(1);
    Lcd_Write_Com_Data(0x0045,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0046,0x013F);    delay(1);
    Lcd_Write_Com_Data(0x0030,0x0707);    delay(1);
    Lcd_Write_Com_Data(0x0031,0x0204);    delay(1);
    Lcd_Write_Com_Data(0x0032,0x0204);    delay(1);
    Lcd_Write_Com_Data(0x0033,0x0502);    delay(1);
    Lcd_Write_Com_Data(0x0034,0x0507);    delay(1);
    Lcd_Write_Com_Data(0x0035,0x0204);    delay(1);
    Lcd_Write_Com_Data(0x0036,0x0204);    delay(1);
    Lcd_Write_Com_Data(0x0037,0x0502);    delay(1);
    Lcd_Write_Com_Data(0x003A,0x0302);    delay(1);
    Lcd_Write_Com_Data(0x003B,0x0302);    delay(1);
    Lcd_Write_Com_Data(0x0023,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0024,0x0000);    delay(1);
    Lcd_Write_Com_Data(0x0025,0x8000);    delay(1);
    Lcd_Write_Com_Data(0x004f,0);        //???0
    Lcd_Write_Com_Data(0x004e,0);        //???0
    Lcd_Write_Com(0x00,0x22);	
 
}
 
void Pant(char VH,char VL)
{
  int i,j;
  digitalWrite(LCD_CS,LOW); 
  Address_set(0,0,239,319);              //[color=red]j'ai modifié ça pour voir et rien.[/color]
  for(i=0;i<320;i++)
  {
    for (j=0;j<240;j++)
    {
      Lcd_Write_Data(VH,VL);
    }
 
  }
  digitalWrite(LCD_CS,HIGH);  
}
 
void setup()
{
  for(int p=22;p<42;p++)
  {
    pinMode(p,OUTPUT);
  }
  for(int p=2; p<7;p++)
      pinMode(p,OUTPUT);
  pinMode(DOUT,INPUT);
  pinMode(IRQ,INPUT);
 
  Lcd_Init();         
  Pant(0x00, 0x00);
  delay(500); 
}
 
void loop()
{
  unsigned char flag;
  unsigned char ss[6];	
  unsigned int lx,ly;
  spistar();  
  int pacy=random(0, 7);  
  while(digitalRead(IRQ)==0)
  {  	
      digitalWrite(LCD_CS,LOW); 
      AD7843();
      lx=((TP_X-340)*10/144);
      if(lx>237) lx=237;
      ly=320-((TP_Y-320)/11);
      if(ly<0) ly=0;
      Address_set(lx,ly,lx+2,ly+2);
      switch(pacy)
                                {
                                  case 0: for(int i=0; i<5; i++)  Lcd_Write_Data(0xF8,0x00);  break;   //Red
                                  case 1: for(int i=0; i<5; i++)  Lcd_Write_Data(0xFF,0xE0);  break;   //Yellow
                                  case 2: for(int i=0; i<5; i++)  Lcd_Write_Data(0xFF,0xFF);  break;   //White 
                                  case 3: for(int i=0; i<5; i++)  Lcd_Write_Data(0x05,0x1F);  break;   //Blue
                                  case 4: for(int i=0; i<5; i++)  Lcd_Write_Data(0x00,0x1F);  break;   //Blue-2
                                  case 5: for(int i=0; i<5; i++)  Lcd_Write_Data(0xF8,0x1F);  break;   //Magenta
                                  case 6: for(int i=0; i<5; i++)  Lcd_Write_Data(0x07,0xE0);  break;   //Green
                                  case 7: for(int i=0; i<5; i++)  Lcd_Write_Data(0x7F,0xFF);  break;   //Cyan
                                  defoult:for(int i=0; i<5; i++)  Lcd_Write_Data(0x00,0x00);  break;   //Black
                                }
      digitalWrite(LCD_CS,HIGH); 
    }
}

il ne fait pas appel a aucune librairie n’est ce pas ?
je l’installe, il fonctionne parfaitement. SAUF l’affichage inversé .
il doit bien s’agir de connexion.
mais les quelles? la je sèche.
AU SECOUUUUUUUUUUUUUR =(

si tu ne dis pas comment tu le connectes...

"allo docteur, je suis malade, j'ai quoi ?" :frowning:

salut
merci de l'aide, mais il va falloir être plus clair. :slight_smile:
j'y est passer la journée et j'ai plus le cerveau clair.

je vous rappelle je débute, déjà vu de se genre d'architecture, je tourne sous opensuse.
mais ou, quoi, comment, je suis perdu.

#define LCD_RS   38         
#define LCD_WR   39     
#define LCD_CS   40       
#define LCD_REST 41

#define DCLK     6
#define CS       5  
#define DIN      4 
#define DOUT     3
#define IRQ      2

c’est ça donc tu parle ?