Pixelklecks

Projekte III
  Jahresarchive     Projekte I     Projekte II     Weitere Hobbys     Fotogalerien  
Lauftextanzeige
LauftextanzeigeII
Numitron Anzeige
POV Clock
Prusa I3 Clone
Arduino Ampelanzeige
Mini Wortuhr
Steppertester
Simon Wright
learning cube for Arduino
RC Car
360° ActionCam Adapter
RFID MP3 Abspielbox
Zusatztastatur
Zoetrope
eMagnet Wheel
Ruetteladapter
Homeoffice Statusmelder
Rundes Display (GC9A01)
Homeoffice Ampel
Freedeck (Tastatur)
Jitsi Videostation
HID / USB Zusatztastatur
Klingel & Paketkasten Bot
Teamplayer (MP3 & RFID)
Allgemein:
Startseite
In eigener Sache...
Impressum
Datenschutzerklärung

Es gibt seit einiger Zeit runde Displays mit Breakout Boards mit einer Auflösung von 240x240 Bildpunkten und einer Diagonale von 32mm (1,28").
Diese gibt es für den kleinen Geldbeutel (<10€) z.B. bei Aliexpress




Ich wollte so ein Display über einen ESP8266 (per NodeMCU D1 Mini) ansteuern, da dieser zum Einen mit ausreichend Speicher ausgerüstet ist, zum Anderen ist dieser mit den 3.3V Pegeln des Displays kompatibel. Prinzipiell kann man das Display auch mit jedem anderen Controller ansteuern, muss dann aber ggf. jeweils 2.2k Widerstände in die Signalleitungen setzen, alternativ eine "richtige" Pegelanpassung vornehmen.

Ich musste ziemlich lange nach einer geeigneten Library suchen, die auch mit dem verbauten Controller kompatibel ist - diese funktioniert sehr gut:
https://github.com/Bodmer/TFT_eSPI
(die "User.h" im Library Verzeichnis muss für den Controller anpasst werden)

#define GC9A01_DRIVER
#define TFT_HEIGHT 240 // GC9A01 240 x 240
#define TFT_CS PIN_D8 // Chip select control pin D8
#define TFT_DC PIN_D3 // Data Command control pin
#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)


Falls nicht nur Texte/Fonts, sondern auch Bilder angezeigt werden sollen:
https://github.com/Bodmer/JPEGDecoder

Zum Konvertieren von JPEG-Bildern zu DatenArrays nutze ich dieses Tool:
https://tomeko.net/online_tools/file_to_hex.php?lang=en


Mir war zuerst die Pin-Zuordnung nicht ganz schlüssig, habe ich daher mal dokumentiert:

Display Signal ESP8266 (PIN) Arduino Uno/Nano (PIN)
GND Ground GND GND
VCC Power Supply 3.3V 3.3V
SCL Clock Input (SCK SPI) D5 D13 (remember R2.2k)
SDA Data Input (SDI/Mosi SPI) D7 D11 (remember R2.2k)
RES Reset D4 (user.h) D4 (user.h, remember R2.2k)
DC Data/Command Select D3 (user.h) D3 (user.h, remember R2.2k)
CS Chip Select (CS SPI) D8 (user.h) D8 (user.h, remember R2.2k)
BL Backlight Control every IO (low="off) every IO (low="off, remember R2.2k)