Und Noch Eine Wordclock

25,953

40

33

Posted

Introduction: Und Noch Eine Wordclock

Hallo Leute,

ich will hier heute mal eine erneute Kopie einer Wordclock vorstellen. Mir hatte diese Uhr schon beim aller ersten Anblick das Nerdige "Will-Ich-Haben"-Gefühl geweckt.

Das schöne an dieser Uhr ist sie stellt die Zeit in Worten dar also "Es ist viertel nach sieben".

Diese Uhr ist immer ein netter Blickfang im Wohnzimmer und führt immer wieder zu erstaunten Gesichtern bei den Gästen und man kann diese Uhr "richtig" lesen.

So habe ich vor zwei Jahren miene erste Wordclock gebaut mit einem leider nur mäßig zufriedenstellendem Ergebnis. Die LEDs waren einfach zu dunkel durch das Multiplexing das mit Hilfe von zwei Multiplextreibern (MAX7221) geschah. Also musste eine neue Idee her.

Da die WS2812B LEDs immer billiger wurden, war dadurch dieses neue Projekt geboren.

Die Uhr sollte nachher "Berührungslos" eingestellt werden können deswegen sind hinter der Frontplatte Reedkontakte die man mit Hilfe eines Magneten ausgelöst werden und dadurch kann die Uhr gestellt werden bzw der Modus geändert werden.

Da ich aus der Automatisierungsbranche komme bin auch ein Fan des keep it clear as possible. Deswegen habe ich mit auch zu einem minimalistischen Bedienkonzept entschieden.

Alles wird auf einem Arduino Nano (wahlweise auch einem Pro Mini und ein ISP -Programmer) mit der Arduino IDE realisiert.

Die Acrylplatte auf den Fotos sieht im Moment noch nicht so schön aus, da sich noch die Schutzfolie auf der Oberseite befindet. Diese wird erst entfernt wenn die Uhr sich vor Ort befindet um die Front zu schützen.

Step 1: Materialliste

  • 1*Arduino Nano oder kompatibel
  • 1*DS3231 RTC Modul zum beibehalten der Zeit
  • 1* Acryl Wordclock Frontplatte von Word Clock Artikel
  • 114* WS2812B auf 10mm-Platine
  • 4* Reed Kontakte zum Stellen bzw. Modus ändern der Uhr
  • 1* MDF Zwischenplatte nach verändert bzw. angepassten Maße laut dem o.g. Artikel
  • div Lochstreifen
  • geregeltes 5V Netzteil mit 3A

Die Gesamtkosten für die Uhr belaufen sich auf 70-80€

Step 2: Grundplatte

Die Grundplatte wurde gefräst nach Anpassungen der Maße von dem "originalen" Vorgaben plus 4 Taschen zum verstauen der Elektronik und zusätzlichen Kanälen zum verkabeln. Auf der Frontseite befindet sich noch ein zusätzlicher Kanal zu verstauen der Reedkontakte

An den Rückseite sind Aussparungen zum Einsetzten der LEDs. Dort werden alle 114 LEDs platziert und dann mit etwas Uhu fixiert. Danach kommt die Fleißarbeit alle LEDs müssen verdrahtet werden nach dem Prinzip. Erste Reihe von Links nach Rechts dann weiter zweite Reihe von Rechts nach Links durch alle 10 Reihen und am Ende werden die 4 Ecken verkabelt. Die Stromversorgung der Reihen werden an jeder Seite "Anfang" und "Ende" aller Reihen Parallel geschaltet da pro LED bis 60mA fließen können d.h. 660mA für jeder Reihe.

Der absolut maximale Strom wäre rein rechnerisch 6,8A bei allen LEDs an und Volle Werte bei R,G,B. Im Normalbetrieb kommt man nicht über 2-2,1A. Selbst ein Feuereffekt (Fire2012 aus der Examples der Lib) kommt man auf 3,5A-4A

Step 3: Zusamenbauen Und Programmieren

Nach dem zusammenbauen kommt das Programmieren.

Die Library die hierfür Notwendig findet man hier: Klick

Die anderen Libraries sind Bestandteil der Arduino IDE also braucht man nix zusätzliches

Die Uhr kann wie auf dem ersten Bild Links in die verschiedenen Modi geschaltet werden nach folgendem Ablauf

  • Mode 1: Stunden stellen (die linken Eck-LEDs leuchten)
  • Mode 2: Minuten stellen (die rechten Eck-LEDs leuchten)
  • Mode 3: Farbe einstellen Farbe ROT
  • Mode 4: Farbe einstellen Farbe GRÜN
  • Mode 5: Farbe einstellen Farbe BLAU

Die Farbe kann selbst bestimmt werden bei dem Farbe einstellen.

In dem Farbmodus werden die obersten beiden Reihen genutzt um den aktuelle Höhe des einstellbaren Farbwertes einzustellen. Es sind pro Farbe (Rot,Grün,Blau) 22 Stufen die man einstellen kann. Die unteren beiden Reihen zeigen das Ergebnis der Summe der drei Farben, also das Endgültige Ergebnis mit der die Wörter nachher angezeigt werden. Die Werte sind im EEPROM gespeichert also die Farbe bleibt nach Stromausfall etc. erhalten genauso wie die Uhrzeit die im DS3231 gespeichert wird und weiter läuft.

Noch offen:

  1. eine Adaptive Helligkeitsregelung mittels LDR
  2. "Wlan" Anschluss via ESP8266 mit der NTP Firmware zur echten Funk Uhr

Bei Fragen ich bin auch unter dem Usernamen im arduino.cc Forum zu finden.

! Achtung bei der ersten Inbetriebnahme sind im EEPROM die Werte 0 für die drei Farben gespeichert was zu einer "dunklen" Uhr führt.

Vor dem ersten Laden einfach einen leeren Sketch und in die ersten drei Adressen Werte 22 schreiben und zwar so:

#include <EEPROM.h> 
void setup() {
    EEPROM.write(0, 22);
    EEPROM.write(1, 22);
    EEPROM.write(2, 22);
    }
 
 void loop(){
 }

Diesen Sketch einmal Hochladen. Dann stehen die Werte im EEPROM. Jetzt kann der Uhrensketch hochgeladen werden.

Viel Spaß

Share

Recommendations

  • Microcontroller Contest

    Microcontroller Contest
  • Spotless Contest

    Spotless Contest
  • Science of Cooking

    Science of Cooking
user

We have a be nice policy.
Please be positive and constructive.

Tips

3 Questions

0

Hallöle ! Danke Zunächst für die tolle Anleitung. Meine Uhr bleibt irgendwie immer bei ES IST stehen - sonst wird nichts weiter angezeigt. Stellen lassen funktioniert, Farben ändern auch aber nach dem Stellen steht wieder nur ES IST da. Komisch - Ideen ? Dankeschön schonmal !

Es sieht so aus wenn die RTC(Real Time Clock) nicht richtig läuft. Evt mal mit Beispielen aus dem Netz die Uhr mal testen, oder mit dem I2C Scanner ob die Adresse richtig ist. Wenn nicht läuft dann mal die Verdrathung prüfen. Die Daten Kommunikation zwischen Arduino und WS2812B scheint zu laufen wenn das ganze Einstell Prozedere funktioniert.

Hallo Michael,
Ich habe eine Uhr bereits für meine Eltern gebaut. Jedoch war das ein Fertigern Bausatz, welcher sehr teuer war. Nun bin ich auf dein instructable gestoßen. Die Teile kann ich alle besorgen. Jedoch fehlt mir der Schaltplan zum zusammenbau. Kannst du helfen ? Grüße jan

Oh hatte es übersehen :-)

Hallo
Die wortuhr läuft soweit aber es werden nur die ersten 5 LED Reihen angesteuert.
Hiiiiiiiiiiiiiiiiiiiiilfe
Gruß Micha

16 Comments

Dies deutet auf einen Unterbrechung der Kommunikation zwischen den Pixel an.
Ist die 6te Reiche evtl falsch rum? Wackelkontakt/Unterbrechung zwischen der Din Dout an der neuralgischen Stelle?
Mal ein Example aus der Fastled Librarie geladen mit angepasster "LED-Anzahl"?
Hast du die 5V an mehreren Stellen eingespeist?
Ist Netzteil stark genug?

Der Code als solches funktioniert da ich schon mehrere Leute habe die diesen unverändert laufen lassen haben incl. meiner vier Uhren.
Also mal ein bisschen suchen ;-) Kleine Rückmeldung wäre nett?

Hallo Dani
Die Uhr läuft jetzt einwandfrei. Alles Super.
Danke nochmal.
Gruß Micha

Hein Blöd

Hallo

Ich bekomme einfach nicht die EEPROM werte icht geändert.

Er zeigt mir immer

Arduino: 1.6.5 (Windows 8.1), Platine: "Arduino/Genuino Uno"

LED22:2: error: expected unqualified-id before '<' token
LED22:8: error: expected unqualified-id before '<' token
expected unqualified-id before '<' token

Wäre nett wenn ihr einen Anfänger helfen könntet.

Hallo MIchael,
nach dem letzten Edit hatte sich ein eingeschlichen om Code. Bitte löschen, schaue mal jetzt im Code.
Gruß
DerDani

Bekomme leider auch den Selben Fehler.
Muss vor:
#include

void setup() {
EEPROM.write(0, 22);
EEPROM.write(1, 22);
EEPROM.write(2, 22);
}

void loop(){
}
...
oder danach noch etwas oder ist es richtig wenn man das in einen komplett leeren Sektch einfügt?

Ich habe nochmals alle Steuerzeichen entfernt Irgendwie sind die dort reingekommen.
Gruß
DerDani

Danke, funktioniert jetzt perfekt :)

Guten Morgen,

hab mal eine Frage. Im C_RTCFunktion-Sketch steht RTC Funktionen zur Steuerung der RTC DS1308", aber in Dokumentation RTC DS3231. Ist der Sketch für beide RTCs identisch?

Gruß Benny

Servus,

kann man die (CNC- /DXF-) Datei für die Grundplatte irgendwo als Download bekommen?

Wäre sehr nett! ;-)

Hallo,

habe das Problem gefunden. Der liebe Arduino hatte ne kalte Lötstelle in der Stiftleiste für die Datenleitung. Einmal ausgelötet und dann sauber wieder rein und schon funktionierts wie es soll.

Danke nochmal für eure Tipps.