collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: LCD TFT com Linhas brancas "Ghost Lines"  (Lida 4513 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline tucandroid

  • Mini Robot
  • *
  • Mensagens: 31
LCD TFT com Linhas brancas "Ghost Lines"
« em: 16 de Março de 2013, 14:24 »
Boas amigos,

hoje recebi o LCD TFT 3.2" para o UNO comprado no ebay ao membro womarts (Podem ver aqui


Apos varias tentativas de librarias e tal, apenas acendia o "backlight" branco, perguntei ao vendedor que libraria usava e ele enviou-me um link com a libraria TFTLCD com o ide0022.

Apos passar o codigo de teste enviado por ele, o "tftpaint", o ecra atrofia todo cheio de linhas brancas sempre a piscar e tal.

acham que é problema do LCD ou nao?

vi este video

e acontece-me o mesmo do video aos 6 segundos, mas o meu esta ligado directo ao UNO.

o que pode ser?

cumprimentos

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #1 em: 16 de Março de 2013, 14:26 »
Isso é pinos no ar,ou código mal feito.
Avr fanboy

Offline tucandroid

  • Mini Robot
  • *
  • Mensagens: 31
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #2 em: 16 de Março de 2013, 14:28 »
obrigado senso, ainda andava a procura e ja tinha uma resposta. :)

em relaçao a pinos no ar, em que sentido? mal encaixados mesmo ou avariados?

o codigo é o seguinte, vê se tem algo de mal pf.

Código: [Seleccione]
#include "TFTLCD.h"
#include "TouchScreen.h"


//Duemilanove/Diecimila/UNO/etc ('168 and '328 chips) microcontoller:



#define YP A3  // must be an analog pin, use "An" notation!
#define XM A2  // must be an analog pin, use "An" notation!
#define YM 9  // can be a digital pin
#define XP 8  // can be a digital pin

#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940

// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// For the one we're using, its 300 ohms across the X plate
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
// optional
#define LCD_RESET A4

// Color definitions
#define BLACK           0x0000
#define BLUE            0x001F
#define RED             0xF800
#define GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0
#define WHITE           0xFFFF



TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

#define BOXSIZE 40
#define PENRADIUS 3
int oldcolor, currentcolor;

void setup(void) {
  Serial.begin(9600);
  Serial.println("Paint!");
 
  tft.reset();
 
 // uint16_t identifier = tft.readRegister(0x0);
 // if (identifier == 0x9325) {
 //   Serial.println("Found ILI9325");
 // } else if (identifier == 0x9328) {
  //  Serial.println("Found ILI9328");
  //} else {
  //  Serial.print("Unknown driver chip ");
  //  Serial.println(identifier, HEX);
  //  while (1);
  //}

  tft.initDisplay();
  tft.fillScreen(BLACK);
 
  tft.fillRect(0, 0, BOXSIZE, BOXSIZE, RED);
  tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, YELLOW);
  tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, GREEN);
  tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, CYAN);
  tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, BLUE);
  tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, MAGENTA);
 // tft.fillRect(BOXSIZE*6, 0, BOXSIZE, BOXSIZE, WHITE);
 
 tft.drawRect(0, 0, BOXSIZE, BOXSIZE, WHITE);
 currentcolor = RED;
 
  pinMode(13, OUTPUT);
}



#define MINPRESSURE 10
#define MAXPRESSURE 1000



void loop()
{
  digitalWrite(13, HIGH);
  Point p = ts.getPoint();
  digitalWrite(13, LOW);


  pinMode(XM, OUTPUT);
  pinMode(YP, OUTPUT);
  //pinMode(YM, OUTPUT);

  // we have some minimum pressure we consider 'valid'
  // pressure of 0 means no pressing!

  if (p.z > MINPRESSURE && p.z < MAXPRESSURE) {

   
    if (p.y < (TS_MINY-5)) {
      Serial.println("erase");
     // press the bottom of the screen to erase
      tft.fillRect(0, BOXSIZE, tft.width(), tft.height()-BOXSIZE, BLACK);
     
    }
    // turn from 0->1023 to tft.width
    p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
    p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0);

    if (320-p.y <BOXSIZE){
       oldcolor = currentcolor;
 
 
       if (p.x < BOXSIZE) {
         currentcolor = RED;
         tft.drawRect(0, 0, BOXSIZE, BOXSIZE, WHITE);
       }
       else if (p.x < BOXSIZE*2) {
         currentcolor = YELLOW;
         tft.drawRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, WHITE);
       }
       else if (p.x < BOXSIZE*3) {
         currentcolor = GREEN;
         tft.drawRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, WHITE);
       }
       else if (p.x < BOXSIZE*4) {
         currentcolor = CYAN;
         tft.drawRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, WHITE);
       }
       else if (p.x < BOXSIZE*5) {
         currentcolor = BLUE;
         tft.drawRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, WHITE);
       }
       else if (p.x < BOXSIZE*6) {
         currentcolor = MAGENTA;
         tft.drawRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, WHITE);
       }
       
       if (oldcolor != currentcolor) {
          if (oldcolor == RED) tft.fillRect(0, 0, BOXSIZE, BOXSIZE, RED);
          if (oldcolor == YELLOW) tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, YELLOW);
          if (oldcolor == GREEN) tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, GREEN);
          if (oldcolor == CYAN) tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, CYAN);
          if (oldcolor == BLUE) tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, BLUE);
          if (oldcolor == MAGENTA) tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, MAGENTA);
       }
    }
    if (((p.y-PENRADIUS) >0) && ((p.y+PENRADIUS) < tft.height())) {// BOXSIZE
      tft.fillCircle(p.x, 320-p.y, PENRADIUS, currentcolor);
    }
  }
}

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #3 em: 16 de Março de 2013, 14:33 »
Pinos do lcd desligados, ou interferência.
Avr fanboy

Offline tucandroid

  • Mini Robot
  • *
  • Mensagens: 31
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #4 em: 16 de Março de 2013, 14:40 »
Obrigado amigo,

como achas que me pudias verificar isso?

pela imagem dos pinos chegas lá? ;)


cumprimentos

Offline tucandroid

  • Mini Robot
  • *
  • Mensagens: 31
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #5 em: 16 de Março de 2013, 15:20 »
Ao carregar no reset, a imagem fica direita,(enquanto estou a carregar).

penso que seja algum problema com o botao do reset nao?


cumprimentos

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #6 em: 16 de Março de 2013, 15:53 »
eu diria que é do comprimento dos fios, da maneira que eles estão são umas autenticas antenas  ;D

se tiveres, tenta usar fios mais pequenos

Offline tucandroid

  • Mini Robot
  • *
  • Mensagens: 31
Re: LCD TFT com Linhas brancas "Ghost Lines"
« Responder #7 em: 16 de Março de 2013, 15:54 »
eu diria que é do comprimento dos fios, da maneira que eles estão são umas autenticas antenas  ;D

se tiveres, tenta usar fios mais pequenos


boas,

esse video foi retirado na net.

eu estou a usar uma shield directa no UNO.

esta tudo ligado directamente.

abraços