Kann ich das Display auch ohne dieses Module benutzen ?
Ja, das Sensor Shield hat keine aktiven Komponenten, nur die verschiedenen Pins anwenderfreundlich auf Stecker raus geführt.
Wenn Ja,wie schließe ich es an?
Wenn Du die Beschreibung postest, wie es an das Sensor Shield angeschlossen wird, sage ich Dir, wie Du es ohne anschliessen kannst. Ich kenne das Display nicht und nur vom Foto ist das schwierig zu beurteilen.
Das Display wird mit SPI angesteuert. Im Beispiel wird dafür nicht der Hardware-SPI-Port genommen, sondern einfach beliebige GPIO-Pins (Pin 4-8). Du kannst nach dem Beispiel einfach Pin 4 bis 8 nehmen und das Beispiel-Programm unverändert übernehmen oder Du schliesst das Display an den Hardware-SPI an (was deutlich schneller ist) und nimmst das Beispiel "graphicstest_hispeed". In diesem Fall (graphicstest_hispeed) müsstest Du folgende Verbindungen machen:
Arduino
Display
10
CS
9
DC
8
RES
11
SDA
13
SCL
5V
VCC
GND
GND
Die ersten 3 kannst Du auch auf beliebige andere Pins legen, Du musst dann einfach die #define am Sketch-Anfang ändern. Die letzten 4 sind fix.
Da kann ich nur Vermutungen aufgrund der Bilder anstellen. Ich würde folgende (zusätzliche) Verbindungen machen:
Arduino
Display
11
MOSI
12
MISO
13
SCLK
4
CS (the one below MOSI)
Wenn Du das so verdrahtest, kannst Du alle Beispiele für den SD-Karten-Zugriff verwenden (beim Ethernet Shield ist der CS für die SD-Karte auch auf Pin 4).
auch ich habe mir das TFT-Modul gekauft.
Jedoch bekome ich schon beim Versuch den Code "graphicstest.pde" zu kompilieren eine unmenge an Fehlern:
--
no matching function for call to 'ST7735::ST7735(int,int,int,int)'
In file included from graphicstest.cpp:18:
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:57: error: expected )' before 'CS' C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:59: error: expected )' before 'CS'
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:64: error: 'uint16_t' has not been declared
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:65: error: 'uint8_t' has not been declared
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:65: error: 'uint8_t' has not been declared
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:65: error: 'uint16_t' has not been declared
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:66: error: 'int16_t' has not been declared
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:66: error: 'int16_t' has not been declared
C:\Programme\arduino-1.0.1\libraries\ST7735R/ST7735.h:66: error: 'int16_t' has not been declared
...
...
... usw, usw.
Die Libraries "ST7735.h", "ST7735.cpp" und "glcdfont.c" habe in in \arduino-1.0.1\libraries\ST7735R kopiert und Arduino neu gestartet.
Hat von Euch einer eine Idee, weshalb diese Fehler kommen und wie ich sie beseitigen kann?
Ich glaube, Du setzt eine veraltete Version der Bibliothek ein. Da Du aber keinen Link darauf mitgepostet hast, habe ich keine Ahnung, welche Bibliothek Du überhaupt einsetzen willst. Bei derjenigen, die ich kenne, heisst das Include-File "Adafruit_ST7735.h" und die sollte auch mit aktuellen IDEs klarkommen.
Zunächst mal Danke an pylon. Dein Tip hat mir weitergeholfen.
Mein Sainsmart-Display habe ich auch über Ebay ersteigert. Bei dem Angebot war ein Link zum Download der Beispiele und Bibliothek
So schön hübsch sieht das Display aus:
Die oben genannte Bibliothek verursachte bei mir beim Kompilieren die besagten Probleme, obwohl Display und Software von Sainsmart kommt.
Dank Deinem Tip habe ich die Beispiele und Bibliothek von Adafruit Downloads | 1.8" TFT Display Breakout and Shield | Adafruit Learning System geladen. Übrigends wird auf der Seite sehr schön auf die Verwendung des Displays eingegangen. Beachten muss man nur, dass die Pinbelegung des Adafruit-Displays von der Pinbelegung das Sainsmart-Displays abweicht.
Auf der Adafruit-Seite steht noch die wichtige Info, dass man die Adafruit_GFX Library ebenfalls benötigt.
Echt gut alles dargestellt! Habe mir ebenfalls auf Ebay das Display von sainsmart gekauft.
Die Beispiele funktionieren auch, jedoch habe ich Probleme mit der Anzeige von Bildern. :~
Ich habe beachtet, dass die Bilder in *bmp Format sein sollten, die Karte FAT32 und die Bilder 128x160 Pixel groß sind. Leider funktioniert es nicht.. Kann jemand, bei dem es läuft vielleicht mal die Pinbelegung posten? Habe die oben genannte schon ausprobiert. (Ich habe das Modell Leonardo)
erstmal Lob an die Community 8) !
Weiß jemand evtl. noch wie ich nur eine Zeile vom LCD löschen bzw. 'refreshen kann ohne das Display per tft.fillScreen(ST7735_BLACK); zu "resteten" ?
Dank Deinem Tip habe ich die Beispiele und Bibliothek von Adafruit Downloads | 1.8" TFT Display Breakout and Shield | Adafruit Learning System geladen. Übrigends wird auf der Seite sehr schön auf die Verwendung des Displays eingegangen. Beachten muss man nur, dass die Pinbelegung des Adafruit-Displays von der Pinbelegung das Sainsmart-Displays abweicht. Auf der Adafruit-Seite steht noch die wichtige Info, dass man die Adafruit_GFX Library ebenfalls benötigt.
Hoff du kannst mir evtl. ein Codebsp. zeigen ...so lerne ich am besten...kenne leider die ganzen Befehle (noch) nicht...
Edit : Hab da was gefunden :
by adafruit_support_rick » Sun Apr 07, 2013 7:27 am
Use the tft.fillRect function to erase just the areas you want to rewrite.
fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
For example, to erase your time, you might call
tft.fillRect(0,0,20,160,0x0000);
So sollts gehen...ist im Prinzip nichts anderes als pylon gemeint hat ! Thanks Man !
Sorry 4 DP...
Sag mal ... Flackert das Display auch bei euch wenn ihr ein Bild mit : bmpDraw("poweron.bmp", 0, 0); aufruft.. ? Sobald es "Geladen" ist,flackterst nicht mehr...
ist das Normal ?
Edit: Hier ist ein Video mit den Problem :- YouTube
Pinbelegung :
//Arduino Display
//10 CS
//9 DC
//8 RES
//11 SDA
//13 SCL
//5V VCC
//GND GND
Man kann eine Textzeile überschreiben indem man eine Hintergrundfarbe mit angibt. Dann flackert nichts mehr. und nur die eine Ausgabe wird überschrieben.
Viel eleganter als ein Schwarzes Rechteck drüber bügeln oder das ganze Display immer zwischendurch löschen.