Kommen wir zum Herz der ganzen Uhr, dem CODE........
Ich spare mir hier die Beschreibung wie der Arduino angeschlossen werden muss und wie die Bibliotheken einzubinden sind.
Anleitungen dazu gibt es zB auf funduino.de oder sparkfun.com.
Anleitungen dazu gibt es zB auf funduino.de oder sparkfun.com.
Nur die folgende Infos sind speziell wichtig:
- Die aktuelle Arduino IDE kann genutzt werden.
- Die folgende Bibliotheken braucht ihr (stehen aber auch in der ino.Datei):
- DS3232RTC
- Time
- Wire
- FastLED
Nur an wenigen Stellen muss der Code angepasst werden, damit die Uhr "mit DCF oder ohne" / "mit Dimmer Funktion oder ohne" läuft.
Folgende Stellen müssen immer (!) angepasst werden:
---------------------------------------------------------
1) Grundsätzliche Einstellungen
#define DATA_PIN 3 ==> an welchem Pin die Data chain angebunden ist
#define NUM_LEDS 156 ==> wieviele LEDs ihr im Strang habt (wenn ihr meinem Vorschlag gefolgt seid, sind das 156)
--------------------------------------------------------
2) Helligkeitseinstellungen
Wenn ihr die Photodiode zum Dimmen nicht benutzen wollt, dann tragt nur bei
BRIGHTNESS die dauerhafte Helligkeit ein.
Solltet ihr die Photodiode benutzen, dann bitte folgendes eintragen:
maxBrightness ==> Hier die minimale (!) Helligkeit eintragen
minBrightness ==> Hier die maximale (!) Helligkeit eintragen (ich weiss, das ist widersinnig, aber es war einfacher hier zu ändern als im späteren Code [zumindest für mich ...])
AmbientLightPin ==> an welchem Pin ihr die Photodiode angeschlossen habt.
------------------------------------------------------------------------
Wen ihr "nur" die normale Funktion der Uhr mit RTC nutzen wollt, dann ist diese Datei ausreichend:
"Wordclock_basic.
Wenn ihr auch die DCF Funktion nutzen wollt, dann muss diese Date genommen werden:
"Wordclock_DCF".
Wenn ihr die DCF Funktionen und die 5 Minuten Farbe zu jeder vollen Stunde wollt, dann nehmt ihr diese Datei "Wordclock_DCF_farbe".
(Diese Datei funktioniert warum auch immer, nicht mehr. Der Einsprungort im Programm für den Farbwechsel funktioniert nicht mehr...)
Wenn ihr die DCF Funktionen und die 5 Minuten Farbe zu jeder vollen Stunde wollt, dann nehmt ihr diese Datei "Wordclock_DCF_farbe_neuverteilt". Hier ist jetzt zu jeder vollen Stunden zwar auch Farbe, aber immer nur eine Variante pro Stunde.
Wenn ihr die DCF Funktionen und die 5 Minuten Farbe zu jeder vollen Stunde wollt, dann nehmt ihr diese Datei "Wordclock_DCF_farbe".
(Diese Datei funktioniert warum auch immer, nicht mehr. Der Einsprungort im Programm für den Farbwechsel funktioniert nicht mehr...)
Wenn ihr die DCF Funktionen und die 5 Minuten Farbe zu jeder vollen Stunde wollt, dann nehmt ihr diese Datei "Wordclock_DCF_farbe_neuverteilt". Hier ist jetzt zu jeder vollen Stunden zwar auch Farbe, aber immer nur eine Variante pro Stunde.
Alle Dateien findet ihr in der Dropbox.
--------------------------------------------------------------------
OK, und wie geht das jetzt praktisch ab?
Ihr solltet auf jeden Fall eine RTC am Arduino anschließen, weil sonst die aktuelle Zeit verloren geht
wenn der Strom weg ist.
Ist die RTC am Arduino und der Arduino mit dem PC verbunden, sollten beide "irgendwo" leuchten um zu demonstrieren, das sie Strom haben (zumindest bei meiner Hardware die ich empfehle).
1) Als erstes müsst ihr die RTC mit der aktuellen Uhrzeit updaten.
Der Sketch der bis vor kurzem noch benutzt werden konnte, ist anscheinend bei einem Update "verschwunden".
Ich empfehle euch jetzt diesen sketch (liegt in der Dropbox).
Hier muss eine Zeile an eurer# Uhrzeit angepasst werden:
Der angepasste Sketch wird auf den Arduino übertragen und damit die Uhrzeit gesetzt.
Danach ...
2) Als nächstes wird der Wordclock Sketch eingespielt. Dieser überschreibt den RTC Sketch wieder, was aber egal ist, weil die Uhrzeit in der RTC erhalten bleibt.
Hallo,
AntwortenLöschenwie genau stellt man jetzt die das aktuelle Datum und die Uhrzeit ein?
Ich hab das jetzt so versucht:
uint8_t Stunde = 20;
uint8_t Minute = 50;
uint8_t WochenTag = 4;
uint8_t Tag = 23;
uint8_t Monat = 11;
boolean DST = false;
jedoch wenn ich dann Saft drauf gebe, wird mir "Es ist Zwölf Uhr" angezeigt.. was mach ich falsch :(
ps. den RTC hab ich noch nicht angeschlossen, liegt es daran?
Grüße
Alex
Hallo Alex,
Löschenja, da erscheint mir eine Lücke in meiner Anleitung zu sein ;)
Zunächst solltest du die RTC anschließen, weil sonst nach jedem Neustart (also einmal ohne Strom) der Arduino bei 12 Uhr wieder anfängt.
Hast du die RTC dran, dann brauchst du aus der Arduino IDE den sketch DS3231serial_Easy, den du unter Datei -> Beispiele->DS3231->Arduino findest (wenn du alle Bibliotheken installiert hast).
In dem sketch DS3231Serial_Easy findest du die Zeile "rtc.setTime" und "rtc.setDate". Dort trägst du die Daten ein, lädst den Sketch hoch und aktualisierst damit die RTC.
Danach wird der Wordclock Sketch eingespielt.
Ich hoffe, das hilft dir, sonst schreib einen weiteren Kommentar. Ich werde die Anleitung dahingehend überarbeiten.
Hallo,
Löschenja jetzt funktioniert alles perfekt, vielen Dank für die Anleitung, meine Madame wird sich mega darüber freuen :)
Hallo,
AntwortenLöschenBis jetzt funktioniert es wunderbar, bis auf das DCF Modul, aber das kriege ich auch noch klein. Meine Frage, ist es ein großer Aufwand statt des blinkens einen Stundengong zu realisieren? Mit einem MP3 Modul vielleicht? Ich habe von der Programmierung leider keine Ahnung.
Gruß Dirk
Hallo Arne,
AntwortenLöschenich bekomme beim hochladen von wordclock_DCF folgende Fehlermeldung mit dem Verweis auf die 3. Zeile aus der jursDCFtime.h Datei:
exit status 1
redefinition of 'struct sTime'
Ich komm hier nicht weiter.
Kannst du mir hier bitte weiterhelfen. Vielen Dank Jens
Hallo Jens, den Fehler habe ich noch nie gesehen.
LöschenKannst du einmal deine Konfiguration schicken?
Hast du das nach meiner Anleitung gebaut?
Welche IDE Version benutzt du?
Hallo Arne, also ich habe die Uhr nach Anleitung von
LöschenDracarys V2 gebaut (läuft einwandfrei), dann habe ich deine mit dem DCF Modul gesehen und habe meine Uhr erweitert. Modul dazugelötet und mit PIN 8 Verbunden.
DEINE verlinkten libraries heruntergeladen und abgelegt. Die Zeit über DS3231_Serial_Easy hochgeladen. Deine Datei: wordclock_DCF.ino angepasst:
- LED Anzahl angepasst
Und da versucht hochzuladen. Und beim kompilieren springt er in die Datei jursDCFtime.h und bringt den fehler.
Wenn ich die jursDCFtime.h einzeln kompiliere kommt der gleiche fehler.
IDE in der V1.6.9 und in der 1.8.5 probiert.
Einzigste Unterschied. Ich habe einen UNO R3 und keinen NANO.
Danke dir. LG Jens
Hallo Arne,
Löschendas Problem hat sich geklärt. Hatte 2 Sketche in einem Ordner liegen. Das war das Problem. Jetzt muss ich mal schauen ober die Zeit vom DCF Modul holt. Das ist noch nicht der Fall.
Danke erstmal und schönen Abend noch
Hallo Arne,
AntwortenLöschenich habe zwei Probleme, bei mir wird dauerhaft der erste Streifen komplett angesteuert - d.h. bei den Wörtern "Es ist" sieht man auch den Buchstaben K und A dazwischen. Des weitern leuchtet bei mir die drei Buchstaben "Uhr" nicht dauerhaft auf. Die LED Streifen funktionieren alle. Ich habe sie mit einem Test Programm getestet.
Mit freunlichen Grüßen
Lukas
Hallo Lukas,
LöschenDie Buchstaben zwischen "ES IST" musst du von hinten lichtdicht abkleben. Das ist die einfachste Art-
Wann leuchtet "Uhr" denn?
Hast du das Testprogramm auch laufen lassen, wenn sie fertig verkabelt in der Uhr kleben?
Viele Grüße, Arne
Okay vielen Dank,
LöschenVon "Uhr" leuchtet meistens nur der Buchstabe R. Ja, ich habe das Testprogramm auch schon aufgespielt, als alles schon festgeklebt in der Uhr war. Spannung an dem Streifen ist auch genug.
Viele Grüße
Lukas
Oder leuchtet Uhr nur bei der vollen Stunde?
LöschenJaaa!
Löschen"Uhr" leuchtet nur wenn es heißt "ES IST EIN UHR" (also nur(!) zur vollen Stunde), weil man sonst ja sagt, "ES IST ZEHN NACH VIER" (als Beispiel).
Super, dann funktioniert ja alles wie es soll, oder?
Viele Grüße, Arne
Ja, dankeschön. Der andere Fehler war, dass ich die falschen LED Nr. im Code definiert habe. 1-2 waren zu viel an einer Stelle. Super vielen Dank auf jeden Fall. Auch für die optimierte Anleitung.
LöschenFreundliche Grüße und schönen Abend noch.
Dieser Kommentar wurde vom Autor entfernt.
LöschenHallo Arne, vielen Dank für die tolle Anleitung, leider habe ich das Problem, dass die LED die nicht benutzt werden sollen immer in allen möglichen Farben blinken. Ansonsten funktioniert alles, ich benutze die LED von BTF. Dann möchte ich die Uhr etwas größer bauen es sollen 329 LED werden geht das?
AntwortenLöschenLG Thorsten
Hallo Thorsten,
Löschenwenn die LEDs wie wild blinken, ist meiner Erfahrung immer etwas mit der Verbindung im Argen. Prüf mal die LED chain, ob alles fest ist.
- Blinken wirklich alle LEDs (dann wahrscheinlich ein Problem ganz vorne in der Leitung) oder nur ab einem bestimmten Strang (dann ist da die Verbindung schlecht).
- Hast du mal einen anderen sketch (zb DemoReel von FastLED) ausprobiert? Wie siehts da aus?
- Kannst du einen zweiten Arduino nehmen und den ausprobieren?
Mit mehr LEDs bekommst du probleme mit dem nano weil der nicht genug Speicher hat (zumindest wie das Programm gerade aufgebaut ist). Wenn es unbedingt so viele LEDs sein müssen, dann kauf dir gleich ein Arduino Mega.
Schreib bitte, wenn und wie du das Problem gelöst hast.
Viel Glück, Arne
Hallo Arne,
Löschendas blinken ist jetzt weg, es lag an der Masse-Leitung. Vom Andoino muss GND mit V- des Netzteils verbunden sein (Das war bei meinem Setup nicht so).
LG Thorsten
Ich benutze den Mega, da funktionieren alle 330 LED. Habe die Uhr jetzt fertig vielen Dank nochmal.
Hallo Arne, TOP Inhalt erstmal an der Stelle. Was ich mich aber ist, kann kann diverse LED gezielt ausblenden? Z.B. den Buchstaben zwischen "ES" und "IST" mit "int EsIst[] = {0, 1, 3, 4, 5};"? In dem Fall durch auslassen der zweiten LED.
AntwortenLöschenGruß Benny
Hallo Benny, klar würde das so gehen wie du das beschreibst. Nur, würden die LEDs neben der ausgeschalteten weiter auch das was du Dunkel haben willst beleuchten, außer du bastelst eine weitere Lichttrennung. Der Einfachheit halber sollte das vermieden werden und ein gemeinsamer Raum für "Es Ist" da sein.
AntwortenLöschenRichtig einfach wäre es, wenn für jeden Buchstaben nur eine LED da sein würde. Ich bastel gerade an der Variante (wird aber dan auch kleiner...).
Viele Grüße, Arne
Guten Morgen Arne. Genau das ist das Ziel, jeder Buchstabe wird von einer LED beleuchtet und hat seinen eigenen Raum. Leider funktioniert das nicht wenn ich "int EsIst[] = {0, 1, 3, 4, 5};" nehme, in dem Fall leuchten tatsächlich die ersten 6 LEDs, anstatt 5.
LöschenGruß Benny
Hallo Benny,
Löschendas geht tatsächlich auch nicht so. Wenn du eine Nummer löscht, dann bleibt eine LED am Ende des Stranges dunkel (warum auch immer..). Was du also nur machen kannst, ist, von "ES IST" das "ES" und das "IST" abzutrennen und als eigenständige Worte zu nehmen.
Oder natürlich, alle Buchstaben einzeln zu trennen (hinter der Front) und dann einzeln anzusteuern. Aber das ist natürlich ein Höllenaufwand und bei der Größe ist eine LED evtl auch zu dunkel.
Viele Grüße, Arne
Hallo Arne,
AntwortenLöschenerstamal vielen Dank für deine Anleitung, ist meiner Meinung nach die Beste hier im Netz.
Aber eine Frage hätte ich doch,
Der Link zur Bibliothek Wire fehlt. Ist das ein Fehler oder braucht man diese nicht?
Soweit ich weiss wird "Wire.h" als Standard bei der Installation der Arduino IDE mitinstalliert. Da brauch man kein weitere Library.
LöschenViele Grüße, Arne
Hallo Arne,
AntwortenLöschenkann ich den Code Wordclock_DCF_farbe auch ohne angeschlossen DCF Empfänger nutzen?
Übrigens habe ich soeben ein Wordclockface mit einer eigenen Stencil Schrift in CAD erstellt. Kann es dir gerne schicken falls du Interesse hast=)
Danke vielmals.
Hallo Janosch,
LöschenDas würde vermutlich gehen, würde ich aber abraten, weil die Winter-/Sommerzeit nicht mehr einberechnet wird. Bei dem DCF Sketch vertraue ich darauf, das die Zeit über den Empfänger kommt.
Schick mir sehr gerne die Front! arnelange@yahoo.de
Hallo Arne eine kleine Frage hätte ich noch,
AntwortenLöschenzum Teil mit dem Einstellen der Uhrzeit.
Ich finde unter Datei_Beispiele nur DS3232RTC und nicht DS3231Serial_Easy sowie die Zeile "rtc.setTime" habe alle drei Bibliotheken installiert.
Vielen vielen Dank.
Hallo Janosch,
Löschendanke für den Hinweis. Ich dachte das wäre nur bei mir, das der sketch irgendwie "rausgeflogen" ist.
Ich benutze inzwischen einen anderen sketch dafür; schau mal hier: https://arnes-elektronik.blogspot.com/2018/01/runde-led-uhr-aus-60iger-led-ring.html
Damit müsste das gehen.
Viel Erfolg, Arne
Hallo Arne.
AntwortenLöschenIch habe die Platinen erhalten. Echt top. Großes Lob an dich.
Bei der installation hatte ich kurzfristig plus und minus vertauscht. Daraufhin ist aus dem Arduino eine kleine Rauchwolke aufgestiegen. Den habe ich ausgetauscht.
Nun habe ich das Problem dass die Wordclock die Uhrzeit nicht angezeigt. (Nur irgendein wirr war).
Ich habe folgende Fehlersuche aufgestellt
-Mit einem Externen Treiber die LED Kette getestet
-Mit Prüfgerät Schaltkreis und Lötstellen getestet
-Wiederstände Farbringe geprüft
-Alte und neue Arduino Software verwendet.
Denkst du auch das die zwei Uhr Module verbrannt sind?
Denn wenn der eine nicht funktioniert sollte dann müsste ja der andere das Signal übergeben.
Eine LED auf dem RTC3231 leuchtet jedenfalls.
Darf ich dir meine restlichen Einzelteile per Post
zukommen lassen? Du könntest Sie ja hier auf deinem Blog
vertreiben für bischen Geld.
Gruss
Hier ein kleines update
Löschen-Heute habe ich einen neuen RTC erhalten. Gleichzeitig habe ich das
Funkmodul ausgebaut und eben den neuen RTC eingelötet.
-Basic Software aufgespielt
-Zusätzlich habe ich Fotodiode in der Software deaktiviert
-Die Arduino Software als Admin gestartet
-Andere Com Ports getestet
Da ich jetzt alles mögliche getestet habe glaube ich dass
es an dem Code in Kombination mit dem nicht originalen
Arduino zusammenhängt
Hallo Thorsten,
Löschenhast du deinen Aufbau schon mal auf einem Breadboard ausprobiert?
- erst den Arduino nehmen und mit dem sketch testen, sollte auf jeden Fall auch allein laufen
- Auf dem Breadboard hast du die Chance jeden Aufbau zu testen ohne jedes Mal löten zu müssen.
Ich benutze nur die nicht originalen Arduinos und die haben immer funktioniert...
Viel Erfolg, Arne
Hallo Thorstenn
Löschenentschuldige meine verspätete Antwort...
"Nun habe ich das Problem dass die Wordclock die Uhrzeit nicht angezeigt. (Nur irgendein wirr war)."
--> Nach meiner Erfahrung ist wenn die LEDs wild leuchten ein Problem mit der Verkabelung, alles bitte nochmal prüfen...
"Ich habe folgende Fehlersuche aufgestellt
-Mit einem Externen Treiber die LED Kette getestet"
--> Teste deinen Aufbau mit dem Arduino und einem FastLED Testsketch (zb DemoReel). Das sollte / muss funktionieren
"-Mit Prüfgerät Schaltkreis und Lötstellen getestet"
--> Auch im kompletten Verbund getestet? Ich glaube eher, das es ein Verkabelungsproblem ist
"-Wiederstände Farbringe geprüft"
--> okay, kann man zT aber auch schlecht sehen, im Zweifelsfall austauschen. Bitte benutz ein Breadboard
"-Alte und neue Arduino Software verwendet. "
--> Macht keinen Unterschied in der LED Ansteuerung, wenn der Sketch in der Software ohne Fehler durchläuft
"Denkst du auch das die zwei Uhr Module verbrannt sind?"
--> nein, denke ich nicht. Siehe oben...
"Denn wenn der eine nicht funktioniert sollte dann müsste ja der andere das Signal übergeben. "
--> Das verstehe ich gerade nicht ;)
"Eine LED auf dem RTC3231 leuchtet jedenfalls."
--> Die LED auf dem RTC leuchtet, wenn das Ding Strom bekommt, das sagt noch nichts über die Verkabelung an den Arduino aus.
Ich hoffe, du bekommst das hin, sonst schreib mir eine email und wir versuchen das weiter im Detail!
Viel Erfolg, Arne
Hallo Arne,
AntwortenLöschenwollte mich nur nochmal für die Mühe bedanken. Meine Uhr läuft mittlerweile seit über einem Jahr ohne Probleme. Jetzt fängt langsam wieder die gemütliche Bastelzeit an und ich werde mich nochmal an der Uhr mit deinen Update probieren (und etwas größer).
Schönen Tag noch, Lukas.
Hallo Lukas,
Löschenvielen Dank für die Blumen! Wie schon erwähnt, werde ich eine Wordclock 2 auflegen, vielleicht führt das dazu das du noch eine bauen willst ;)
Danke, Arne
Hallo,
AntwortenLöschenich habe die Grundlage des Code jetzt auf eine LED pro Buchstabe verändert und somit passt jetzt jedes Layout bzw. jede Frontvorlage. Der DCF-Empfänger läuft erstaunlich gut!
Bei bedarf bitte melden.
Hallo, habe das gleiche Projekt angefangen mit der Wordclock 2.0. Schau mal, ob das bei dir so ähnlich funktioniert. Bin über Anregungen sehr froh! Wie hast du die Abtrennung der einzelnen LEDs realisiert?
LöschenViele Grüße, Arne
Hallo Arne
AntwortenLöschenIch bin gerade dabei eine solche Uhr zu bauen. Jedoch kann ich das Program auf der Dropbox nicht benutzen (bzw. ich kann sie nicht öffnen).
Könnte ich das Program auch ausserhalb von Dropbox bekommen?
Gruss Micha
Hallo Micha,
Löschennaja, dafür habe ich ja die Dropbox ;)
Was genau funktoniert denn nicht? Im Impressum steht meine email, schreib mir, dann kann ich dir den sketch zuschicken.
Viele Grüße, Arne
Hallo Arne,
AntwortenLöschenich habe das Problem, dass ich zwar bei allen LEDs Strom habe (mit dem Phasenprüfer getestet) aber dennoch leuchtet bei mir nicht ein müdes Lämpchen. Ich habe die Verkabelung mehrmals geprüft. Woran könnte es sonst noch liegen?
Grüße Olivia
Hallo Olivia, dann ist das Problem die datensteuerung.
Löschen- Ist der Pin im sketch der gleiche den du auf dem Arduino benutzt?
- Wechsel testweise den Pin im sketch und auf dem Board. eventuell ist die Lötstelle auf dem Board nicht richtig?
- Schau dir das Datenkabel und die Verlötung an allen (besonders am ersten) LED strips an.
- Einen ganz anderen Arduino nehmen. Evtl hat der eine eine Macke-
Hallo Arne,
AntwortenLöschenich habe meine Uhr soweit fertig, habe Leiterbahnen in eine Lochplatte gelötet und alles läuft super, erstmal. Leider scheint es, dass die Uhr "stehen bleibt" nach circa 2-3 Stunden.
Meine Vermutung sind andere Bibliotheken der Time, RTC, FASTLED oder der DFC mit seiner Synchronisierung auslöst. Hast du den DFC angepasst, da lag ein KERKO oder so bei?!?
Hast Du vielleicht eine andere Idee, woran das liegen könnte?
Ein tolles Projekt und meine Lasergeschnittene, noch nicht rostende, Stahlfront sieht sehr gut daran aus.
Vielen lieben Dank!
Sebastian
Habe die Software ohne DFC aufgespielt und es läuft. Woran es am DFC liegt, keine Idee...
LöschenIch habe die Uhr vor 2 Jahren mit Hilfe dieser Seite gebaut und alles lief tadellos im Dauerbetrieb, sogar DFC und der Photosensor habe ich hinbekommen. Nur seit einiger Zeit scheinen die LEDs nicht mehr zuverlässig zu laufen. Einzelne fallen aus oder können nicht mehr richtig angesteuert werden. Andere zeigen falsche Farben oder leuchten, wenn sie es eigentlich nicht sollten. Die LEDs scheinen somit einem Alterungsprozess unterworfen zu sein. Angeblich soll es ein Wärmeproblem sein, wenn man den Streifen - wie ich - auf Sperrholz klebt. Alu als Unterlage und zur Kühlung soll die Lebensdauer wesentlich verlängern. Hat jemand, der auch eine Uhr nach dieser Anleitung gebaut hat, ähnliche Erfahrungen gemacht? Ich fürchte ich muss die LEDs alle ersetzen.
AntwortenLöschenHallo Mathias,
Löschennach meiner Erfahrung ist es hauptsächlich die Güte der LEDs die den Unterschied macht. Meine allererste Wordclock läuft ohne Probleme.
Als ich dann bei einer anderen die Marke der LEDs geändert habe, gabs nur Probleme. Ich empfehle als Marke BFT .
Arne
Gibt es eine Möglichkeit die Matrix um 90 Grad zu drehen? Die Led-Streifen verlaufen bei mir anderes. Das Ansteuern der LEDs über die Array klappt so nicht, es werden immer die nachfolgen LEDs angesprochen, also 109, 110 etc., egal welche Zahl ich als zweites eingebe.
AntwortenLöschen