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 mikrocontroller.net (füher gab es die Platte hier zu kaufen *)
- 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 €
Edit:
(* Nach einer Unterlassungserklärung kann man dort "nur" noch die CAD bzw Plotterdateien bekommen)
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:
- eine Adaptive Helligkeitsregelung mittels LDR
- "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.
Update:
Ich habe eine Automatik eingebaut die das EEPROM tested und die passenden Werten speichert
Viel Spaß