Uhr mit TFT 240×240 Pixeln




Ziele des Projekts

  • mit der WiFi-Funk­ti­on eines ESP32 oder ESP8266 Mikro­con­trol­lers die aktu­el­le Zeit und das aktu­el­le Datum holen
  • ana­lo­ge Uhr auf einem run­den TFT anzei­gen

Das Pro­gramm für ein TFT mit 320×240 Pixeln fin­dest du ⇒hier, das für ein TFT mit 480×320 Pixeln gibt es ⇒hier.

Das Programm im Film

Anwendungsbeispiele

Dan­ke an Nor­bert Schrills

Konfiguration der Mikrocontroller

TFT mit 240×240 Pixeln

Bei­spiel­pro­gramm

Schaltplan für ESP32-Wroom

RST (gelb) -> 4
CS (weiß) -> 5
DC ( grün) -> 2
SDA (blau) -> 23
SCL (braun) -> 18

Benötigte Bibliothek

Bibliothek Adafruit GFX Library

Die Biblio­thek Adafruit_GC9A01A ver­wen­det die Funk­tio­nen der Adafruit GFX Libra­ry.

Schlüs­sel­wortPara­me­terAkti­on
width();Bild­schirm­brei­te fest­stel­len
height();Bild­schirm­hö­he fest­stel­len
setRotation(Richtung);Rich­tung = 0 → nicht dre­hen
Rich­tung = 1 → 90° dre­hen
Rich­tung = 2 → 180° dre­hen
Rich­tung = 3 → 270 ° dre­hen
Bild­schirm aus­rich­ten
fillScreen(Farbe);Bild­schirm­hin­ter­grund
drawLine(StartX, Star­tY, End­eX, EndeY, Far­be);Linie zeich­nen
drawFastHLine(StartX, Star­tY, Län­ge, Far­be);hori­zon­ta­le Linie zeich­nen
drawFastVLine(StartX, Star­tY, Län­ge, Far­be);ver­ti­ka­le Linie zeich­nen
drawRect(StartX, Star­tY,, Brei­te, Höhe, Far­be);Recht­eck zeich­nen
drawRoundRect(StartX, Star­tY, Brei­te, Höhe, Ecken­ra­di­us, Far­be);abge­run­de­tes Recht­eck zeich­nen
fillRoundRect(StartX, Star­tY, Brei­te, Höhe, Ecken­ra­di­us, Füll­far­be);aus­ge­füll­tes abge­run­de­tes Recht­eck zeich­nen
fillRect(StartX, Star­tY, Brei­te, Höhe, Füll­far­be);aus­ge­füll­tes Recht­eck zeich­nen
drawCircle(MittelpunktX, Mit­tel­punk­tY, Radi­us, Far­be);Kreis zeich­nen
fillCircle(MittelpunktX, Mit­tel­punk­tY, Radi­us, Füll­far­be);Aus­ge­füll­ten Kreis zeich­nen
drawTriangle(x1, y1, x2, y2, x3, y3, Far­be);Drei­eck zeich­nen:
x1, y1: 1.Punkt
x2, y2: 2.Punkt
x3, y3: 3.Punkt
fillTriangle(x1, y1, x2, y2, x3, y3, Füll­far­be);aus­ge­füll­tes Drei­eck zeich­nen:
x1, y1: 1.Punkt
x2, y2: 2.Punkt
x3, y3: 3.Punkt
setCursor(x, y);Cur­sor set­zen
setTextSize(Textgröße);Text­grö­ßeText­grö­ße bestim­men
setTextColor(Farbe);Text­far­be set­zen
print("Text"); println("Text");Text schrei­ben
setTextWrap(true/false);fal­se → Text fließt über den Rand des TFTs hin­aus
true → Text wird am Ende umge­bro­chen
Zei­len­um­bruch
invert­Dis­play();0 → Far­ben nicht tau­schen
1 → Far­ben tau­schen
color565(rot, grün, blau);rot: 0 - 255
grün: 0 - 255
blau: 0 - 255
belie­bi­ge Misch­far­ben erstel­len
drawBitmap(PosX, PosY, Array, Array­GrößeX, Array­Grö­ßeY, Far­be);Array als Bild dar­stel­len

Das Programm

Das Pro­gramm kann auf viel­fäl­ti­ge Wei­se ange­passt wer­den:

  • die Far­be der Zei­ger (Zeig­erfar­be)
    die Far­ben kannst du dem Kopf des Pro­gramms ent­neh­men
  • die Far­be des inne­ren Krei­ses (Kreis­far­be)
  • die Far­be der äuße­ren Umran­dung (Rand­far­be)
  • Anzei­ge des Datums (Datu­m­An­zei­gen)
    true: Datum anzei­gen, fal­se: Datum ver­ber­gen
  • die Anzei­ge der Stun­den­mar­kie­run­gen 12, 3, 6 und 9 (Zif­fern­an­zei­gen)
    true: Zif­fern anzei­gen, fal­se: Zif­fern ver­ber­gen
  • Anzei­ge des Sekun­den­zei­gers (Sekun­den­zei­ger­Kreis)
    true: Anzei­ge als Kreis
    fal­se: Anzei­ge mit Linie und Kreis
    Die Anzei­ge des Datums wird abge­schal­tet, um das Fla­ckern des TFTs zu ver­mei­den.

Beim Start des Pro­gramms zei­gen die Mel­dun­gen im Seri­el­len Moni­tor und auf dem TFT ob Datum und Zeit kor­rekt sind. Wenn in 90 Sekun­den kei­ne Ver­bin­dung zu einem Zeit­ser­ver her­ge­stellt wer­den konn­te, wird das Pro­gramm been­det. Nach einem erneu­ten Hoch­la­den kommt zumeist die Ver­bin­dung schnell zustan­de.

Mög­li­cher­wei­se ent­steht durch die Anzei­ge der Start­mel­dun­gen auf dem TFT eine kur­ze Ver­zö­ge­rung und die Zeit­an­zei­ge „hinkt“ etwas hin­ter­her. Nach einer erneu­ten Syn­chro­ni­sa­ti­on spä­tes­tens nach einer Minu­te wird die Zeit kor­rekt ange­zeigt.

Du musst die SPI-Pins des ver­wen­de­ten Mikro­con­trol­lers anpas­sen.


Quellen


Ähnliche Projekte


Letzte Aktualisierung: Jan. 5, 2026 @ 13:50

Inhalt