Wortuhr? Warum nicht!?

Wortuhr? Warum nicht!?

Ich habe vor einiger Zeit bei Bekannten so eine ziemlich stylische Wortuhr gesehen. Nach ein wenig Recherche war klar, dass das „Original“ von Biegert&Funk eher in die Kategorie unbezahlbar gehört, aber es geht auch anders 🙂

Gleichzeitig bin ich aber auch auf einige DIY-Projekte gestoßen, die ich mal mehr, mal weniger gut fand.

Wenn ich so eine Uhr bauen würde, wären für mich folgende Punkte ein muss:

  • Die Uhr muss schwarz sein.
  • Es sollen mindestens RGB-LEDs, besser noch RGBW verbaut sein.
  • Es sollen möglichst zusammenhängende Streifen von LEDs pro Zeile verwendet werden.
  • Die Elektronik soll so einfach wie möglich sein.
  • Die Kosten sollen deutlich unter 100 € liegen.

Dadurch sind alle Bausätze, die ich gefunden habe, direkt aus dem Rennen gewesen.

Folgende Materialien habe ich letztlich verwendet:

Wie Ihr an meiner Auflistung unschwer erkennen könnt, habe ich alle meine Vorgaben erfüllt – und das Ganze für ca. 65 €

Bevor ich alle Materialien hatte, habe ich mir das Ganze Konstrukt in Inkscape maßstabsgetreu gezeichnet. Die Maße des LED-Streifen stand erfreulicherweise bei eBay dabei (LED: 5x5mm, Abstand 28mm). Das ergab dann 10 zusammenhängende LED-Streifen mit jeweils 11 LEDs. Als Vorlage habe ich die schon erwähnte Uhr von Biegert&Funk genommen. In Inkscape habe ich mir ebenfalls das Raster, welches ich nachher aus dem Fotokarton gefertigt habe, konstruiert und konnte dann die benötigten Maße ablesen. Mein erster Versuch war übrigens mit weißem Karton, der aber leider durchleuchtet wird. Beim schwarzen Karton habe ich nicht sorgfältig genug geschnitten, sodass ich einige schmale Lücken und Löcher mit schwarzem Isolierband nachträglich schließen musste.

  • Raster mit weißem Karton, später mit schwarzem Karton neuerstellt

Am Anfang habe ich über den Einsatz eines RTC-Moduls nachgedacht, mich aber der Einfachheit halber dagegen entschieden. Dafür lass ich jeden Tag die Zeit von einem Zeitserver neu beziehen.

Was die Programmierung angeht, habe ich bewusst nicht auf eine fertige Komplettlösungen gesetzt und habe den Code selbst entwickelt. Dabei habe ich folgende Libraries verwendet bzw. Funktionen umgesetzt:

Beim Programmieren wollte ich das Projekt gerne auf mehrere ino-Dateien aufteilen, was im Grunde ja auch kein Problem darstellt. Letztendlich wollte ich aber auch Visual Studio mit Intellisense und Autovervollständigung nutzen und musste das Projekt daher auf eine ino-Datei und mehreren h-Dateien (Header-Dateien) aufteilen. Daraufhin gab es aber ziemliches Referenzierungschaos, da die Header-Dateien mehrfach referenziert wurden und die Variablendeklerationen dadurch vom Compiler doppelt gesehen wurden. Die Lösung war auf eine richtige C++ Struktur zu setzen. Das heißt im Arduino-Fall: 1 ino-Datei, mehrere Header-Dateien und dazu jeweils eine cpp-Datei für die Implementationen.

Nach etwas feintuning und Erweiterungen werde ich Euch den Code zur Verfügung stellen.

Bis jetzt verbindet sich die Uhr mit meinem WLAN und es wird, wie schon erwähnt, die Zeit täglich per Zeitserver aktuell gehalten. Es gibt ein Webinterface (angelehnt an Tasmota) um die Farbe und Helligkeit zu ändern und Logeinträge (zu Debugzwecken) einzusehen.

UPDATE:
Jetzt der Code für Euch!

Update am 09.02.21:
Jetzt der Code für Platform.IO (deutlich schlanker)

Categories: Arduino