Ich versuche schon seit Tagen meinen Arduino Nano Klon dazu zu bewegen etwas auf meinem 1.8" TFT SPI Display anzuzeigen, aber er will einfach nicht so richtig. Ich hab schon dieses Forum hier und gefühlt halb Google durchforstet, warum ich keine Ausgabe auf dem Display bekomme (hab sogar noch 2 weitere geordert weil ich dachte es wäre defekt - Problem besteht aber weiterhin), finde aber einfach keine Lösung. Ich bin noch ziemlich am Anfang beim Umgang mit dem Arduino, ist also möglich das ich einfach immer irgend eine Kleinigkeit übersehe. Vllt kann mir an dieser Stelle jmd. von euch helfen.
Nach dem Hochladen des folgenden Programms kann ich im seriellen Monitor der Arduino Software auch alle Ausgaben auf der Konsole verfolgen, vom Anfang "Hello...." bis "done" - das Programm scheint also von Anfang bis Ende vom Arduino verarbeitet zu werden, dennoch seh ich absolut gar nix auf meinem Display. Hier der Aufbau meiner Schaltung und der zugehörige Quellcode. Bin für jede noch so kleine Hilfe dankbar.
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>
#define TFT_CS 10
#define TFT_RST 8 // you can also connect this to the Arduino reset
// in which case, set this #define pin to 0!
#define TFT_DC 9
// Option 1 (recommended): must use the hardware SPI pins
// (for UNO thats sclk = 13 and sid = 11) and pin 10 must be
// an output. This is much faster - also required if you want
// to use the microSD card (see the image drawing example)
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
// Option 2: use any pins but a little slower!
#define TFT_SCLK 13 // set these to be whatever pins you like!
#define TFT_MOSI 11 // set these to be whatever pins you like!
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
float p = 3.1415926;
void setup(void) {
Serial.begin(9600);
Serial.print("Hello! ST7735 TFT Test");
// Use this initializer if you're using a 1.8" TFT
tft.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab
// Use this initializer (uncomment) if you're using a 1.44" TFT
//tft.initR(INITR_144GREENTAB); // initialize a ST7735S chip, black tab
Serial.println("Initialized");
uint16_t time = millis();
tft.fillScreen(ST7735_BLACK);
time = millis() - time;
Serial.println(time, DEC);
delay(500);
// large block of text
tft.fillScreen(ST7735_BLACK);
testdrawtext("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa, fringilla sed malesuada et, malesuada sit amet turpis. Sed porttitor neque ut ante pretium vitae malesuada nunc bibendum. Nullam aliquet ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus a tortor imperdiet posuere. ", ST7735_WHITE);
delay(1000);
// tft print function!
tftPrintTest();
delay(4000);
// a single pixel
tft.drawPixel(tft.width()/2, tft.height()/2, ST7735_GREEN);
delay(500);
// line draw test
testlines(ST7735_YELLOW);
delay(500);
// optimized lines
testfastlines(ST7735_RED, ST7735_BLUE);
delay(500);
testdrawrects(ST7735_GREEN);
delay(500);
testfillrects(ST7735_YELLOW, ST7735_MAGENTA);
delay(500);
tft.fillScreen(ST7735_BLACK);
testfillcircles(10, ST7735_BLUE);
testdrawcircles(10, ST7735_WHITE);
delay(500);
testroundrects();
delay(500);
testtriangles();
delay(500);
mediabuttons();
delay(500);
Serial.println("done");
delay(1000);
}.........
Was soll die Bastelei mit dem Pegelwandler?
Alle diese Teile, die ich kenne, laufen wunderbar mit 5V....der Nano auch und dieses angeblich ja auch.
Also kann man das Ding getrost weglassen- ne Fehlerquelle weniger.
Und: mal die Beschreibung zu dem TFT gelesen??
Ich zitiere mal: 4) Der Pin LED muss auf Vcc gezogen werden um das Backlight zu aktiveren. (ohne ist der Inhalt schwer erkennbar, da nicht hinterleuchtet).
Praktisch bedeutet das, es ist gar nix zu erkennen, wenn man das nicht macht!
Und: es ist ne tolle Zusatzfunktion, da man das Display auch "abschalten" kann- hätt ich bei meinen auch gerne.
Rabenauge:
Was soll die Bastelei mit dem Pegelwandler?
Alle diese Teile, die ich kenne, laufen wunderbar mit 5V....der Nano auch und dieses angeblich ja auch.
Also kann man das Ding getrost weglassen- ne Fehlerquelle weniger.
Stimmt leider nicht für alle Displays. Meine 2,2" TFT arbeiten nicht, wenn ich diese mit 5 Volt ansteuere, das geht nur über Pegelwandler.
Und: mal die Beschreibung zu dem TFT gelesen??
Ich zitiere mal: 4) Der Pin LED muss auf Vcc gezogen werden um das Backlight zu aktiveren. (ohne ist der Inhalt schwer erkennbar, da nicht hinterleuchtet).
Praktisch bedeutet das, es ist gar nix zu erkennen, wenn man das nicht macht!
Und: es ist ne tolle Zusatzfunktion, da man das Display auch "abschalten" kann- hätt ich bei meinen auch gerne.
Auch hier reichen 3,3 Volt aus, auch getestet am 2,2"-Display.
@HotSystems: mit "diese" meinte ich die 1.8".
Hätte mich deutlicher ausdrücken sollen....davon hab ich mindestens ein halbes Dutzend in Umlauf, und immer mit 5V gefüttert.
Vermutlich ist der Wandler einfach schon drauf.
Bei dem, vom TS verlinkten, steht auch dabei "zwischen 3.2V und 5V"- von daher gibts keinen Grund, ne zusätzliche, mögliche Fehlerquelle einzubauen.
Trotzdem wird er nix sehen, wenn er die Hintergrundbeleuchtung nich einschaltet. Und das muss man bei diesem wohl- kenn ich von meinen auch nicht.
Rabenauge: @HotSystems: mit "diese" meinte ich die 1.8".
Hätte mich deutlicher ausdrücken sollen....davon hab ich mindestens ein halbes Dutzend in Umlauf, und immer mit 5V gefüttert.
Vermutlich ist der Wandler einfach schon drauf.
Bei dem, vom TS verlinkten, steht auch dabei "zwischen 3.2V und 5V"- von daher gibts keinen Grund, ne zusätzliche, mögliche Fehlerquelle einzubauen.
Trotzdem wird er nix sehen, wenn er die Hintergrundbeleuchtung nich einschaltet. Und das muss man bei diesem wohl- kenn ich von meinen auch nicht.
OK, hatte ich falsch verstanden.
Allerdings sind auf meinen 2,2" auch Spannungsregler drauf, aber die Steuerleitungen offensichtlich nicht 5 Volt kompatibel. Zumindest meine 2,2"-Displays laufen dann nicht.
Das kann dann bei den 1,8" anders sein.
Zur Hintergrundbeleuchtung: Er hat diese ja lt. Schaltbild auf 3,3 Volt gelegt und damit sollte das auch funktionieren.
Um vllt noch die ein oder andere offene Frage aus dem Weg zu räumen:
1.) der Code ist aus dem Beispiel-Sketch [graphicstest] der ST7735 Library, nur die Pins sind angepasst (hab den kompletten Code nochmal als txt-File an den Beitrag hier angeheftet.
2.) den Pegelwandler benutzt ich eigentlich nur, weil über mehrere Foren verteilt stand, dass viele 1,8 Zoll Displays nur mit Signalpegeln bis 3,3 V umgehen können. Aber auch wenn ich das Display mit 5V auf den Signalleitungen betreib tut sich nix
3.) der Backlight bzw. LED Pin ist auf 3,3V bzw 5V gezogen - das Display ist dann einfach nur hell (je nachdem welcher Spannungspegel anliegt wird das Display gedimmt - war zumindest mein Fazit aus den ganzen Versuchen)
4.) wenn ich die Schaltung mit einem original Arduino Uno oder einem "Funduino" aufbau hab ich das gleiche Resultat (vllt schließt das ja einige mögliche Fehlerquellen aus)
Hat jmd noch iwelche Ideen? Bin momentan komplett ratlos...
Okay-das Ding leuchtet also schon mal...
Warum nimmst du nicht die empfohlene Anschluss-Belegung?
Wenn du später ne andere brauchst, ändere das dann, aber sieh erstmal zu, dass es läuft.
Dass man "beliebige Pins" nutzen kann, ist "im Prinzip" richtig- praktisch sieht es mitunter anders aus.
Und: nich alles, was in Foren so erzählt wird, stimmt. Teilweise wird da einfach nur nachgeplappert. wie gesagt: ich hab solche Displays schon öfter benutzt und noch nie mit 3.3V. Es ist ein Unterschied, ob man vom display alleine redet (das wird nur mit 3.3V arbeiten) oder eben von der ganzen Baugruppe, wie man sie kauft (mit dem ganzen zusätzlichen Tamtam).
Aussagekräftig alleine ist die Angabe des Herstellers- zumindest sollte man sich danach erstmal richten (auch wenn das auf manch einen Asiaten nicht zutrifft, die wissen keineswegs immer genau, was sie basteln oder verkaufen).