Arduino Uno mit Plug-and-Play 2.8'' TFT LCD Touch shield für Arduino Uno R3

Hab den Arduino, welcher mit diesem TFT Toch Shield laufen soll.

Ich finde keine passende library und Beispiel-Sketche`s zum Testen.

Bei Meister Eckstein ist leider nix verlinkt. >:(

Dann schreib den Händler doch einmal freundlich an. Ansonsten auf das TFT hinten schauen, welches IC verbaut ist. Libary gibt es von Adafruit oder UTFT.

Also, wenn ich bei Google Plug-and-Play 2.8'' TFT LCD Touch shield für Arduino Uno R3 eingebe, dann finde ich einen ganzen Haufen Zeugs....
u.A. auch Links in Ebay Anzeigen zu Dokus, Libs usw....

Hmm, kannst mich auch anschreien: Finde aber trotzdem nix!

Auf der Verpackung habe ich noch imall.iteadstudio.com gefunden.

Auf der Rückseite vom Shield steht: "2.8 ITDB02 Shield".

Auf der Herstellerseite hab ich nur diesen als halbwegs passenden gefunden. Bezeichnung stimmt, sieht aber anders aus. Aber auch keine lib verlinkt...

Beim Verkäufer schon angefragt: keine Reaktion.

Hab ein paar UTFT Bspl. probiert: immer nur weißer Bildschirm

Hab wohl wieder Mißt gekauft? Dachte gerade: Plug & Play...

Dann suche mal nach AR02011.zip
So wie ich das einschätze sollte das passen...

In Frankreich hat der Eckstein das auch verlinkt
http://www.ebay.fr/itm/2-8-320-240-Plug-and-Play-TFT-LCD-Touch-shield-for-Arduino-Uno-R3-AR02011-/271548647194

Ach Frankreich.

Danke für den Link.

Hab die zip mal geladen: Kommen Fehlermeldungen ...

"
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: MALFORMED
at java.util.zip.ZipCoder.toString(ZipCoder.java:58)
at java.util.zip.ZipFile.getZipEntry(ZipFile.java:567)
at java.util.zip.ZipFile.access$900(ZipFile.java:61)
at java.util.zip.ZipFile$ZipEntryIterator.next(ZipFile.java:525)
at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:500)
at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:481)
at processing.app.tools.ZipDeflater.deflate(ZipDeflater.java:41)
.....
"
Hat zwar geschrieben, das lib geladen wurde, kann sie aber in der Liste nicht finden...
Öffne ich ein Beispiel meckert er wegen fehlender "LCDTouch.h"

Hier steht, dass UTFT funktionieren soll.

Die UTFT hatte ich mir schon mal eingeladen. Hatte aber auch nicht funktioniert.

Hab dort die Auswahl:

Arduino (AVR)
Arduino (ARM)
Chipkit
TI Launch Pads

Euer Newbie weiß nicht was die von ihm wollen...

Das ist nicht was du wählen musst. Da kommt nur AVR in Frage

Du musst im Konstruktor den richtigen Treiber auswählen. Siehe UTFT.h
z.B. ITDB28 (28 = 2,8") falls du den ILI9325D Treiber hast

Das ist dann bei den Beispielen am Anfang:

UTFT myGLCD(ITDB32S,A5,A4,A3,A2);

Das wäre für ein 3,2" Zoll. Da muss man das korrekte Define einsetzen. Und UNO und Mega unterscheiden sich in den Pins. Das steht aber in den Kommentaren klar dabei

Ahhhhh, es wurde Licht!

Danke !!

Also nix mit Plug & Play.
Eher Plug - grübel - such - staune & viel später Play... :grin:

Also mit diesem Display und dem Uno R3 muß:

UTFT myGLCD(ITDB28,A5,A4,A3,A2);

drinstehen!

stoni99:
Also nix mit Plug & Play.
Eher Plug - grübel - such - staune & viel später Play... :grin:

Da solltest Du eine Bewertung schreiben!

Ja, das sollte ich...

Hmm:
Alle Sketches welche mit "Touch" zu tun haben bringen die Fehlermeldung: Sketch zu groß.
Steht aber im Sketch so drin dass er auch für den Uno passt...
Tuning notwendig?

z.B: "UTouch_Calibration"

Der UNO ist generell sehr knapp dafür und offiziell wird er nicht mehr unterstützt. Es ging aber mal gerade so.

Öffne mal memorysaver.h und entferne alle Kommentar-Striche bei Chips die du nicht brauchst. Also wenn das Makro aktiv ist wird er nicht eingebunden. Oder anders herum: nur #define DISABLE_ILI9325D auskommentieren. Das spart ein wenig Speicher.

Was du auch mal probieren kannst ist einen der Adafruit Treiber + Adafruit GFX. Da geht glaube ich das:

(100%ig sicher bin ich mir da nicht, aber der ILI9325 wird erwähnt)
und dazu das:

Hab jetzt mal diesen MEGA gekauft und das TFT dran probiert.

Geht leider nix.

Nicht mal UTFT FontView-Sketch. Einstellungen im Sketch habe ich an den Mega angepasst.

Gibt es einen Trick 17 um es doch mit Touch zum Laufen zu bringen? ::slight_smile:

Bin immer noch am Probieren mit dem Mega und dem TFT.

Hab mich an die library von Rinky Dink gehalten und geladen.

Kein Beispielsketch funktioniert. Immer nur weißer Bildschirm.

Was mache ich falsch?

// UTFT_Demo_320x240 
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program is a demo of how to use most of the functions
// of the library with a supported display modules.
//
// This demo was made for modules with a screen resolution 
// of 320x240 pixels.
//
// This program requires the UTFT library.
//

#include <UTFT.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];

// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB32S,38,39,40,41);

void setup()
{
  randomSeed(analogRead(0));
  
// Setup the LCD
  myGLCD.InitLCD();
  myGLCD.setFont(SmallFont);
}

void loop()
{
  int buf[318];
  int x, x2;
  int y, y2;
  int r;

// Clear the screen and draw the frame
  myGLCD.clrScr();

  myGLCD.setColor(255, 0, 0);
  myGLCD.fillRect(0, 0, 319, 13);
  myGLCD.setColor(64, 64, 64);
  myGLCD.fillRect(0, 226, 319, 239);
  myGLCD.setColor(255, 255, 255);
  myGLCD.setBackColor(255, 0, 0);
  myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);
  myGLCD.setBackColor(64, 64, 64);
  myGLCD.setColor(255,255,0);
  myGLCD.print("<http://www.RinkyDinkElectronics.com/>", CENTER, 227);

  myGLCD.setColor(0, 0, 255);
  myGLCD.drawRect(0, 14, 319, 225);

// Draw crosshairs
  myGLCD.setColor(0, 0, 255);
  myGLCD.setBackColor(0, 0, 0);
  myGLCD.drawLine(159, 15, 159, 224);
  myGLCD.drawLine(1, 119, 318, 119);
  for (int i=9; i<310; i+=10)
    myGLCD.drawLine(i, 117, i, 121);
  for (int i=19; i<220; i+=10)
    myGLCD.drawLine(157, i, 161, i);

// Draw sin-, cos- and tan-lines  
  myGLCD.setColor(0,255,255);
  myGLCD.print("Sin", 5, 15);
  for (int i=1; i<318; i++)
  {
    myGLCD.drawPixel(i,119+(sin(((i*1.13)*3.14)/180)*95));
  }
  
  myGLCD.setColor(255,0,0);
  myGLCD.print("Cos", 5, 27);
  for (int i=1; i<318; i++)
  {
    myGLCD.drawPixel(i,119+(cos(((i*1.13)*3.14)/180)*95));
  }

  myGLCD.setColor(255,255,0);
  myGLCD.print("Tan", 5, 39);
  for (int i=1; i<318; i++)
  {
    myGLCD.drawPixel(i,119+(tan(((i*1.13)*3.14)/180)));
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);
  myGLCD.setColor(0, 0, 255);
  myGLCD.setBackColor(0, 0, 0);
  myGLCD.drawLine(159, 15, 159, 224);
  myGLCD.drawLine(1, 119, 318, 119);

// Draw a moving sinewave
  x=1;
  for (int i=1; i<(318*20); i++) 
  {
    x++;
    if (x==319)
      x=1;
    if (i>319)
    {
      if ((x==159)||(buf[x-1]==119))
        myGLCD.setColor(0,0,255);
      else
        myGLCD.setColor(0,0,0);
      myGLCD.drawPixel(x,buf[x-1]);
    }
    myGLCD.setColor(0,255,255);
    y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100)));
    myGLCD.drawPixel(x,y);
    buf[x-1]=y;
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some filled rectangles
  for (int i=1; i<6; i++)
  {
    switch (i)
    {
      case 1:
        myGLCD.setColor(255,0,255);
        break;
      case 2:
        myGLCD.setColor(255,0,0);
        break;
      case 3:
        myGLCD.setColor(0,255,0);
        break;
      case 4:
        myGLCD.setColor(0,0,255);
        break;
      case 5:
        myGLCD.setColor(255,255,0);
        break;
    }
    myGLCD.fillRect(70+(i*20), 30+(i*20), 130+(i*20), 90+(i*20));
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some filled, rounded rectangles
  for (int i=1; i<6; i++)
  {
    switch (i)
    {
      case 1:
        myGLCD.setColor(255,0,255);
        break;
      case 2:
        myGLCD.setColor(255,0,0);
        break;
      case 3:
        myGLCD.setColor(0,255,0);
        break;
      case 4:
        myGLCD.setColor(0,0,255);
        break;
      case 5:
        myGLCD.setColor(255,255,0);
        break;
    }
    myGLCD.fillRoundRect(190-(i*20), 30+(i*20), 250-(i*20), 90+(i*20));
  }
  
  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some filled circles
  for (int i=1; i<6; i++)
  {
    switch (i)
    {
      case 1:
        myGLCD.setColor(255,0,255);
        break;
      case 2:
        myGLCD.setColor(255,0,0);
        break;
      case 3:
        myGLCD.setColor(0,255,0);
        break;
      case 4:
        myGLCD.setColor(0,0,255);
        break;
      case 5:
        myGLCD.setColor(255,255,0);
        break;
    }
    myGLCD.fillCircle(100+(i*20),60+(i*20), 30);
  }
  
  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some lines in a pattern
  myGLCD.setColor (255,0,0);
  for (int i=15; i<224; i+=5)
  {
    myGLCD.drawLine(1, i, (i*1.44)-10, 224);
  }
  myGLCD.setColor (255,0,0);
  for (int i=224; i>15; i-=5)
  {
    myGLCD.drawLine(318, i, (i*1.44)-11, 15);
  }
  myGLCD.setColor (0,255,255);
  for (int i=224; i>15; i-=5)
  {
    myGLCD.drawLine(1, i, 331-(i*1.44), 15);
  }
  myGLCD.setColor (0,255,255);
  for (int i=15; i<224; i+=5)
  {
    myGLCD.drawLine(318, i, 330-(i*1.44), 224);
  }
  
  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some random circles
  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=32+random(256);
    y=45+random(146);
    r=random(30);
    myGLCD.drawCircle(x, y, r);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some random rectangles
  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(316);
    y=16+random(207);
    x2=2+random(316);
    y2=16+random(207);
    myGLCD.drawRect(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

// Draw some random rounded rectangles
  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(316);
    y=16+random(207);
    x2=2+random(316);
    y2=16+random(207);
    myGLCD.drawRoundRect(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(316);
    y=16+random(209);
    x2=2+random(316);
    y2=16+random(209);
    myGLCD.drawLine(x, y, x2, y2);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,318,224);

  for (int i=0; i<10000; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    myGLCD.drawPixel(2+random(316), 16+random(209));
  }

  delay(2000);

  myGLCD.fillScr(0, 0, 255);
  myGLCD.setColor(255, 0, 0);
  myGLCD.fillRoundRect(80, 70, 239, 169);
  
  myGLCD.setColor(255, 255, 255);
  myGLCD.setBackColor(255, 0, 0);
  myGLCD.print("That's it!", CENTER, 93);
  myGLCD.print("Restarting in a", CENTER, 119);
  myGLCD.print("few seconds...", CENTER, 132);
  
  myGLCD.setColor(0, 255, 0);
  myGLCD.setBackColor(0, 0, 255);
  myGLCD.print("Runtime: (msecs)", CENTER, 210);
  myGLCD.printNumI(millis(), CENTER, 225);
  
  delay (10000);
}

Hi, wenn es ein 2,8" Display ist sollte in der Zeile "UTFT myGLCD(ITDB32S,38,39,40,41);"
auch etwas mit 2.8 stehen und nicht 3.2

Gruß Matthias der auch lange unwissend gesucht hat

Ja, sorry das hatte ich mittlerweile schon geändert - geht aber trotzdem nicht.

Bin jetzt sicher: Hab ein sch.. Touch-Display gekauft.

Zum Wegschmeißen trotzdem zu schade.

Werde es als reines Anzeigedisplay mißbrauchen.

Hab es mal auf die für reine Textanzeige notwendige Verkabelung für den UNO reduziert:

UNO - TFT

D0...D7 / A3...A5 / GND / 5V / RST

Merkwürdigerweise funktioniert es auch bei dieser Minimalverkabelung nicht mit dem MEGA - keine Ahnung warum... :o

TFT ohne Touch hab ich jetzt auch beim Mega hinbekommen:

Der Mega muß an das Display anders verkabelt werden. Siehe Page 3

Warum eigentlich? Das Programm bleibt doch das Gleiche... :o
Also könnte das TFT nicht z.B. an einem Pro Mini funktionieren?

Sieht es denn aus wie 2.8 TFT LCD Touch Shield?

Ja, genau so sieht es aus.