Stap 4: Configureer TFT / bibliotheken / Homescreen
Daarin heeft het TFT-schild dat ik vond de LGDP4535-chip. Moet u wellicht contact op met de fabrikant van de TFT over welke bibliotheken te gebruiken. Het was een pijn om te proberen te vinden om het even welk voor die ene.
Als met behulp van maar met ARDUINO UNO je IN LGDP4535.cpp kijken moet UNCOMMENT de lijn 15 en commentaar lijn 14.
OP DIE MANIER UW GEBRUIKEN:
#include "uno_24_shield.h"
In plaats van
#include "mega_24_shield.h"
ALS U VAN EEN MEGA-LAAT GEBRUIKMAAKT ALLES ALS WEL!!
WAARSCHUWING! KUNT U HET TOUCHSCREEN EN DRAGINO WERKEN MET DE UNO, MAAR ER IS NIET GENOEG PINS BESCHIKBAAR!!
OK... dus ik zal eerlijk... Ik deed een beetje van mix matching met de bibliotheken hier. Ik kon van af sommige consolideren met de libraries, maar omdat het werkte... Ik maakte kleine wijzigingen aan de bibliotheken en de bibliotheek van het "Startscherm" is mijn eigen creatie. Soort van ruwe, maar het werkt op de vlieg. Het is van de HMI homescreen, want het is eenvoudiger om te noemen een headerbestand dat ik zojuist hebt gemaakt met de configuratie-instellingen.
HomeScreen te bewerken:
Verander gewoon het headerbestand... gebruik Opmerking pad op... Vensters of Gedit op Linux.
U moet enigszins fimiliar met de opmaak van een .cpp / .h bestand. Doen een litte op zoek rond, echt gemakkelijk te achterhalen.
Opmerking: / / er nog gedaan moet worden met dit scherm HMI en de knoppen is debugging
Goed terug naar de TFT touchscreen:
1. Installeer eerst die bibliotheken.
2. test voor functionaliteit---> gebruik voorbeelden <---
a. Probeer enkele voorbeelden uit en ervoor te zorgen dat de pinnen op uw TFT-schild hetzelfde als in het voorbeeld zijn.
b. Verified om te werken met LGDP4535 2,8" TFT
3. Volg deze tutorial
Hier is sommige goede code voor kalibratie:
[code]
#include
#include
#include
#define YP A3
#define XM A2
#define YM 9
#define XP 8
int TS_MINX = 0;
int TS_MINY = 0;
int TS_MAXX = 1023;
int TS_MAXY = 1023;
#define MINPRESSURE 10
#define MAXPRESSURE 1000
typedef struct
{
int x;
int y;
} XY;
TouchScreen ts (XP, YP, XM, YM, 300);
#define BLACK 0x0000
#define WHITE 0xFFFF
LGDP4535 tft;
TSPoint getNextTouch()
{
TSPoint punt;
doen
{
digitalWrite (13, hoge);
Wijs = ts.getPoint();
digitalWrite (13, laag);
pinMode (XM, uitvoer);
pinMode (YP, uitvoer);
}
terwijl (! () Point.z > MINPRESSURE & & point.z < MAXPRESSURE));
retourneren van punt;
}
TSPoint getNextRawTouch()
{
TSPoint punt;
doen
{
digitalWrite (13, hoge);
Wijs = ts.getRawPoint();
digitalWrite (13, laag);
pinMode (XM, uitvoer);
pinMode (YP, uitvoer);
}
terwijl (! () Point.z > MINPRESSURE & & point.z < MAXPRESSURE));
retourneren van punt;
}
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;
kalibreren:
tft.fillScreen(BLACK);
tft.setTextColor(WHITE);
tft.setCursor (0, 0);
TFT.println ("Scherm Calibrationnn" "Tik op Doorgaan...");
TSPoint punt;
Wijs = getNextRawTouch();
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("dia van bovenaf.");
Wijs = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MINY = point.y;
delay(100);
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("dia in van rechts.");
Wijs = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MAXX = point.x;
delay(100);
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("dia in vanaf de onderkant.");
Wijs = getNextRawTouch();
tft.fillScreen(WHITE);
TS_MAXY = point.y;
delay(100);
tft.fillScreen(BLACK);
tft.setCursor(0,0);
TFT.Print ("dia in vanaf de linkerkant.");
Wijs = 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 ("uw ADC kalibraties waarden zijn:");
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 ("de oriëntatie van het scherm van de Aanraking moeten nul met deze values.n" "Touch overal als u wilt testen van het scherm. De coördinaten worden in de linkerbovenhoek wordt getoond.");
}
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);
}
Deze code is ook van ceez blog