HSV-Uhr: Lebendige, anpassbare Zeitanzeige für Arduino-Enthusiasten
Komponenten und Materialien
| Arduino UNO | × | 1 |
| Seeed 2,8" TFT Touch Shield (V1.0) | × | 1 |
Über dieses Projekt
HSV-Uhr
Bei einem USA-Besuch erwarb ich ein Seeed 2,8" TFT Touch Shield (V1.0) bei RadioShack. Damit baute ich eine farbenfrohe Uhr für meinen Vater zum 80. Geburtstag.
Die wichtigsten Punkte:
- Ziffernblatt: Basiert auf einem Raster rechteckiger Zellen. Die Zellenecken werden durch kleine zufällige Beträge verzerrt, jede Zelle wird durch eine zufällige Diagonale geteilt. Ein zufälliger Farbverlauf wird über die Zellen gelegt, und jedes Dreieck wird schattiert für einen 3D-Effekt. Intern werden Farben als HSV (Farbton, Sättigung & Wert) dargestellt, aber für die LCD-Ausgabe in RGB konvertiert. Die Zeit wird durch Einfärben bestimmter Zellen in Komplementärfarben mit einer einfachen Schriftart angezeigt.
- Gehäuse: Lasergeschnittenes Bambus, in Inkscape entworfen, von Ponoko geschnitten.
- Montage: Da das Shield keine Montagelöcher hat, wird es effektiv im Gehäuse gegen die Frontplatte geklemmt. Ein Arduino Uno sitzt via Header-Pins auf dem Shield.
- Externes RTC (DS3232): I2C-Zugriff war nötig. Das Shield legt ungenutzte Pins nicht frei, daher nutzte ich einen Uno mit zusätzlichen SDA/SCL-Pins. Ein flacher Header-Connector für diese sitzt unter dem Shield. Strom und Masse kommen von einem ähnlichen Connector an den ICSP-Pins, ebenfalls unter dem Shield.
- Sommerzeit-Unterstützung: Im Sketch integriert (eine Uhr weniger, die man zweimal jährlich stellen muss!). Statt Logik wie "der letzte Sonntag im September" nutzt es eine kleine Tabelle mit konkreten Start- und Enddaten für kommende Jahre (für Neuseeland in meinem Fall).
- Touchscreen: Die Touch-Bibliothek wurde vereinfacht, sodass der Bildschirm als 4x4-Grid entprellter Tasten fungiert. Beispiel: Zeit wird durch Antippen der linken unteren und rechten oberen Ecke eingestellt.
- Rendering-Optimierung: Ein Neuzeichnen der Zellen dauert ca. eine Viertel Sekunde. Basiert auf dem Schreiben horizontaler Pixelreihen einer bestimmten Farbe. Ein modifizierter Bresenham-Algorithmus berechnet die horizontalen Ausdehnungen von Linienpaaren, die Dreiecke einer Zelle bilden. Der LCD-Pixel-Code basiert auf der Bibliothek, ist aber inline, ungerollt, vereinfacht und optimiert. Da Farbdaten über mehrere PORTs geschrieben werden, werden alle Werte beim Farbwechsel vorgehalten, sodass das Setzen von N Pixeln in einer Reihe schneller geht.
- Querformat: Der LCD wird im Landscape-Modus genutzt. Lange kämpfte ich, um horizontale Zeilenaktualisierungen zu erreichen. Das Datenblatt des Controllers ist verwirrend. Es gibt Befehle für "Cursor"-Positionierung ("DRAM Horizontal/Vertical Address Set R20h, R21h"). Pixel-Daten werden an der Cursor-Position geschrieben, der Cursor aktualisiert sich und springt bei Bedarf zur nächsten Zeile. Es gibt auch einen Befehl zur Orientierungsänderung ("Entry Mode R03h"), der auch Cursor-Zeilen/Spalten-Inkremente anpasst. Doch das Ändern auf Landscape und anschließendes Positionieren des Cursors funktionierte nicht. Die Lösung (evtl. im Datenblatt versteckt): Statt Cursor-Befehl den "Window"-Befehl nutzen; "Horizontal and Vertical RAM Address Position (R50h, R51h, R52h, R53h)". Das Setzen der Koordinaten der linken oberen Fensterecke lässt Pixel-Daten dort beginnen und horizontal aktualisieren (im Landscape).
Schaltung
Die Schaltung ist simpel:
- TFT-Shield auf dem Uno montiert.
- +5V DC, Masse, SDA & SCL von den beschrifteten Pins des Uno zum RTC-Modul. In den ersten drei Fotos unten (Shield entfernt) gezeigt. Beachten: Strom/Masse kommt vom ICSP1-Connector für Zugangsgründe.
Fritzing & Fotos

Fotos des Aufbaus:















Herstellungsprozess
- Das Kazoo: Vom antiken Mirliton zum modernen Kunststoffspielzeug – Geschichte, Fertigung & Zukunft
- Die Harfe: Von antiken Wurzeln zu modernen Meisterwerken
- Expandiertes Polystyrol (EPS): Herstellung, Eigenschaften und Nachhaltigkeit
- Raspberry Pi Sensoren meistern: Praktischer Leitfaden zu Elektronik und Kommunikationsprotokollen
- Intelligenten Roboter mit Bridge Shield bauen – Raspberry Pi & Arduino Integration
- Web-gesteuertes DMX-Lichtsystem – Arduino Master Controller
- Fadenschneider: Typen, Verwendung & Anwendungen
- Steinbrüche (Quarries): Typen, Nutzung & globale Verbreitung
- Dietrich (Skeleton Keys): Typen, Verwendung & historische Bedeutung
- Vor-Ort-Stickstoffgenerierung: Labor-Sicherheit & Zuverlässigkeit erhöhen