INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Warum kein Touch?
19.01.2021, 16:08 (Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2021 21:29 von Bitklopfer.)
Beitrag #1
Smile Warum kein Touch?
Ein freundliches Hallo in die Expertenrunde !

Ich habe Erfahrung mit der Programmierung in XProfan, Bascom und Pixxos - alles Basic ähnliche Programmiersprachen.
In C bin ich noch neu, habe aber auch hier schon einfache Erfahrungen gemacht - und finde diese Sprache super. Texte und Grafik klappt alles prima.

Ich verwende das rote 2,4" TFT LCD mit 320x240 Pixel und RESET-Taste.

Das Programm läuft auf einem Arduino-UNO und auch MEGA, aber leider fehlt die richtige Touch-Funktion bzw. ist verkehrt !!!
Eine Berührung an beliebiger Stelle des LCD überspringt alle IF-Schleifen und färbt die Buttons sofort von Rot auf Grün - so soll es ja auch sein, aber erst nach der Button-Berührung.

Ich bitte daher um Eure Hilfe, bitte schaut Euch mein kleines Testprogramm mal an.
Ich habe viele Sketches gedownloadet - habe keine Hilfe gefunden.

Daher bitte ich um Eure fachmännische Hilfe.
Sehr hilfreich wäre auch mein überarbeitetes Testprogramm.

Ich bedanke mich schon im Voraus für Eure Hilfe.
Mit dankbaren Grüßen Heiner

Code:
/*Dies ist nur ein kleiner Auszug aus einem Modellbahn Projekt - es sollen 4 Signale gesteuert werden
Das Programm läuft auf einem Arduino-UNO und auch MEGA perfekt, aber leider fehlt die richtige Touch-Funktion bzw. ist verkehrt !!!
Das TFT-LCD ist Calibriert und die Werte werden verwendet, ob sie stimmen ???
Ein beliebiger Touch irgendwo auf dem gesamten LCD schaltet die Buttons schon um, die Abfrage IF-Schleifen wirken also nicht !!!
*/
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
#include <TouchScreen.h>

#define YP A3
#define XM A2
#define YM 9
#define XP 8

#define TS_MINX 570 //1016 //laut durchgeführter Calibrierung (war sie richtig
                                                                                             ???)
#define TS_MINY 1016 //570
#define TS_MAXX 1015 //1006
#define TS_MAXY 1006 //1015

#define LCD_CS A3
#define LCD_RS A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4

#define BLACK 0x0000
#define RED   0xF800
#define GREEN 0x07E0
#define WHITE 0xFFFF

#define minpressure 10
#define maxpressure 1000

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
TSPoint tp;

void Fahrwegschalter() { //Sinal-Fahrten
  tft.fillScreen(BLACK); //Bildschirm löschen
  //Signale
  tft.fillRoundRect(3, 1, 59, 59, 15, RED), tft.fillRoundRect(3, 172, 59, 59, 15,
                                                                                 RED); //Signale O und N
  tft.fillRoundRect(259, 1, 59, 59, 15, RED), tft.fillRoundRect(259, 172, 59, 59, 15,
                                                                                 RED); //Signale U und T
  //Signalnamen
  tft.setTextSize(6), tft.setTextColor(BLACK), tft.setCursor(15, 11), tft.print("O"),
  tft.setCursor(274, 183), tft.print("T");
  tft.setCursor(274, 11), tft.print("U"), tft.setCursor(15, 183), tft.print("N");
}
void setup() {
  uint16_t ID = tft.readID(); //Notwendig für TFT
  tft.begin(ID); //Notwendig für TFT
  tft.setRotation(1); //1=Quer / 0=Hoch
  pinMode(13, OUTPUT);
  Fahrwegschalter(); //Signale
}
void loop() {
  digitalWrite(13, HIGH);
  TSPoint p = ts.getPoint();
  digitalWrite(13, LOW);
  pinMode(XM, OUTPUT);
  pinMode(YP, OUTPUT);

  if (p.z > minpressure && p.z < maxpressure) {
    if (p.y < (TS_MINY - 5)) {
      if (p.z > 10); {
        p.x = map(p.x, TS_MINX, TS_MAXX, 0, 320);
        p.y = map(p.y, TS_MINY, TS_MAXY, 0, 240);

        if ((p.x > 3) && (p.x < 62) && (p.y > 1) && (p.y < 60)); {
          pinMode(XM, OUTPUT);
          pinMode(YP, OUTPUT);
          tft.fillRoundRect(3, 1, 59, 59, 15, GREEN); //Beispiel für Signal O, laut
          Calibrierung !
          tft.setTextSize(6), tft.setTextColor(BLACK), tft.setCursor(15, 11),
                                                                                                 tft.print("O");
        }
        if ((p.x > 259) && (p.x < 318) && (p.y > 1) && (p.y < 60)); {
          pinMode(YP, OUTPUT);
          pinMode(XM, OUTPUT);
          tft.fillRoundRect(259, 1, 59, 59, 15, GREEN); //Beispiel für Signal U, laut
                                                                            Calibrierung !
          tft.setTextSize(6), tft.setTextColor(BLACK), tft.setCursor(274, 11),
                                                                                                 tft.print("U");
        }
        if ((p.x > 3) && (p.x < 62) && (p.y > 172) && (p.y < 231)); {
          pinMode(YP, OUTPUT);
          pinMode(XM, OUTPUT);
          tft.fillRoundRect(3, 172, 59, 59, 15, GREEN); //Beispiel für Signal N, laut
                                                                            Calibrierung !
          tft.setTextSize(6), tft.setTextColor(BLACK), tft.setCursor(15, 183),
                                                                                                 tft.print("N");
        }
        if ((p.x > 259) && (p.x < 318) && (p.y > 172) && (p.y < 231)); {
          pinMode(YP, OUTPUT);
          pinMode(XM, OUTPUT);
          tft.fillRoundRect(259, 172, 59, 59, 15, GREEN);
          tft.setTextSize(6), tft.setTextColor(BLACK), tft.setCursor(274, 183),
                                                                                                tft.print("T");
        }
      }
    }
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 16:30 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2021 16:31 von Tommy56.)
Beitrag #2
RE: Warum kein Touch?
Setze Deinen Sketch bitte in Codetags.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Außerdem formatiere bitte den Code ordentlich (<Strg>+T in der IDE hilft Dir dabei) und gib uns bitte Links zu den verwendeten Libs.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 16:37
Beitrag #3
RE: Warum kein Touch?
Weiterhin solltest du uns einen Link zu deinem Display posten.
Ebenso die Links zu den verwendeten Libraries.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 21:36 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2021 21:43 von Heiner.)
Beitrag #4
RE: Warum kein Touch?
Hallo und ich Danke Euch, dass Ihr auf meine Anfrage reagiert habt.

Die Code Tags waren doch vorhanden, oder was ist damit gemeint?

Die Links:
https://github.com/prenticedavid/MCUFRIEND_kbv
https://github.com/adafruit/Adafruit_TouchScreen

TFT LCD:
https://www.az-delivery.de/products/2-4-...ch-display

Der Code-Text war richtig, automatisch Formatiert. Durch das Einfügen wurde er verändert. Ich habe nun von Hand etwas editiert um es besser lesen zu können.

Ich hoffe alles beachtet zu haben und hoffe weiter auf Beiträge von Euch.

Grüße vom Heiner
Nachtrag: Die Formatierung wurde nach dem Editieren wieder verändert!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 21:47
Beitrag #5
RE: Warum kein Touch?
Du verwendest immer noch keine Codetags.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 21:55
Beitrag #6
RE: Warum kein Touch?
(19.01.2021 21:36)Heiner schrieb:  Hallo und ich Danke Euch, dass Ihr auf meine Anfrage reagiert habt.

Die Code Tags waren doch vorhanden, oder was ist damit gemeint?
...
Der Code-Text war richtig, automatisch Formatiert. Durch das Einfügen wurde er verändert. Ich habe nun von Hand etwas editiert um es besser lesen zu können.

Ich hoffe alles beachtet zu haben und hoffe weiter auf Beiträge von Euch.

Grüße vom Heiner
Nachtrag: Die Formatierung wurde nach dem Editieren wieder verändert!

....ähm vielleicht mal den Button "Beitragsvorschau" benutzen wenn du dir nicht sicher bist. Auf jeden Fall habe deine Code Tags so keinen Wert...
bk Moderator


An alle Neuankömmlinge hier, wenn ihr Code(Sketch) hier posten wollte dann liest euch bitte diese Anleitung durch.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 21:55
Beitrag #7
RE: Warum kein Touch?
(19.01.2021 21:47)Tommy56 schrieb:  Du verwendest immer noch keine Codetags.

Gruß Tommy
Hallo, Tommy,
ich habe doch auf # geklickt, Code eingefügt und wieder auf # geklickt.
Was ist falsch?
Gruß Heiner
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2021, 22:22
Beitrag #8
RE: Warum kein Touch?
Tausche den ersten mit dem letzten Code-Tag mal gegeneinander.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Touch Button am TFT mit Libary „MCUFRIEND_kbv“ Heiko67 2 351 18.02.2021 21:56
Letzter Beitrag: Tommy56
  3,5" TFT-Touch mit microSD am MEGA Heiko67 9 851 17.02.2021 20:45
Letzter Beitrag: Heiko67
  WiFi ende - sofern kein connect rev.antun 18 1.020 31.01.2021 15:00
Letzter Beitrag: rev.antun
Question warum ist die IDE so unglaublich schlecht? spunky 12 1.007 25.11.2020 18:01
Letzter Beitrag: hotsystems
  Problem Arduino Mega und Nextion Touch Display pds14 9 1.191 28.10.2020 11:20
Letzter Beitrag: hotsystems
  Kein Zeilenvorschub bei client.println("...") Retian 5 682 16.09.2020 11:36
Letzter Beitrag: Retian
  ESP32 Web Radio VS1053 - touch-"buttons" funktionieren nur so halb crazysky 4 1.077 14.06.2020 22:43
Letzter Beitrag: crazysky
  bekomme kein Variablenwert der im String sein soll Willmi64 4 923 06.06.2020 11:41
Letzter Beitrag: Willmi64
  3.2” TFT Touch LCD PopEye007 3 3.586 25.01.2020 11:44
Letzter Beitrag: unkreativ
  SD shield / Kein Zugriff auf Karte Ernie70 33 4.300 10.01.2020 18:06
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste