texte sur un afficheur TFT 2.2

j'ai testé le programme pour afficher des carrés en couleur sur une arduino uno avec l'afficheur :

http://www.elecfreaks.com/wiki/index.php?title=TFT2.2_Serial_LCD_Shield
cela fonctionne mais je ne trouve rien pour afficher du texte. tous les exemples que j'ai trouvé ne fonctionnent pas. qui peux m'aider? quelles bibliotheques, quelles instructions pour la police, la couleur, la position.

Salut,
ton TFT utilise le contrôleur ILI9341. Je te conseil la bibliothèque d'Adafruit sans oublier (Adafruit_GFX )
Une documentation claire y est joint, n'hésite pas as revenir si tu as encore les même soucis ou d'autre..

J'ai donné un exemple sur cette page

Scoob:
Salut,
ton TFT utilise le contrôleur ILI9341. Je te conseil la bibliothèque d'Adafruit sans oublier (Adafruit_GFX )
Une documentation claire y est joint, n'hésite pas as revenir si tu as encore les même soucis ou d'autre..

salut,
j'avais déjà essayé ces librairies mais rien, l'écran reste blanc...ce qui marche cavec les carrés de couleur c'est ce programme :
Just for ElecFreaks TFT01-2.2SP, which use SPI serial port and 240x320 pixel.
The driver is ILI9341.

by Elecfreaks
==========================================================================*/
#include "pins_arduino.h"

#define LCD_WR 4 //SCL
#define LCD_RS 3 //SDA
#define LCD_DC 6 //A0
#define LCD_REST 5 //RESET
#define LCD_CS 7 //CSE
/*
#define LCD_WR 9 //SCL
#define LCD_RS 10//SDA
#define LCD_DC 11 //A0
#define LCD_REST 12 //RESET
#define LCD_CS 13 //CSE
*/
volatile uint8_t *P_SCK, *P_MOSI, *P_DC, *P_RST, *P_CS;
volatile uint8_t B_SCK, B_MOSI, B_DC, B_RST, B_CS;

void LCD_Writ_Bus(char data)
{
*P_CS &= ~B_CS;
for (unsigned char c=0; c<8; c++)
{
if (data & 0x80)
*P_MOSI |= B_MOSI;
else
*P_MOSI &= ~B_MOSI;
data = data<<1;
*P_SCK &= ~B_SCK;
asm ("nop");
*P_SCK |= B_SCK;
}
*P_CS |= B_CS;
}

void LCD_Write_COM(char VL)
{
digitalWrite(LCD_DC,LOW);
LCD_Writ_Bus(VL);
}

void LCD_Write_DATA(char VL)
{
digitalWrite(LCD_DC,HIGH);
LCD_Writ_Bus(VL);
}

void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);

LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);

LCD_Write_COM(0x2C);
}

void LCD_Init(void)
{
P_SCK = portOutputRegister(digitalPinToPort(LCD_WR));
B_SCK = digitalPinToBitMask(LCD_WR);
P_MOSI = portOutputRegister(digitalPinToPort(LCD_RS));
B_MOSI = digitalPinToBitMask(LCD_RS);
P_DC = portOutputRegister(digitalPinToPort(LCD_DC));
B_DC = digitalPinToBitMask(LCD_DC);
P_RST = portOutputRegister(digitalPinToPort(LCD_REST));
B_RST = digitalPinToBitMask(LCD_REST);
P_CS = portOutputRegister(digitalPinToPort(LCD_CS));
B_CS = digitalPinToBitMask(LCD_CS);

*P_RST &= ~B_RST;
delay(10);
*P_RST |= B_RST;

LCD_Write_COM(0xCB);
LCD_Write_DATA(0x39);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x34);
LCD_Write_DATA(0x02);

LCD_Write_COM(0xCF);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0XC1);
LCD_Write_DATA(0X30);

LCD_Write_COM(0xE8);
LCD_Write_DATA(0x85);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x78);

LCD_Write_COM(0xEA);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);

LCD_Write_COM(0xED);
LCD_Write_DATA(0x64);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0X12);
LCD_Write_DATA(0X81);

LCD_Write_COM(0xF7);
LCD_Write_DATA(0x20);

LCD_Write_COM(0xC0); //Power control
LCD_Write_DATA(0x23); //VRH[5:0]

LCD_Write_COM(0xC1); //Power control
LCD_Write_DATA(0x10); //SAP[2:0];BT[3:0]

LCD_Write_COM(0xC5); //VCM control
LCD_Write_DATA(0x3e); //Contrast
LCD_Write_DATA(0x28);

LCD_Write_COM(0xC7); //VCM control2
LCD_Write_DATA(0x86); //--

LCD_Write_COM(0x36); // Memory Access Control
LCD_Write_DATA(0x48); //C8 //48 68竖屏//28 E8 横屏

LCD_Write_COM(0x3A);
LCD_Write_DATA(0x55);

LCD_Write_COM(0xB1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x18);

LCD_Write_COM(0xB6); // Display Function Control
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x82);
LCD_Write_DATA(0x27);
/*
LCD_Write_COM(0xF2); // 3Gamma Function Disable
LCD_Write_DATA(0x00);

LCD_Write_COM(0x26); //Gamma curve selected
LCD_Write_DATA(0x01);

LCD_Write_COM(0xE0); //Set Gamma
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x2B);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x4E);
LCD_Write_DATA(0xF1);
LCD_Write_DATA(0x37);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x09);
LCD_Write_DATA(0x00);

LCD_Write_COM(0XE1); //Set Gamma
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x14);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0xC1);
LCD_Write_DATA(0x48);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x36);
LCD_Write_DATA(0x0F);
*/
LCD_Write_COM(0x11); //Exit Sleep
delay(120);

LCD_Write_COM(0x29); //Display on
LCD_Write_COM(0x2c);
}

void Pant(char VL)
{
int i,j;
Address_set(0,0,240,320);
for(i=0;i<320;i++)
{
for (j=0;j<480;j++)
{
LCD_Write_DATA(VL);
}
}
}

void setup()
{
unsigned char p;
for(p=0;p<14;p++)
pinMode(p,OUTPUT);
LCD_Init();
}

void loop()
{
Pant(0xFF);
Pant(0xF0);
Pant(0xE0);
Pant(0x05);
Pant(0x1F);
Pant(0x00);
}

j'enrage car j'ai testé tellement d'exemples!!!
merci pour ton aide

micol:
J'ai donné un exemple sur cette page

merci mais j'ai déjà testé ces programmes et ça ne fonctionnent pas non plus (j'ai adapté les bornes à la uno). ce qui me titille c'est que l'écran que j'ai à priori, il accepte le 5v lui pas comme celui que tu me proposes. le programme qui fonctioone pour les carrés :
Just for ElecFreaks TFT01-2.2SP, which use SPI serial port and 240x320 pixel.
The driver is ILI9341.

by Elecfreaks
==========================================================================*/
#include "pins_arduino.h"

#define LCD_WR 4 //SCL
#define LCD_RS 3 //SDA
#define LCD_DC 6 //A0
#define LCD_REST 5 //RESET
#define LCD_CS 7 //CSE
/*
#define LCD_WR 9 //SCL
#define LCD_RS 10//SDA
#define LCD_DC 11 //A0
#define LCD_REST 12 //RESET
#define LCD_CS 13 //CSE
*/
volatile uint8_t *P_SCK, *P_MOSI, *P_DC, *P_RST, *P_CS;
volatile uint8_t B_SCK, B_MOSI, B_DC, B_RST, B_CS;

void LCD_Writ_Bus(char data)
{
*P_CS &= ~B_CS;
for (unsigned char c=0; c<8; c++)
{
if (data & 0x80)
*P_MOSI |= B_MOSI;
else
*P_MOSI &= ~B_MOSI;
data = data<<1;
*P_SCK &= ~B_SCK;
asm ("nop");
*P_SCK |= B_SCK;
}
*P_CS |= B_CS;
}

void LCD_Write_COM(char VL)
{
digitalWrite(LCD_DC,LOW);
LCD_Writ_Bus(VL);
}

void LCD_Write_DATA(char VL)
{
digitalWrite(LCD_DC,HIGH);
LCD_Writ_Bus(VL);
}

void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);

LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);

LCD_Write_COM(0x2C);
}

void LCD_Init(void)
{
P_SCK = portOutputRegister(digitalPinToPort(LCD_WR));
B_SCK = digitalPinToBitMask(LCD_WR);
P_MOSI = portOutputRegister(digitalPinToPort(LCD_RS));
B_MOSI = digitalPinToBitMask(LCD_RS);
P_DC = portOutputRegister(digitalPinToPort(LCD_DC));
B_DC = digitalPinToBitMask(LCD_DC);
P_RST = portOutputRegister(digitalPinToPort(LCD_REST));
B_RST = digitalPinToBitMask(LCD_REST);
P_CS = portOutputRegister(digitalPinToPort(LCD_CS));
B_CS = digitalPinToBitMask(LCD_CS);

*P_RST &= ~B_RST;
delay(10);
*P_RST |= B_RST;

LCD_Write_COM(0xCB);
LCD_Write_DATA(0x39);
LCD_Write_DATA(0x2C);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x34);
LCD_Write_DATA(0x02);

LCD_Write_COM(0xCF);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0XC1);
LCD_Write_DATA(0X30);

LCD_Write_COM(0xE8);
LCD_Write_DATA(0x85);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x78);

LCD_Write_COM(0xEA);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);

LCD_Write_COM(0xED);
LCD_Write_DATA(0x64);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0X12);
LCD_Write_DATA(0X81);

LCD_Write_COM(0xF7);
LCD_Write_DATA(0x20);

LCD_Write_COM(0xC0); //Power control
LCD_Write_DATA(0x23); //VRH[5:0]

LCD_Write_COM(0xC1); //Power control
LCD_Write_DATA(0x10); //SAP[2:0];BT[3:0]

LCD_Write_COM(0xC5); //VCM control
LCD_Write_DATA(0x3e); //Contrast
LCD_Write_DATA(0x28);

LCD_Write_COM(0xC7); //VCM control2
LCD_Write_DATA(0x86); //--

LCD_Write_COM(0x36); // Memory Access Control
LCD_Write_DATA(0x48); //C8 //48 68竖屏//28 E8 横屏

LCD_Write_COM(0x3A);
LCD_Write_DATA(0x55);

LCD_Write_COM(0xB1);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x18);

LCD_Write_COM(0xB6); // Display Function Control
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x82);
LCD_Write_DATA(0x27);
/*
LCD_Write_COM(0xF2); // 3Gamma Function Disable
LCD_Write_DATA(0x00);

LCD_Write_COM(0x26); //Gamma curve selected
LCD_Write_DATA(0x01);

LCD_Write_COM(0xE0); //Set Gamma
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x2B);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x4E);
LCD_Write_DATA(0xF1);
LCD_Write_DATA(0x37);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x09);
LCD_Write_DATA(0x00);

LCD_Write_COM(0XE1); //Set Gamma
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x0E);
LCD_Write_DATA(0x14);
LCD_Write_DATA(0x03);
LCD_Write_DATA(0x11);
LCD_Write_DATA(0x07);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0xC1);
LCD_Write_DATA(0x48);
LCD_Write_DATA(0x08);
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x0C);
LCD_Write_DATA(0x31);
LCD_Write_DATA(0x36);
LCD_Write_DATA(0x0F);
*/
LCD_Write_COM(0x11); //Exit Sleep
delay(120);

LCD_Write_COM(0x29); //Display on
LCD_Write_COM(0x2c);
}

void Pant(char VL)
{
int i,j;
Address_set(0,0,240,320);
for(i=0;i<320;i++)
{
for (j=0;j<480;j++)
{
LCD_Write_DATA(VL);
}
}
}

void setup()
{
unsigned char p;
for(p=0;p<14;p++)
pinMode(p,OUTPUT);
LCD_Init();
}

void loop()
{
Pant(0xFF);
Pant(0xF0);
Pant(0xE0);
Pant(0x05);
Pant(0x1F);
Pant(0x00);
}

si tu peux me dire comment insérer du texte...merci pour ton aide

yes, c'est bon, grace à vous j'ai enfin réussi...il y avait une des bornes de l'afficheur ou je n'avais pas mis le bon numéro de borne