Paso 4: Configurar TFT / bibliotecas / pantalla de inicio
La pantalla TFT que encontré tiene el chip LGDP4535. Puede que necesite comprobar con el fabricante de la TFT en cuanto a que las bibliotecas a utilizar. Era un dolor para tratar de localizar alguna para éste.
Si utilizando ARDUINO UNO debe mirar en LGDP4535.cpp DESCOMENTAR la línea 15 y comente la línea 14.
DE ESA MANERA SU USO:
#include "uno_24_shield.h"
En lugar de
#include "mega_24_shield.h"
SIN EMBARGO SI ESTÁ UTILIZANDO UNA LICENCIA DE MEGA TODO COMO ES!
ADVERTENCIA!! USTED PUEDE CONSEGUIR LA PANTALLA TÁCTIL Y DRAGINO TRABAJANDO CON LA ONU, PERO NO HAY SUFICIENTES ALFILERES!!
OK... voy a ser honesto... Hice un poco de mezcla con las bibliotecas aquí. Pude de abajo algunos consolidando con las bibliotecas, pero ya funciono... Acaba de hacer pequeñas modificaciones en las bibliotecas y la biblioteca "HomeScreen" es mi propia creación. Tipo de crudo, sino que trabaja sobre la marcha. Es pantalla de inicio de HMI, porque es más sencillo llamar a un archivo de encabezado que acaba de crear uno con la configuración.
Editar pantalla de Inicio:
Solo tienes que cambiar el archivo de encabezado... uso de notas en Windows... o Gedit en Linux.
Debe ser algo fimiliar con el formato de una CPP / archivo .h. Hacer un poco mirando alrededor, real fácil de averiguar.
Nota: / / allí es depurar aún para hacerse con esta pantalla HMI y los botones
Bueno de nuevo a la pantalla táctil TFT:
1. en primer lugar instalar las bibliotecas.
2. prueba de funcionalidad---> ejemplos de uso <---
a. prueba de algunos ejemplos hacia fuera y asegúrese de que las clavijas en su escudo TFT son los mismos que en el ejemplo.
b. verificada para trabajar con LGDP4535 2,8" TFT
3. sigue este tutorial
Aquí es buen código para la calibración:
[código]
#include
#include
#include
#define YP A3
#define XM A2
#define m 9
#define XP 8
int TS_MINX = 0;
int TS_MINY = 0;
int TS_MAXX = 1023;
int TS_MAXY = 1023;
#define MINGRADO de 10
#define MAXPRESSURE 1000
typedef struct
{
int x;
int y;
} XY;
Pantalla táctil ts (XP, YP, XM, YM, 300);
#define negro 0 x 0000
#define blanco 0xFFFF
LGDP4535 tft;
TSPoint getNextTouch()
{
Punto de TSPoint;
hacer
{
digitalWrite (13, HIGH);
punto = ts.getPoint();
digitalWrite (13, bajo);
pinMode (XM, salida);
pinMode (YP, salida);
}
mientras (! () Point.z > MINGRADO & & point.z < MAXPRESSURE));
volver a punto;
}
TSPoint getNextRawTouch()
{
Punto de TSPoint;
hacer
{
digitalWrite (13, HIGH);
punto = ts.getRawPoint();
digitalWrite (13, bajo);
pinMode (XM, salida);
pinMode (YP, salida);
}
mientras (! () Point.z > MINGRADO & & point.z < MAXPRESSURE));
volver a punto;
}
void setup()
{
Serial.Begin(9600);
TFT.Reset();
TFT.Begin();
TS.min_x = TS_MINX;
TS.min_y = TS_MINY;
TS.max_x = TS_MAXX;
TS.max_y = TS_MAXY;
TS.width = tft.width();
TS.Height = tft.height();
TS.Orientation = 0;
calibrar:
tft.fillScreen(BLACK);
tft.setTextColor(WHITE);
tft.setCursor (0, 0);
TFT.println ("Calibrationnn de la pantalla" "Pulse para continuar...");
Punto de TSPoint;
punto = getNextRawTouch();
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("diapositiva en de la tapa.");
punto = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MINY = point.y;
Delay(100);
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("diapositiva en de la derecha.");
punto = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MAXX = point.x;
Delay(100);
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("diapositiva en la de abajo.");
punto = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MAXY = point.y;
Delay(100);
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("diapositiva en de la izquierda.");
punto = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MINX = point.x;
Delay(100);
tft.fillScreen(BLACK);
TS.min_x = TS_MINX;
TS.min_y = TS_MINY;
TS.max_x = TS_MAXX;
TS.max_y = TS_MAXY;
tft.setCursor(0,0);
TFT.println ("ADC sus calibraciones valores son:");
TFT.Print ("TS_MINX =");
TFT.println(TS_MINX);
TFT.Print ("TS_MINY =");
TFT.println(TS_MINY);
TFT.Print ("TS_MAXX =");
TFT.println(TS_MAXX);
TFT.Print ("TS_MAXY =");
TFT.println(TS_MAXY);
TFT.println();
TFT.Print ("la orientación de la pantalla táctil debe ser cero con estos values.n" "toque en cualquier lugar para probar la pantalla. Las coordenadas estarán en la esquina superior izquierda.");
}
void loop()
{
tft.setCursor(0,0);
tft.setTextColor(WHITE);
TSPoint p = getNextTouch();
tft.fillScreen(BLACK);
TFT.Print('(');
TFT.Print(p.x);
TFT.Print(',');
TFT.Print(p.y);
TFT.Print(')');
Delay(100);
}
Este código también es del blog de la ceez