Arduino Nano mit 1,8 Zoll TFT Farb-Display (HY-1.8 SPI)

Um unserem Arduino die Möglichkeit zu geben auch mal mitzuteilen was eigentlich gerade so los ist und nicht immer den seriellen Monitor dabei zu benutzen, wird es Zeit ihm mal ein kleines Display zu spendieren. Glücklicherweise gibt es da ein großes Spektrum an verfügbaren Shields und Breakoutboards. In diesem Fall verwenden wir ein 1,8 Zoll TFT-Farb-Display mit 128×160 Bildpunkten (HY-1.8 SPI, so die Bezeichnung auf dem Display), ausgestattet mit einer SPI-Schnittstelle, was uns die Möglichkeit gibt, im Vergleich zu Displays mit paralleler Schnittstelle, auch noch freie Ports für weitere Anwendungen zur Verfügung zu haben.

Arduino Nano und 1.8 Zoll TFT Display mit SPI-Schnittstelle

Arduino Nano und 1.8 Zoll TFT Display mit SPI-Schnittstelle

Durch die, im Vergleich zu puren Character-Displays, hohe Auflösung haben wir auch ausreichend Platz um diverse Informationen zum Status unserer Schaltungen anzuzeigen.

Nun aber erst einmal weiter mit dem praktischen Teil, dem Anschliessen des Displays an den Arduino, in diesem Fall ein Arduino Nano, der natürlich auch durch einen anderen Arduino-Typen ersetzt werden kann. Wir verbinden also die Pins wie in der unten stehenden Tabelle.

Schaltplan (Arduino-Verdrahtung des HY-1.8 SPI TFT Farb-Displays):

Schaltplangröße:

1afbgchdie1j5510101515202025253030353540404545505055556060afbgchdiej1.8 SPI TFT 128*160HY-1.8 SPI
Für weitere Informationen (z.B. Pinbelegungen von Bauteilen oder genaue Kabelverbindungen)
mit der Maus über Elemente fahren (oder im Touch-Modus: Elemente antippen)...

Arduino (Mini, Nano, Uno) HY-1.8 SPI
D9 Pin 07 (A0)
D10 (SS) Pin 10 (CS)
D11 (MOSI) Pin 08 (SDA)
D13 (SCK) Pin 09 (SCK)
D8 Pin 06 (RESET)
5V (VCC) Pin 02 (VCC)
GND Pin 01 (GND)
3,3V oder 5V (VCC) Pin 15 (LED+)
GND Pin 16 (LED-)
Anschlussbelegung: 1.8 Zoll TFT-Farb-Display

Anschlussbelegung: 1.8 Zoll TFT-Farb-Display (Rückseite)

Jetzt müssen wir uns noch 2 Bibliotheken zur Ansteuerung des Displays besorgen. Dies wäre einerseits die Adafruit-Bibliothek zur Ansteuerung des Display-Chipsatzes (ST7735) und dann eine Grafik-Bibliothek ebenfalls von Adafruit. Nachdem wir diese den Arduino-Bibliotheken hinzugefügt haben, laden wir noch folgenden Sketch auf unseren Arduino:

Programmcode (Sketch):

// Grafiktest 1.8 Zoll TFT-Farb-Display (HY-1.8 SPI)

#define TFT_PIN_CS   10 // Arduino-Pin an Display CS   
#define TFT_PIN_DC   9  // Arduino-Pin an 
#define TFT_PIN_RST  8  // Arduino Reset-Pin

#include <SPI.h>
#include <Adafruit_GFX.h>    // Adafruit Grafik-Bibliothek
#include <Adafruit_ST7735.h> // Adafruit ST7735-Bibliothek

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_PIN_CS, TFT_PIN_DC, TFT_PIN_RST);  // Display-Bibliothek Setup

void setup(void) {
  
  tft.initR(INITR_BLACKTAB);   // ST7735-Chip initialisieren

}

void loop() {

  // Bildschirm mit Farbe fuellen
  // fillScreen(farbe);
  tft.fillScreen(ST7735_BLACK);

  delay(2000); // 2 Sekunden warten
  
  // Fontgroesse setzen
  // setTextSize(groesse);
  tft.setTextSize(2);
  
  // Schrift umbrechen?
  // setTextWrap(true);   true=Ja, false=Nein
  tft.setTextWrap(true); 
  
  // Textposition setzen
  // setCursor(x,y);
  tft.setCursor(24,4);
 
  // Textfarbe setzen
  // setTextColor(farbe);
  tft.setTextColor(ST7735_WHITE);
  
  // Text ausgeben
  // print(text);
  tft.print("Hallo !");

  delay(2000); // 2 Sekunden warten
  
  // Linie zeichnen
  // drawLine(x_start,y_start,x_ende,y_ende,farbe);
  tft.drawLine(10,24,118,24,ST7735_GREEN);

  delay(2000); // 2 Sekunden warten
    
  // Ein Rechteck zeichnen 
  // drawRect(x_oben_links,y_oben_links,weite,hoehe,farbe);
  tft.drawRect(4,35,120,20,ST7735_RED); 
  
  delay(2000); // 2 Sekunden warten

  // Ein gefuelltes Rechteck zeichnen 
  // drawRect(x_oben_links,y_oben_links,weite,hoehe,farbe);
  tft.fillRect(10,40,108,10,ST7735_YELLOW);

  delay(2000); // 2 Sekunden warten

  // Ein Rechteck zeichnen 
  // drawRoundRect(x_oben_links,y_oben_links,weite,hoehe,rundung,farbe);
  tft.drawRoundRect(4,65,120,20,5,ST7735_MAGENTA); 
  
  delay(2000);
  
  // Einen Kreis zeichnen 
  // drawCircle(x_oben_links,y_oben_links,radius,farbe);
  tft.drawCircle(64,115, 20, ST7735_CYAN);
  
  delay(2000); // 2 Sekunden warten
  
  // Einen gefuellten Kreis zeichnen 
  // fillCircle(x_oben_links,y_oben_links,radius,farbe);
  tft.fillCircle(64,115, 10, ST7735_BLUE);
  
  delay(2000); // 2 Sekunden warten

  // Neue Fontgroesse setzen
  // setTextSize(groesse);
  tft.setTextSize(1);
  
  // Neue Textfarbe setzen
  // setTextColor(farbe);
  tft.setTextColor(ST7735_GREEN);
  
  // Neue Textposition setzen
  // setCursor(x,y);
  tft.setCursor(14,147);
  
  // Text ausgeben
  // print(text);
  tft.print("blog.simtronyx.de");
  
  delay(8000); // 8 Sekunden warten
  
  // Gesamtes Display invertieren?
  // invertDisplay(true);   true=Ja, false=Nein
  tft.invertDisplay(true);
  
  delay(1000); // 1 Sekunde warten
  
  // Gesamtes Display invertieren?
  // invertDisplay(false);   true=Ja, false=Nein
  tft.invertDisplay(false);

  delay(1000); // 1 Sekunde warten
}


Download Source Code


…und schon läuft unser Display.

Bei einigen Blogbesuchern und Bastlern sind bei der Kompilierung Fehler aufgetreten. Dies lag an der „Robot_Control“-Bibliothek, welche sich nicht mit den verwendeten Bibliotheken verträgt. Die „Robot_Control“-Bibliothek sollte temporär entfernt werden, wodurch das Problem behoben wird.

Die obigen Bibliotheken sind ZIP-Versionen die mit der Arduino IDE 1.0.X funktionieren, eventuell sollten bei Verwendung der IDE mit Version 1.6.X die aktuellsten Bibliotheken direkt bei GitHub gesucht und installiert werden, falls es zu Fehlern beim Kompilieren kommt!

Natürlich können auch die Beispiele aus der ST7735-Bibliothek verwendet werden, zu beachten wäre hierbei, dass -zumindestens ohne Code-Änderung- nur „highspeed“-Beispiele laufen, empfehlenswert ist dabei auf jeden Fall das „graphicstest_highspeed“-Beispiel.

Nicht das richtige Display? Dann hilft eventuell dieser Beitrag:

Weiterführende Projekte:

Bauteile (Bezugsquellen):

eBay: 1.8 Zoll TFT SPI Display
Arduino Nano
Breadboard
Breadboard Kabel
Amazon: 1.8 Zoll TFT SPI Display
Arduino Nano
Breadboard
Breadboard Kabel

Gut?

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail