Einfacher Sketch für Elegoo TFT2.8 gesucht

Hallo,

ich experimentiere mit einem Elegoo TfT 2.8 Zoll und einem Mega Board.
Die Datenausgabe und Grafikausgabe habe ich nun ganz gut im Griff. Nun möchte ich die Touch Funktion nutzen.

Leider sind mir die mitgelieferten Beispiele zu überladen, da ich Anfänger bin und mich erst 2 Monate mit dem Arduino am WE beschäftige.

Hat jemand vielleicht einen kompletten kleinen Beispiel-Sketch für das TFT mit einem definierten Button und einem Schaltausgang (AN/AUS)?

Dankeschön,

Klaus

Hi

Was liefert denn dieser Hersteller so mit?
Wir hier müssen auch selber aus den einzelnen Beispielen die Funktionalität extrahieren und in einem neuen Sketch zusammen gießen - was Fertiges wird's deshalb auch kaum geben.

In der/n benutzten Lib('s) wird sich wohl ein Beispiel befinden, Welches Dir ausgibt, WO ein Touch erkannt wurde - wenn Du Das verstanden hast, Das in Deinen Produktiv-Sketch einfließen lassen und von nun an einen Touch erkennen können.

Egal, wie überladen die Beispiele auch sind (Du willst ja nicht nur ein 'Touch erkannt' sondern wohl eher ein 'Touch auf 94/102 erkannt' haben), Es wird wohl auf den µC drauf passen - somit kannst Du Damit 'spielen', die Funktionsweise analysieren und Diese dann verwenden.

Was hast Du, Was willst Du, Was kannst Du, wo bekommst Du was Anderes, als Du erwartest (beide WAS)?

Über eine reichhaltige Beantwortung meiner Fragen an Dich wäre ich hoch erfreut.

MfG

Hi,

also mit dabei war keine Libary oder Anleitung. Die Hardware kam nackt.

Ich habe mir danach mehrere Libarys installiert und die vom Elegoo TFT hat funktioniert.
Das hier ist ein kurzer Sketch für eine 10er touch Tastatur.

Ich bräuchte mal einfach einen simplen Button der mir einen Ausgang schaltet. Ohne Schnick Schnack.

VG
Klaus

phonecal.ino (10.2 KB)

klausklick:
Hi,
also mit dabei war keine Libary oder Anleitung. Die Hardware kam nackt.

Was schreibt der Hersteller auf der Produktseite?
Grüße Uwe

Das TFT kam von Amazon.

Ich schaue mal wie der o.a. Sketch so arbeitet. Hätte ja sein können dass Jemand hier das TFT in Betrieb hat und einen Sketch (mit simplen Button) parat hat.

Dankeschön

klausklick:
Das TFT kam von Amazon.

Ich schaue mal wie der o.a. Sketch so arbeitet. Hätte ja sein können dass Jemand hier das TFT in Betrieb hat und einen Sketch (mit simplen Button) parat hat.

Dankeschön

Ich habe Hersteller nicht Verkäufer oder Versender/Vermittler geschrieben.
Du kennst Hersteller ( Elegoo )
Du kennst das Modell ( TFT2.8 )
Du kennst eine Suchmaschiene.
Du kannst das.

Grüße Uwe

Hi,

danke für eure Hilfe; auch wenn sie in der Form besteht sich selbst einzuarbeiten. Sicherlich langfristig zielführender.

Ich habe da nun mal 2 Tage geforscht und werde mir erst einmal einen Sketsch schreiben der X Y Position und Druck aufs Display ausgibt.

Grüße
Klaus

Hallo,

ich wollte kurze Rückmeldung geben:

das Programm ist erstellt. Ich habe einen kurzen Sketch erstellt wo sich x y und z ausgeben lassen.
Ich habe auch gelernt wie tft.rotation(a) und map(a,x1,x2,y1,y2) zusammenhängen.

Nun kommt die 2. Stufe.

Programmiert sollen 2 TS-Tasten mit einem Schaltausgang.

VG
Klaus

Kannst Du Deinen Zwischenststand mal hier einstellen?

Gruß Tommy

Hallo Tommy,

klar.

Derzeitiger Stand ist erst einmal das hier.

VG
Klaus

TouchscreenXYZAusgabe.ino (2.16 KB)

Hallo,

heute probiere ich mal die Code Funktion oben links aus. Ich hoffe dass sich dadurch der Sketch gut hier einbinden lässt.

Also: ich habe mir heute etwas Zeit genommen und habe diesen simplen Sketch erstellt, der einen Ausgang (38) über einen Push-Button im TS aktiviert.

Vielleicht kann ich damit ja jemanden den Einstieg in die TFT und TS Welt erleichtern?

VG
Klaus

//Touchscreen simple Test
//Schaltet Digitalausgang 38 über einen TS Button EIN und AUS

#include <Elegoo_GFX.h>    // Core graphics library
#include <Elegoo_TFTLCD.h> // Hardware-specific library
#include <TouchScreen.h>   //Touchscreen libary

#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



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

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


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

#define MINPRESSURE 10
#define MAXPRESSURE 1000



#define Schaltausgang 38

int tsx=0;                     //TS Umrechnungs Positionen Achsen x , y müssen 
int tsy=0;                     //gedreht werden.

bool Schaltmerker=false;       //Schaltmerker Ein-Aus



  

void setup() {

pinMode (Schaltausgang, OUTPUT);

tft.reset();              //reset

uint16_t identifier = tft.readID();
identifier=0x9341;
tft.begin(identifier);

tft.setRotation(3);        //Rotation TFT 0 bis 3
tft.fillScreen(BLACK);    //Hintergrundfarbe
 


//Bildschirmaufbau
tft.setCursor(0, 0);      //Cursor in Grundposition
tft.fillScreen(BLACK);    //Bildschirm löschen

tft.setTextColor(BLUE);    tft.setTextSize(3);       
tft.print("  Simple Switch"); 

tft.fillCircle(160,160,45,BLUE);
tft.fillCircle(160,160,25,RED);
tft.drawCircle(160,160,46,BLUE);
tft.drawCircle(160,160,49,RED);

}

void loop() {


digitalWrite(13, HIGH);
  TSPoint p = ts.getPoint();
  digitalWrite(13, LOW);

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

tsx = map(p.y, TS_MINY, TS_MAXY, 0, tft.width());    //Skalierung wichtig für
tsy = map(p.x, TS_MINX, TS_MAXX, 0, tft.height());   //Rotation TFT 


if ((p.z > MINPRESSURE) && (p.z < MAXPRESSURE) && (tsx > 140) && (tsx < 180) && (tsy > 140) && (tsy < 180) && (Schaltmerker==false))
     {
        digitalWrite (Schaltausgang, HIGH);   //Schaltquadrat wird definiert mit Druck auf Display und Schaltmerker
        tft.fillCircle(160,160,25,YELLOW);
        Schaltmerker=true;
        tsx=0;                                //tsx u tsy reset
        tsy=0;
        
        delay (300);                          //Entprellzeit
      }

      
if ((p.z > MINPRESSURE) && (p.z < MAXPRESSURE) && (tsx > 140) && (tsx < 180) && (tsy > 140) &&(tsy < 180) && (Schaltmerker==true))
      {                  
        digitalWrite (Schaltausgang, LOW);  
        tft.fillCircle(160,160,25,RED);
        Schaltmerker=false;       
        tsx=0;
        tsy=0;
               
        delay (300);
      }
      
   

}