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
TFT-Menue zum 1000 mal
15.06.2016, 17:49 (Dieser Beitrag wurde zuletzt bearbeitet: 15.06.2016 19:08 von Bitklopfer.)
Beitrag #1
TFT-Menue zum 1000 mal
Ich habe mir ein Sketch geschrieben mit welchem ich zwischen verschiedenen
Menüs hin und her schalten kann. Funktioniert soweit gut. Mein Problem ist nun
das jedes Menü 6 Buttons hat. Vor und zurück Buttons funktionieren ,die
anderen 4 Buttons mit denen ich in Untermenüs wechseln möchte bekomme
ich nicht zum laufen bzw. habe ich keinen Plan wie ich das machen könnte.
Kann mir mal Bitte jemand weiterhelfen!
Code:
[/co#include <UTFT.h>  // komisches include...bk
#include <UTouch.h>

extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

UTFT          myGLCD(ITDB32S, 38, 39, 40, 41);
UTouch        myTouch(6, 5, 4, 3, 2);

int x, y;
char currentPage;
char selectedUnit;

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(SmallFont);
  myTouch.InitTouch();
  myTouch.setPrecision(PREC_MEDIUM);
  drawHomeScreen();
  currentPage = '0';
  selectedUnit = '0';
}

void loop()
{
  if (currentPage == '0')
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 10) && (y >= 90) && (x <= 310) && (y <= 150))  // Taste Hauptmeue
      {
        currentPage = '1';
        myGLCD.clrScr();
        drawMenue1();
      }
    }
  }
  if (currentPage == '1')  // Taste Menue 1
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 10) && (y >= 190) && (x <= 150) && (y <= 230))  //Taste zurück Hauptmenue
      {
        currentPage = '0';
        myGLCD.clrScr();
        drawHomeScreen();
      }
    }
  }
  if (currentPage == '1')  // Menue 1
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 160) && (y >= 190) && (x <= 310) && (y <= 230))  //Taste weiter Menue 2
      {
        currentPage = '2';
        myGLCD.clrScr();
        drawMenue2();
      }
    }
  }
  if (currentPage == '2')  //  Menue 2
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 10) && (y >= 190) && (x <= 150) && (y <= 230))  // Taste zurück Menue 1
      {
        currentPage = '1';
        myGLCD.clrScr();
        drawMenue1();
      }
    }
  }
  if (currentPage == '2')  //  Menue 2
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 160) && (y >= 190) && (x <= 310) && (y <= 230))  // Taste Menue 3
      {
        currentPage = '3';
        myGLCD.clrScr();
        drawMenue3();
      }
    }
  }
if (currentPage == '3')  // Menue 3
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 10) && (y >= 190) && (x <= 150) && (y <= 230))  // Taste zurück Menue 3
      {
        currentPage = '2';
        myGLCD.clrScr();
        drawMenue2();
      }
    }
  }
  if (currentPage == '3')  // Menue 3
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 160) && (y >= 190) && (x <= 310) && (y <= 230))  // Menue 4 zurück Home
      {
        currentPage = '4';
        myGLCD.clrScr();
        drawRichtung();
      }
    }
  }
  if (currentPage == '4')  // Menue 3
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 10) && (y >= 190) && (x <= 150) && (y <= 230))  // Taste zurück Menue 3
      {
        currentPage = '3';
        myGLCD.clrScr();
        drawMenue3();
      }
    }
  }
  if (currentPage == '4')  // Menue 4
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((x >= 160) && (y >= 190) && (x <= 310) && (y <= 230))  // Menue 4 zurück Home
      {
        currentPage = '0';
        myGLCD.clrScr();
        drawHomeScreen();
      }
    }
  }  
}
void drawHomeScreen()
{
  myGLCD.clrScr();
  myGLCD.setFont(BigFont);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawLine(0, 2, 319, 2);
  myGLCD.print("00-00-00 (Uhrzeit ?)", CENTER, 12);
  myGLCD.drawLine(0, 40, 319, 40);
  myGLCD.drawLine(0, 45, 319, 45);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect(10, 90, 310, 150);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 90, 310, 150);
  myGLCD.drawRoundRect (15, 95, 315, 155);
  myGLCD.setColor(0, 255, 0);
  myGLCD.print("Jalousie - Menue", CENTER, 115);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawLine(0, 198, 319, 198);
  myGLCD.drawLine(0, 203, 319, 203);
  myGLCD.drawLine(0, 238, 319, 238);
  myGLCD.setColor(255, 0, 0);
  myGLCD.setFont(SmallFont);
  myGLCD.print("Goni 01.06.2016  Menue vers.7", CENTER, 215);
}
void drawMenue1()
{
  //Taste Relais 1
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 10, 310, 49);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 10, 310, 49);
  myGLCD.print("Jalousie 1", CENTER, 22);
  //Taste Relais 2
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 52, 310, 89);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 52, 310, 89);
  myGLCD.print("Jalousie 2", CENTER, 63);
  //Taste Relais 3
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 92, 310, 129);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 92, 310, 129);
  myGLCD.print("Jalousie 3", CENTER, 103);
  //Taste Relais 4
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 132, 310, 170);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 132, 310, 170);
  myGLCD.print("Jalousie 4", CENTER, 143);
  //Taste Zurueck
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 230, 150, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (10, 230, 150, 190);
  myGLCD.print("Home", 50, 202);
  //Taste Weiter
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (160, 230, 310, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (160, 230, 310, 190);
  myGLCD.print("Weiter", 190, 202);
}
void drawMenue2()
{
  //Taste Relais 5
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 10, 310, 49);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 10, 310, 49);
  myGLCD.print("Jalousie 5", CENTER, 22);
  //Taste Relais 6
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 52, 310, 89);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 52, 310, 89);
  myGLCD.print("Jalousie 6", CENTER, 63);
  //Taste Relais 7
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 92, 310, 129);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 92, 310, 129);
  myGLCD.print("Jalousie 7", CENTER, 103);
  //Taste Relais 8
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 132, 310, 170);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 132, 310, 170);
  myGLCD.print("Jalousie 8", CENTER, 143);
  //Taste Zurueck
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 230, 150, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (10, 230, 150, 190);
  myGLCD.print("Zurueck", 30, 202);
  //Taste Weiter
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (160, 230, 310, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (160, 230, 310, 190);
  myGLCD.print("Weiter", 190, 202);
}
void drawMenue3()
{
  //Taste Relais 9
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 10, 310, 49);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 10, 310, 49);
  myGLCD.print("Jalousie 9", CENTER, 22);
  //Taste Relais 10
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 52, 310, 89);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 52, 310, 89);
  myGLCD.print("Jalousie 10", CENTER, 63);
  //Taste Relais 11
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 92, 310, 129);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 92, 310, 129);
  myGLCD.print("Jalousie 11", CENTER, 103);
  //Taste Relais 12
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 132, 310, 170);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 132, 310, 170);
  myGLCD.print("Jalousie 12", CENTER, 143);
  //Taste Zurueck
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 230, 150, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (10, 230, 150, 190);
  myGLCD.print("Zurueck", 30, 202);
  //Taste Hauptmenue
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (160, 230, 310, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (160, 230, 310, 190);
  myGLCD.print("Weiter", 190, 202);
}
void drawMenue4()
{
  //Taste Relais 13
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 10, 310, 49);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 10, 310, 49);
  myGLCD.print("Jalousie 13", CENTER, 22);
  //Taste Relais 14
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 52, 310, 89);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 52, 310, 89);
  myGLCD.print("Jalousie 14", CENTER, 63);
  //Taste Relais 15
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 92, 310, 129);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 92, 310, 129);
  myGLCD.print("Jalousie 15", CENTER, 103);
  //Taste Relais 16
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 132, 310, 170);
  myGLCD.setColor(0, 255, 0);
  myGLCD.drawRoundRect (10, 132, 310, 170);
  myGLCD.print("Jalousie 16", CENTER, 143);
  //Taste Zurueck
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 230, 150, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (10, 230, 150, 190);
  myGLCD.print("Zurueck", 30, 202);
  //Taste Hauptmenue
  myGLCD.setFont(BigFont);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (160, 230, 310, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (160, 230, 310, 190);
  myGLCD.print("Home", 200, 202);
}
void drawRichtung()
{
  myGLCD.setFont(BigFont);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawLine(0, 40, 319, 40);
  myGLCD.drawLine(0, 45, 319, 45);
  myGLCD.drawLine(80, 50, 10, 150);
  myGLCD.drawLine(10, 150, 150, 150);
  myGLCD.drawLine(150, 150, 80, 50);
  myGLCD.setColor(0, 0, 255);
  myGLCD.print("AUF", 55, 100);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawLine(310, 50, 240, 150);
  myGLCD.drawLine(240, 150, 170, 50);
  myGLCD.drawLine(310, 50, 170, 50);
  myGLCD.drawLine(0, 155, 319, 155);
  myGLCD.drawLine(0, 160, 319, 160);
  myGLCD.setColor(0, 0, 255);
  myGLCD.print("ZU", 225, 90);
  myGLCD.setColor(0, 0, 0);
  myGLCD.fillRoundRect (10, 230, 150, 190);
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (10, 230, 150, 190);
  myGLCD.setColor(0, 0, 255);
  myGLCD.print("Zurueck", 30, 202);
}de]   // seltsame Tagverwendung...auch beim 1000.sten male...seufz...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.06.2016, 07:19
Beitrag #2
RE: TFT-Menue zum 1000 mal
Hallo,

such mal nach dem Forenteilnehmer "ricardo". Der hat hier im Forum mal ein Beispiel eingestellt. Vielleicht ist was für Dich dabei.

Gruß Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.06.2016, 12:49 (Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2016 12:54 von SkobyMobil.)
Beitrag #3
RE: TFT-Menue zum 1000 mal
Hallo,
"habe ich keinen Plan wie ich das machen könnte"

Wie ich das in Deinem Sketch machen könnte, weiß ich auch nicht.
Wenn ich das aber so sehe, dann wird nichts weiter gemacht als eine Taste
gedrückt, dann etwas gemalt, dann zurück.

Du brauchst Merker/Zähler, damit Du in Deinem MenüPunkt bleibst.

Du drückst eine Taste, dann geht er in den MenüPunkt. Läßt Du die Taste los,
dann springt er da wieder raus. Das merkst Du aber nicht, weil das LCD die
Darstellung nicht löscht.

Nimm doch einmal "void drawMenue1()" und setze dort ein serial.print "menü1"
rein.
Nun drückst Du die Taste Menü1, dann springt er dort hin, malt, gibt
"Menü1" aus und verläßt "void drawMenue1()" wieder.
Du bist also nicht mehr in Menü1- serielle Ausgabe stopt.
So sehe ich das hier…
Gruß und Spaß
Andreas
P.S. hast Du einmal eine genaue Bezeichnung/Link von Deinem Display? Wie "schnell" ist das DIng?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.06.2016, 10:40
Beitrag #4
RE: TFT-Menue zum 1000 mal
Danke erst einmal für eure Hilfe.
Das Touchscreen ist ein 3,2" Display von Saint Smart ,gibt es allerdings auch
bei anderen Anbietern. Zur Geschwindigkeit kann ich nichts sagen
da ich keine Vergleichsmöglichkeit habe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  LCD Menue mit u8glib und Encoder stefanch 1 357 04.06.2016 21:02
Letzter Beitrag: hotsystems
  Arduino Mega 2560, 1000 Fragen zum Start.... alpenpower 7 5.939 06.09.2013 11:17
Letzter Beitrag: admin

Gehe zu:


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