Pages: 1 [2]   Go Down
Author Topic: Such dringet hilfe mit meinem Touchdisplay  (Read 2155 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 21
Posts: 1397
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich hab jetzt auch soviele libraries runtergeladen ich blick da garnicht mehr da durch! :-(
Für jede hilfe wäre ich sehr dankbar
Dabei kann Dir natürlich keiner helfen. Wir können Dir nur den Hinweis geben möglichst strukturiert vorzugehen.

1) Hau die aktuelle IDE erstmal weg inkl. aller Libs.
2) Installiere die IDE frisch.
3) Teste immer nur EINE Lib zu einer Zeit
4) Teste ALLE möglichen Kombinationen (Parameter für init(), Pin-Belegungen, Kontrast-Einstellungen, verschiedene Sketche) mit EINER Lib durch
5) Baue debug-Ausgaben in Deinen Sketch ein (Serial.println("...")) an verschiedenen Stellen, damit Du im Serial-Monitor sehen kannst was Dein Sketch gerade macht
6) Erst wenn Du alles ausprobiert hast und nicht weiter kommst, dann probiere die nächste Lib aus

Wildes rumprobieren, ohne zu wissen was man tut, hat kaum Aussicht auf Erfolg. Und selbst wenn der unwahrscheinliche Fall eintritt, das es plötzlich geht, hast Du keine Chance nachzuvollziehen was Du gemacht hast. Damit ist das Ergebnis in der Regel nicht reproduzierbar.

Mario.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja, Sven, musst Du, wobei nur "(SSD1289,38,39,40,41)" fix ist - der Rest library-abhängig.

Auch würde ich Dir Mario's Vorgehensweise ans Herz legen wollen, da nur so eine Reproduzierbarkeit und saubere Dokumentation möglich ist.

Wenn Du einen sauberen Stand (mit UTFT-Library) hast, jagst Du eines der Library-Beispiele in das Board. Danach mit einem kleinen Schraubendreher den gesamten Verstellbereich des Trimmpotis abfahren - in Richtung "dunkler" (Gegenuhrzeigersinn) sollte dann auch etwas zu sehen sein...
« Last Edit: March 11, 2013, 08:50:41 am by FumbleDO » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK smiley ich fange ganz neu an ...
ich lade mir die software "Arduino 1.0.3"
und aus diesem tread die lib
http://arduino.cc/forum/index.php/topic,125703.0.html
mit der es ja wundervoll klapen soll
Code:
// UTFT_ViewFont (C)2013 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a demo of the included fonts.
//
// 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[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

UTFT myGLCD(SSD1289,38,39,40,41);   // Remember to change the model parameter to suit your display module!

void setup()
{
  myGLCD.InitLCD();

  myGLCD.clrScr();
  Serial.begin(9600);
}

void loop()
{
  myGLCD.setColor(0, 255, 0);
  myGLCD.setBackColor(0, 0, 0);

  myGLCD.setFont(BigFont);
  myGLCD.print(" !\"#$%&'()*+,-./", CENTER, 0);
  myGLCD.print("0123456789:;<=>?", CENTER, 16);
  myGLCD.print("@ABCDEFGHIJKLMNO", CENTER, 32);
  myGLCD.print("PQRSTUVWXYZ[\\]^_", CENTER, 48);
  myGLCD.print("`abcdefghijklmno", CENTER, 64);
  myGLCD.print("pqrstuvwxyz{|}~ ", CENTER, 80);

  myGLCD.setFont(SmallFont);
  myGLCD.print(" !\"#$%&'()*+,-./0123456789:;<=>?", CENTER, 120);
  myGLCD.print("@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_", CENTER, 132);
  myGLCD.print("`abcdefghijklmnopqrstuvwxyz{|}~ ", CENTER, 144);

  myGLCD.setFont(SevenSegNumFont);
  myGLCD.print("0123456789", CENTER, 190);
Serial.print("test");
delay(20);
}

und baue eine ausgabe ein
dann drehe ich den poti von hell bis dunkel
aber ich sehe leider immer noch nix :-)
edit: aso ja das "test" wird gesendet
« Last Edit: March 11, 2013, 09:40:51 am by Llzzard » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry, Sven, Asche auf mein Haupt!
Ich habe mir gerade nochmal meine Aufzeichnungen angesehen und...

         UTFT myGLCD(ITDB32S,38,39,40,41);

Hier liegt der Hase   ^^^^^^   im Pfeffer, denn wie Du im angehängten Bild sehen kannst,
funktioniert's (IDE 1.0.1).


* Bild1.jpg (54.24 KB, 935x520 - viewed 28 times.)
« Last Edit: March 11, 2013, 10:40:50 am by FumbleDO » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hey es geht ... nicht :-( ooohhh man was mache ich falsch ich glaube echt bald das das display kaput is ...
hab mir die version 1.0.1 heruntergeladen und damit auch versucht mit ITDB32S . ich verstehe es nicht
edit: mein display hat ne andere aufschrift !! "DLW-0180A" is das relevant?
« Last Edit: March 11, 2013, 11:28:01 am by Llzzard » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm, das könnte relevant werden, wenn auch ein anderer Controller-Chip onBoard ist.
Scheinbar werden die TFT's auch mit HX8347A ausgeliefert und dann rennt das Beispiel natürlich in die Wüste.

Vor einer Rücksendung wegen Defekt solltest Du einfach mal an den Verkäufer schreiben, Dein Problem schildern (ruhig Bezug auf die Library und das Example nehmen) und um Informationen zur Konfiguration bitten - im Regelfall sind die chin. Händler solchen Anfragen gegenüber recht aufgeschlossen. Inwieweit toolNerd mit SainSmart identisch ist, entzieht sich meiner Kenntnis - wenn's SainSmart ist, helfen Dir die in jedem Fall weiter. Nur nicht stänkern - da können die gar nicht drauf (aber wer tut das schon?)... ;-)

Mangels anderer Ideen drücke ich Dir nur die Daumen.

Edit: Nicht die Zeitverschiebung vergessen und schön die Füsse still halten! :-)))
« Last Edit: March 11, 2013, 12:24:43 pm by FumbleDO » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hey nabend ich bin am ende !
Habe von dem händler zwei libs bekommen "ITDB02_Touch_Mod" und die "UTFTF" ,aber das display will mir einfach nichts anzeigen !
ich habe ich mir gedacht teste jetzt da hab ich dieses sketch erstellt
Code:
#include <UTFT.h>
//#include <UTouch.h>
#include <ITDB02_Touch.h>

extern uint8_t SmallFont[];

UTFT        myGLCD(SSD1289,38,39,40,41);
                            HX8347A  auch getestet
//UTouch      myTouch(6,5,4,3,2);
ITDB02_Touch  myTouch(6,5,4,3,2);

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(SmallFont);

  myTouch.InitTouch(PORTRAIT);
  myTouch.setPrecision(4);
  Serial.begin(9600);
}
void loop()
{
  if (myTouch.dataAvailable() == true)
  {
    myTouch.read();
    myGLCD.clrScr();
  Serial.print(myTouch.getX());
  Serial.print(" xPos - ");
  Serial.print(myTouch.getY());
  Serial.print(" yPos");
  Serial.println(" ");
  myGLCD.setColor(0,255,255);
  myGLCD.fillCircle(myTouch.getX(),myTouch.getY(),20);
  } 
}
der touch geht :-) aber ich sehe leider nix auf display !!!
wenn einer nen fehler sieht oder sonst noch raht weiß oder geht das mit dem doofen tft lcd mega shield v1.0 und dem 3,2" tft nicht
MfG Sven
edit: siehe da es geht http://arduino.cc/forum/index.php/topic,129146.0.html aber bei mir nicht
« Last Edit: March 12, 2013, 05:46:55 pm by Llzzard » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Morgen leute :-)
Kann mir einer sagen ob der code denn richtig ist !
Er soll halt bei drücken des displays die x und y kordinaten ausgeben ( was er ja auch macht :-) ) und an dieser stelle einen runden farblichen kreis darstellen !
mfg sven
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1397
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In Deinem Sketch steht aber immer noch
Code:
UTFT        myGLCD(SSD1289,38,39,40,41);

laut einem der oberen Posts sollte dort aber folgendes stehen:

Code:
UTFT myGLCD(ITDB32S,38,39,40,41);
Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2447
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Kann mir einer sagen ob der code denn richtig ist !

Ich kann Dir das nicht sagen, aber ich habe hier mal im internationalen Bereich des Forums für Dich gesucht.

In Thread http://arduino.cc/forum/index.php?topic=121743.0 hat jemand in "Reply #12" Code gepostet, zu dem er schreibt:
"The following code works on my Sainsmart Mega 2560 & 3.2" touch screen. "

Vielleicht kopierst Du Dir da mal den Testcode aus "Reply #12" raus und probierst es damit?!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In Deinem Sketch steht aber immer noch
Code:
UTFT        myGLCD(SSD1289,38,39,40,41);

laut einem der oberen Posts sollte dort aber folgendes stehen:

Code:
UTFT myGLCD(ITDB32S,38,39,40,41);
ja richtig ich habe in der "UTFT_Supported_display_modules_&_controllers.pdf" gelesen :
das ich es auch nutzen kann... habe aber auch ITDB32S versucht :-)
Kann mir einer sagen ob der code denn richtig ist !

Ich kann Dir das nicht sagen, aber ich habe hier mal im internationalen Bereich des Forums für Dich gesucht.

In Thread http://arduino.cc/forum/index.php?topic=121743.0 hat jemand in "Reply #12" Code gepostet, zu dem er schreibt:
"The following code works on my Sainsmart Mega 2560 & 3.2" touch screen. "

Vielleicht kopierst Du Dir da mal den Testcode aus "Reply #12" raus und probierst es damit?!
is doch der gleiche denn ich auch schon gepostet hatte ... naja damit auch versucht ... geht auch nicht:-(
es kann doch nur noch sein das das Display kaputt is oder nicht???

« Last Edit: March 13, 2013, 08:31:59 am by Llzzard » Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2447
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

es kann doch nur noch sein das das Display kaputt is oder nicht???

Nö, immer wenn das Shield einen eigenen Mikrocontroller drauf hat, kommt auch noch eine andere Fehlermöglichkeit in Betracht, und der Fehler geht wie folgt:

Das Arduino-Board macht beim Start einen recht kurzen Auto-Reset, dessen Zeit für den Reset des auf dem Board verbauten Atmega-Controllers bemessen ist.

Nun gibt es aber Shields mit eigenen Controllern drauf (Ethernet-Controller, Display-Controller etc.), die einen LÄNGEREN Reset benötigen als ein Atmega. Wenn es nun also so ist, dass der Reset-Impuls vom Arduino-Board zu kurz ist, dann bekommt der Controller auf dem Shield überhaupt nichts vom Reset mit. Mit der Folge, dass zwar der Atmega korrekt startet, aber der Controller auf dem Shield überhaupt nicht per Controller-Reset initialisiert wird. In Deinem Fall der Display-Controller auf dem Display-Shield.

Das könntest Du selbst einfach testen, ob das der Fall ist:
Nachdem der (richtige) Sketch hochgeladen und der Arduino gestartet ist und das Shield nicht funktioniert: Drücke mal ca. eine Sekunde lang den Reset-Button (auf dem Arduino oder auf dem Shield, wenn es einen hat).

Wenn der Sketch mit einem manuellen (mehr als eine halbe Sekunde) Drücken des Reset-Buttons startet, dann liegt der Fehler an einem zu kurzen Auto-Reset des Arduino-Boards. Das würde ich an Deiner Stelle auch mal testen.
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1397
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, nachdem ich mich schon einige Zeit mit dem Gedanken an ein Touch-TFT getragen habe, hat mich dieser Thread dazu bewogen auch mal mein Glück mit Sainsmart zu versuchen. Da noch einen DFRduino Mega2560 in der Schublade liegt, habe ich mir das Display und den passenden Adapter einzeln bei Ebay gekauft. In Summe 28 Euro (durch Preisvorschlag statt Sofortkauf). Das Display hat laut Verkäufer auch einen SSD1289 Controller verbaut.


Als Library habe ich zum einen die im Ebay-Text verlinkte "lcd32.zip", welche neben den Datasheets die ITDB02_Graph16 und die ITDB02_Touch enthält. Das erste was auffällt ist, das die ITDB02_Graph16 bei der Initialisierung einen Parameter mehr benötigt, als Anschlüsse auf dem Board vorhanden sind. RS, WR, RST und CS finde ich als Pins auf dem Adapter, allerdings den Anschluss für "ALE" gibt es nicht. Außer dem 16 Datenleitungen ist der Rest für den Touch-Controller. Ich habe somit das Demo  ITDB02_Graph16_DEMO auch nicht zum laufen bekommen.

Zum Glück gibt es aber im Sketch selbst den Link auf die Seite von Henning Karlsen. Dort gibt es die aktuelle Version der UTFT und der UTouch Library.

Die Grafik-Demos funktionierten auf Anhieb. Man muss allerdings beim Mega den entsprechenden Eintrag im Sketch aus- bzw. einkommentieren.
Code:
// Uncomment the next line for Arduino 2009/Uno
//UTFT myGLCD(ITDB32S,19,18,17,16);   // Remember to change the model parameter to suit your display module!

// Uncomment the next line for Arduino Mega
UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module!

Leider hat mein Display einen kleinen Grafikfehler. Ich habe am rechten Rand im unteren Drittel einen ca 1cm langen blauen Streifen, der immer angezeigt wird, wenn das Display aktiv ist. Also werde ich es wohl nochmal umtauschen müssen.

Was witzigerweise nicht funktionierte, war die UTouch Lib. Die ITDB02_Touch Lib funktionierte hingegen schon. Schaut man sich den Code beider Libs an, so ist er nahezu identisch. Die UTouch Lib hat aber die Möglichkeit das Display zu kalibrieren, bzw. Kalibrierungsdaten in Form einer zusätzlichen Headerdatei zu inkludieren. Auffällig ist, das die UTouch Bibliothek den Eingang T_IRQ (hier meldet der Touch-Controller ein Ereignis) zunächst als Ausgang definiert und auf HIGH setzt. Nur in der Funktion "bool UTouch::dataAvailable()" wird der Pin kurz als Eingang gesetzt, gelesen, und dann wieder als Ausgang gesetzt. Da mir das unsinnig erschien, habe ich das kurzerhand geändert.

Hier ein diff der Änderung:
Code:
--- UTouch.cpp.orig.cpp 2012-11-15 00:02:18.000000000 +0100
+++ UTouch.cpp 2013-03-20 06:43:58.000000000 +0100
@@ -53,7 +53,7 @@
     pinMode(T_CS,   OUTPUT);
     pinMode(T_DIN,  OUTPUT);
     pinMode(T_DOUT, INPUT);
-    pinMode(T_IRQ,  OUTPUT);
+    pinMode(T_IRQ,  INPUT);
 
  digitalWrite(T_CS,  HIGH);
  digitalWrite(T_CLK, HIGH);
@@ -150,12 +150,10 @@
 }
 
 bool UTouch::dataAvailable()
-{
- bool avail;
- pinMode(T_IRQ,  INPUT);
- avail = !digitalRead(T_IRQ);
- pinMode(T_IRQ,  OUTPUT);
- return avail;
+{
+  bool avail;
+  avail = !digitalRead(T_IRQ);
+  return avail;
 }
 
 int UTouch::getX()

Damit funktionierte dann auch die "originale" UTouch Lib. Der Kalibrierungssketch ist auch sehr praktisch. Man brennt ihn auf den Mega und folgt den Anweisungen auf dem Screen. Am Ende spuckt der Sketch auf dem Display die Werte aus, die man in die UTouchCD.h an den passenden Stellen eintragen muss, damit die erkannten Touch-Positionen stimmen. Das hat bei mir sehr gut funktioniert.

Reset- oder Initialisierungsprobleme hatte ich bei keinem Beispiel. Was mir noch zu Llzzards Problem einfällt, hast Du mal versucht den Arduino mit einem externen Netzteil zu betreiben, statt nur per USB? Evtl. zieht ja die Hintergrundbeleuchtung so viel Saft, das der Rest der Elektronik nicht weiter mit macht. Unwahrscheinlich, aber möglich. Daher vielleicht einfach mal testen.

Mario.
Logged

Pages: 1 [2]   Go Up
Jump to: