Guten Abend zusammen,
ich habe dieses Display nun vollkommen incl. Touch zum laufen gebracht.
Folgenden Sketch habe ich zum testen verwendet. Bekommt keinen Augenkrebs bei der Farbauswahl
#include <UTFT.h>
#include <URTouch.h>
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
UTFT myGLCD(ILI9341_16,38,39,40,41);
URTouch myTouch(6,5,4,3,2);
int x,y;
int buf[318];
void setup()
{
Serial.begin(19200);
randomSeed(analogRead(0));
// Setup the LCD
myGLCD.InitLCD();
myGLCD.clrScr();
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
HomeScreen();
}
void loop()
{
int x,y;
int buf[318];
if (myTouch.dataAvailable())
{
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();
Serial.print(x);
Serial.print("//");
Serial.print(y);
Serial.println("");
}
if ((x>=35) && (x<=285) && (y>=90) && (y<=130))
{ Button1();
}
if ((x>=35) && (x<=285) && (y>=140) && (y<=180))
{
Button2();
}
if ((x>=33) && (x<=41) && (y>=206) && (y<=214))
{
Button3();
}
}
//Eigene Funktionen
void HomeScreen()
{
// Kopfzeile
myGLCD.setBackColor(0,0,0);
myGLCD.setColor(255,255,255);
myGLCD.setFont(BigFont);
myGLCD.print("3,2' TFT Test", CENTER,10); //Textausgabe
myGLCD.setColor(255,0,0);
myGLCD.drawLine(0,32,319,32);
myGLCD.setColor(255,255,255);
myGLCD.setFont(SmallFont);
myGLCD.print("nur eine Testausgabe",CENTER,41); //Textausgabe
myGLCD.setFont(SmallFont);
myGLCD.print("Bitte Auswahl", CENTER, 64); //Textausgabe
// Button 1
myGLCD.setColor(16,167,103);
myGLCD.fillRoundRect(35,90,285,130);
myGLCD.setColor(255,255,255);
myGLCD.drawRoundRect(35,90,285,130);
myGLCD.setFont(BigFont);
myGLCD.setBackColor(16,167,103);
myGLCD.print("Button 1",CENTER,102); //Textausgabe
// Button 2
myGLCD.setColor(16,167,103);
myGLCD.fillRoundRect(35,140,285,180);
myGLCD.setColor(255,255,255);
myGLCD.drawRoundRect(35,140,285,180);
myGLCD.setFont(BigFont);
myGLCD.setBackColor(16,167,103);
myGLCD.print("Button 2",CENTER, 152); //Textausgabe
// Button 3
myGLCD.setColor(16,167,103);
myGLCD.fillCircle(37,210,8);
myGLCD.setColor(255,255,255);
myGLCD.drawCircle(37,210,8);
myGLCD.setFont(SmallFont);
myGLCD.setBackColor(16,167,103);
myGLCD.print("Button 3",CENTER, 203); //Textausgabe
}
// Unterfunktionen definieren
void Button1()
{
myGLCD.clrScr();
myGLCD.setColor(16,167,103);
myGLCD.fillRoundRect(35,90,285,130);
myGLCD.setColor(255,255,255);
myGLCD.drawRoundRect(35,90,285,130);
myGLCD.setFont(SmallFont);
myGLCD.setBackColor(265,165,0);
delay(5000);
myGLCD.clrScr();
HomeScreen();
}
void Button2() {
myGLCD.clrScr();
myGLCD.setColor(255,255,0);
myGLCD.fillRoundRect(35,140,285,180);
myGLCD.setColor(255,255,255);
myGLCD.drawRoundRect(35,140,285,180);
myGLCD.setFont(SmallFont);
myGLCD.setBackColor(255,255,0);
myGLCD.print("Funktion Button 2",CENTER,152); //Textausgabe
delay(2000);
HomeScreen();
}
void Button3() {
myGLCD.clrScr();
myGLCD.setFont(BigFont);
myGLCD.setBackColor(255,125,0);
myGLCD.setFont(BigFont);
myGLCD.print("Ziel erreicht",CENTER,152); //Textausgabe
delay(2000);
HomeScreen();
}
Ich hoffe es kann (auch wenn ich Anfänger bin) dem ein oder andere, helfen.
Gruß
Markus