подключение 2.4 Inch Colour TFT

Вячеслав 151
Offline
Зарегистрирован: 25.03.2015

Добрый, всем форумчанам!

Имею несколько 2,4 TFT дисплеев. Использовал разные библиотеки. На экране только подсветка и иногда рябь. Где зарыта собака? Как запустить?

 

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

Как вариант - Вы цепляете дисплей, который работает только с 3.3 Вольта (и питание и сигналы), к 5 вольтовой аруине.

А может просто не ту библиотеку используете. Что хоть за дисплей? и какая ардуина?

Вячеслав 151
Offline
Зарегистрирован: 25.03.2015

Arduino Uno. Дисплеи китайские 2,4 TFT  LCD Shield. Есть  с Recet, есть без кнопки. Серийник открываю, вижу что идет тест, видит дисплей. видно что отзывается на прикосновение к экрану, а на экране только подсветка. На одном появляется какая то рябь.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Дисплей КИТАЙСКИЙ, это конечно же все прояснило. А уточнение 2,4 вообще свело все буквально к десятку разных контролеров имеющих каждый с пяток всяких модифицированых библиотек.
вообще фигня, берем колоду на 51 карту. Угадайте какую карту я вытащил? Она прямоугольная и с картинкой.

Вячеслав 151
Offline
Зарегистрирован: 25.03.2015

От чего оттолкнуться? Искать какой контроллер?

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

спроситу у продавца какую библиотеку курить

Вячеслав 151
Offline
Зарегистрирован: 25.03.2015

китайцы скинули такую библу

[code]

#define LCD_RD   A0
#define LCD_WR   A1     
#define LCD_RS   A2        
#define LCD_CS   A3       
#define LCD_REST A4

void Lcd_Writ_Bus(unsigned char VH)
{
    unsigned int i,temp,data; 
    data=VH;
    for(i=8;i<=9;i++)
    {
      temp=(data&0x01);
      if(temp)
        digitalWrite(i,HIGH);
      else
        digitalWrite(i,LOW);
      data=data>>1;
    }
    digitalWrite(LCD_WR,LOW);	
    for(i=2;i<=7;i++)
    {
      temp=(data&0x01);
      if(temp)
        digitalWrite(i,HIGH);
      else
        digitalWrite(i,LOW);
      data=data>>1;
    }	 
    digitalWrite(LCD_WR,HIGH);
}


void Lcd_Write_Com(unsigned char VH)  
{   
    digitalWrite(LCD_CS,LOW);
    digitalWrite(LCD_RS,LOW);
    Lcd_Writ_Bus(VH);
    digitalWrite(LCD_CS,HIGH);
    digitalWrite(LCD_RS,HIGH);
}

void Lcd_Write_Data(unsigned char VH)
{
    digitalWrite(LCD_CS,LOW);
    digitalWrite(LCD_RS,HIGH);
    Lcd_Writ_Bus(VH);
    digitalWrite(LCD_CS,HIGH);
    digitalWrite(LCD_RS,HIGH);
}



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(0xF0);
  Lcd_Write_Data(0x5A);
	Lcd_Write_Data(0x5A);
	Lcd_Write_Com(0xFC);
	Lcd_Write_Data(0x5A);
	Lcd_Write_Data(0x5A);
	Lcd_Write_Com(0xFD);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x10);
	Lcd_Write_Data(0x14);
	Lcd_Write_Data(0x12);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x48);
	Lcd_Write_Data(0x40);
	Lcd_Write_Data(0x16);
	Lcd_Write_Data(0x16);
	Lcd_Write_Com(0x35);
	Lcd_Write_Com(0x36);
	Lcd_Write_Data(0x28);//0x68
	Lcd_Write_Com(0x3A);
	Lcd_Write_Data(0x55);//0x55
	Lcd_Write_Com(0xF2);
	Lcd_Write_Data(0x28);
	Lcd_Write_Data(0x5B);
	Lcd_Write_Data(0x7F);
	Lcd_Write_Data(0x08);
	Lcd_Write_Data(0x08);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x15);
	Lcd_Write_Data(0x48);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x07);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x63);
	Lcd_Write_Data(0x08);
	Lcd_Write_Data(0x08);
	Lcd_Write_Com(0xF7);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x10);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xF8);
	Lcd_Write_Data(0x33);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xF6);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x07);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x03);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x03);
	Lcd_Write_Com(0xF5);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x2E);
	Lcd_Write_Data(0x40);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x0D);
	Lcd_Write_Data(0x0D);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xF4);
	Lcd_Write_Data(0x07);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x22);
	Lcd_Write_Data(0x64);
	Lcd_Write_Data(0x01);
	Lcd_Write_Data(0x02);
	Lcd_Write_Data(0x2A);
	Lcd_Write_Data(0x4D);
	Lcd_Write_Data(0x06);
	Lcd_Write_Data(0x2A);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x06);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xF3);
	Lcd_Write_Data(0x01);
	//GAMMA
	Lcd_Write_Com(0xF9);
	Lcd_Write_Data(0x04);
	Lcd_Write_Com(0xFA);
	Lcd_Write_Data(0x0A);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x25);
	Lcd_Write_Data(0x33);
	Lcd_Write_Data(0x2D);
	Lcd_Write_Data(0x27);
	Lcd_Write_Data(0x22);
	Lcd_Write_Data(0x1E);
	Lcd_Write_Data(0x1A);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xFB);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x1E);
	Lcd_Write_Data(0x20);
	Lcd_Write_Data(0x23);
	Lcd_Write_Data(0x18);
	Lcd_Write_Data(0x3D);
	Lcd_Write_Data(0x25);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x0B);
	Lcd_Write_Data(0x00);

	Lcd_Write_Com(0xF9);
	Lcd_Write_Data(0x02);
	Lcd_Write_Com(0xFA);
	Lcd_Write_Data(0x0A);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x25);
	Lcd_Write_Data(0x33);
	Lcd_Write_Data(0x2D);
	Lcd_Write_Data(0x27);
	Lcd_Write_Data(0x22);
	Lcd_Write_Data(0x1E);
	Lcd_Write_Data(0x1A);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xFB);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x1E);
	Lcd_Write_Data(0x20);
	Lcd_Write_Data(0x23);
	Lcd_Write_Data(0x18);
	Lcd_Write_Data(0x3D);
	Lcd_Write_Data(0x25);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x0B);
	Lcd_Write_Data(0x00);

	Lcd_Write_Com(0xF9);
	Lcd_Write_Data(0x01);
	Lcd_Write_Com(0xFA);
	Lcd_Write_Data(0x0A);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x25);
	Lcd_Write_Data(0x33);
	Lcd_Write_Data(0x2D);
	Lcd_Write_Data(0x27);
	Lcd_Write_Data(0x22);
	Lcd_Write_Data(0x1E);
	Lcd_Write_Data(0x1A);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0xFB);
	Lcd_Write_Data(0x0C);
	Lcd_Write_Data(0x04);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x1E);
	Lcd_Write_Data(0x20);
	Lcd_Write_Data(0x23);
	Lcd_Write_Data(0x18);
	Lcd_Write_Data(0x3D);
	Lcd_Write_Data(0x25);
	Lcd_Write_Data(0x19);
	Lcd_Write_Data(0x0B);
	Lcd_Write_Data(0x00);
	Lcd_Write_Com(0x11);
	 delay(100);
	Lcd_Write_Com(0xF0);
	Lcd_Write_Data(0xA5);
	Lcd_Write_Data(0xA5);
	Lcd_Write_Com(0xFC);
	Lcd_Write_Data(0xA5);
	Lcd_Write_Data(0xA5);
	Lcd_Write_Com(0x2a);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x01);//0x01
	Lcd_Write_Data(0x3f);//0x3f
	Lcd_Write_Com(0x2b);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);
	Lcd_Write_Data(0x00);//0x00
	Lcd_Write_Data(0xef);//0xef
	Lcd_Write_Com(0x29);
	Lcd_Write_Com(0x2c);
}
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&0xFF);
    Lcd_Write_Data(x2>>8);//0x01
    Lcd_Write_Data(x2&0xFF);//0x3f
    Lcd_Write_Com(0x2b);
    Lcd_Write_Data(y1>>8);
    Lcd_Write_Data(y1&0xFF);
    Lcd_Write_Data(y2>>8);//0x01
    Lcd_Write_Data(y2&0xFF);//0x3f	
    Lcd_Write_Com(0x2c);					 
}
void H_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)                   
{	
  unsigned int i,j;
  l=l+x;
  Address_set(x,y,l,y);
  j=l*2;
  for(i=1;i<=j;i++)
  {
    Lcd_Write_Data(c>>8);
    Lcd_Write_Data(c&0xFF);
  }   
}

void V_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c)                   
{	
  unsigned int i,j;
  
  l=l+y;
  Address_set(x,y,x,l);
  j=l*2;
  for(i=1;i<=j;i++)
  { 
    Lcd_Write_Data(c>>8);
    Lcd_Write_Data(c&0xFF);
  }
     
}

void Rect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{
  H_line(x  , y  , w, c);
  H_line(x  , y+h, w, c);
  V_line(x  , y  , h, c);
  V_line(x+w, y  , h, c);
}

void Rectf(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c)
{
  unsigned int i;
  for(i=0;i<h;i++)
  {
    H_line(x  , y  , w, c);
    H_line(x  , y+i, w, c);
  }
}
int RGB(int r,int g,int b)
{
    return r << 16 | g << 8 | b;
}
void LCD_Clear(unsigned int j)                   
{	
  unsigned int i,m;

  Address_set(0,0,319,239);
  for(i=0;i<320;i++)
  for(m=0;m<240;m++)
  {
      Lcd_Write_Data(j>>8);
      Lcd_Write_Data(j);
   } 
}

void setup()
{
  for(int p=2;p<10;p++)
  {
    pinMode(p,OUTPUT);
  }
  pinMode(A0,OUTPUT);
  pinMode(A1,OUTPUT);
  pinMode(A2,OUTPUT);
  pinMode(A3,OUTPUT);
  pinMode(A4,OUTPUT);
  digitalWrite(A0, HIGH);
  digitalWrite(A1, HIGH);
  digitalWrite(A2, HIGH);
  digitalWrite(A3, HIGH);
  digitalWrite(A4, HIGH);
  Lcd_Init();
 LCD_Clear(0xF800);
 delay(1000);
 LCD_Clear(0x07E0);
 delay(1000);
 LCD_Clear(0x001F);
 delay(1000);
 LCD_Clear(0xFFFF);
}

void loop()
{  
  int p;
  for(int i=0;i<1000;i++)
  {
    Rect(random(300),random(300),random(300),random(300),random(65535)); // rectangle at x, y, with, hight, color
    LCD_Clear(0xf800);
    delay(1000);
    LCD_Clear(0x07E0);
    delay(1000);
    LCD_Clear(0x001F);
    delay(1000);
    LCD_Clear(0xffff);
    delay(1000);
  } 
 LCD_Clear(0xf800);
}

[/code]

Но она тоже не хочет работать. Может кому то поможет :)