Étape 4: Configurer TFT / bibliothèques / Homescreen
L’écran TFT que j’ai trouvé a la puce LGDP4535 dedans. Vous devrez peut-être consulter le fabricant TFT quant à quelles bibliothèques à utiliser. C’était une douleur pour tenter de localiser n’importe quel pour celui-ci.
Si utilisation avec ARDUINO UNO vous devez Regardez dans LGDP4535.cpp DÉCOMMENTER la ligne 15 et commentez la ligne 14.
DE CETTE FAÇON VOTRE UTILISATION :
#include « uno_24_shield.h »
Au lieu de
#include « mega_24_shield.h »
CEPENDANT, SI VOUS UTILISEZ UN CONGÉ MEGA TOUT COMME EST!!
MISE EN GARDE!! VOUS POUVEZ OBTENIR L’ÉCRAN TACTILE ET DRAGINO TRAVAILLER AVEC L’ONU, MAIS IL N’Y A PAS ASSEZ BROCHES DISPONIBLE!!
OK... donc je vais être honnête... J’ai fait un peu de mélange correspondant avec les bibliothèques ici. J’ai pu de vers le bas une consolidation avec les bibliothèques, mais étant donné que cela a fonctionné... Je viens de faire des modifications mineures aux bibliothèques et la bibliothèque « Écran d’accueil » est ma propre création. Type de brut, mais il fonctionne à la volée. C’est écran d’accueil de l’IHM, parce que c’est plus simple d’appeler un fichier d’en-tête je viens de créer un avec les paramètres de configuration.
Pour modifier l’écran d’accueil :
Il suffit de modifier le fichier d’en-tête... utilisation bloc-note Windows... ou Gedit sous Linux.
Vous devez être un peu fimiliar avec le formatage d’un .cpp / fichier .h. Faire une litte à la recherche d’environ, véritable facile à comprendre.
NOTE: / / il débogue encore pour en finir avec cet écran IHM et les boutons
Bon retour à l’écran tactile TFT :
1. tout d’abord, installez ces bibliothèques.
2. cycle d’essai pour la fonctionnalité---> exemples d’utilisation <---
a. Essayez quelques exemples dehors et s’assurer que les broches sur votre écran TFT sont les mêmes que dans l’exemple.
b. vérifié pour fonctionner avec LGDP4535 2.8" TFT
3. Suivez ce tutoriel
Voici un bon code pour l’étalonnage :
[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 ;
Écran tactile ts (XP, YP, XM, YM, 300) ;
#define noir 0 x 0000
#define blanc 0xFFFF
LGDP4535 tft ;
TSPoint getNextTouch()
{
TSPoint point ;
faire
{
digitalWrite (13, HIGH) ;
point = ts.getPoint() ;
digitalWrite (13, faible) ;
pinMode (XM, sortie) ;
pinMode (YP, sortie) ;
}
tandis que (! () point.z > MINPRESSURE & & point.z < MAXPRESSURE)) ;
retour point ;
}
TSPoint getNextRawTouch()
{
TSPoint point ;
faire
{
digitalWrite (13, HIGH) ;
point = ts.getRawPoint() ;
digitalWrite (13, faible) ;
pinMode (XM, sortie) ;
pinMode (YP, sortie) ;
}
tandis que (! () point.z > MINPRESSURE & & point.z < MAXPRESSURE)) ;
retour point ;
}
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 ;
calibrer :
tft.fillScreen(BLACK) ;
tft.setTextColor(WHITE) ;
tft.setCursor (0, 0) ;
TFT.println (« Calibrationnn de l’écran » « Tap pour continuer... ») ;
TSPoint point ;
point = getNextRawTouch() ;
tft.fillScreen(BLACK) ;
tft.setCursor(0,0) ;
TFT.Print ("Slide à partir du haut.") ;
point = getNextRawTouch() ;
tft.fillScreen(WHITE) ;
TS_MINY = point.y ;
Delay(100) ;
tft.fillScreen(BLACK) ;
tft.setCursor(0,0) ;
TFT.Print ("Slide à partir de la droite.") ;
point = getNextRawTouch() ;
tft.fillScreen(WHITE) ;
TS_MAXX = point.x ;
Delay(100) ;
tft.fillScreen(BLACK) ;
tft.setCursor(0,0) ;
TFT.Print ("Slide en partant du bas.") ;
point = getNextRawTouch() ;
tft.fillScreen(WHITE) ;
TS_MAXY = point.y ;
Delay(100) ;
tft.fillScreen(BLACK) ;
tft.setCursor(0,0) ;
TFT.Print ("Slide en partant de la gauche.") ;
point = 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 ("Your ADC étalonnages valeurs sont:") ;
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 (« l’orientation de l’écran tactile devrait être nulle avec ces values.n » "n’importe où pour tester l’écran tactile. Les coordonnées seront dans le coin supérieur gauche.") ;
}
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) ;
}
Ce code est également du blog ceez