Interessantes Direkt

Samstag, 12. August 2017

Wordclock - 5 - Reste und Ausblick

Wordclock - 5 - Reste und Ausblick


Folgendes steht auf der Liste was ich gerne noch einbauen möchte:
  • Einen Taster, der auf Kopfdruck die Farbe wechselt
    • Das geht bestimmt... Bisher war ich nicht erfolgreich
  • Alle halbe Stunde (oder so) einmal ein schöner Farbverlauf über alle LEDs.
    • erledigt ;) siehe hier
  • Umstellung des Codes auf die neueste Arduino IDE
    • 28.10.2017: Es scheint am Aufruf der RTC Funktion zu liegen. Mal weiter schauen...
    • 11.11.2017: Juhu, es erscheint doch nur eine kleine Funktion zu sein, die die aktuelle IDE verhindert, ich teste es, aber wer will: bitte ersetzt die Zeile "#include <Time.h>" durch "#include <TimeLib.h>". Das  wars...
Bin dran!

Freitag, 11. August 2017

Wordclock - 3 - Die Elektronik


In diesem Abschnitt wollen wir die Elektronik zusammenschrauben / bzw -löten. 
Die Platine könnte dann so in etwa aussehen:

Wie ihr seht habe ich die einzelnen roten (5V) und schwarzen (GND) Kabel separat in Wago Klemmen sortiert. Damit behält man schön die Übersicht.

Was hat die Uhr also als Features?
- Uhrzeit über Langwellen Zeitempfänger (DCF)
- Uhrzeit wird gehalten über eine RTC ( Real-Time-Clock) wenn der DCF Empfang schwierig ist
- Abhängig von der Umgebungshelligkeit wird die Leuchtkraft der LEDs eingestellt

Aber was ist jetzt was auf der Platine? Hier mal etwas genauer:

Es gibt inzwischen auch eine eigene Platine für die Wordclock. Schaut mal hier.

Und für den ganz genauen Überblick hier der Anschlussplan:

Und der Plan als Fritzing file hier.

Man braucht die Photodiode nicht und man braucht auch den DCF Empfänger nicht. Die Uhr läuft auch dann. Aber ich empfehle alles einzubauen (natürlich 😉).

-------------------------------------------------------------

Arduino nano

Man kann sich den Arduino fertig verlötet bestellen (oder halt nicht). Wenn man Anfänger ist wie ich, dann bekommt man einige Probleme weil manchmal Lötstellen nicht ganz richtig sind. Um den Fehler beim Arduino auszuschließen, empfehle ich euch den fertig verlöteten (siehe unten).


Um die Schaltungen später auszuprobieren, solltet ihr ein Breadboard benutzen (siehe unten).

Meine Platine ist eine "Breadboard Platine" die ich über ebay gezogen habe. Sehr praktisch...


------------------------------------------------------------------

RTC

Wie im Anschlußbild zu sehen wird die RTC an 5V und GND angeschlossen.
SDA an Arduino A4
SCL an Arduino A5

Die RTC muss / sollte auf eine bestimmte Weise "vorbereitet" werden. Es ist zwar nicht ganz klar, ob es eine offizielle Bestätigung gibt, aber aus diversen Foreneinträgen scheint sich folgendes herauszukristallisieren:

Den Widerstand 201 (das obere rechte rote Quadrat) sollte man herauslöten, um möglichen Problemen mit einer Batterie zuvorzukommen.
Das ist einfacher als es klingt: Mit dem Lötkolben erhitzt man rechts und links vom Widerstand und drückt den Widerstand mit der Spitze des Lötkolbens einfach raus. Wirklich einfach-

Als Batterie nimmt man dann eine CR2032.



-----------------------------------------------------------------

LED Data Chain

Die Datachain beginnt ja bei den Worten "ES IST" und wird über einen 470 oder 512 Ohm Widerstand (zum Schutz der ersten LED vor Spannungsspitzen) an D3 angeschlossen.

----------------------------------------------------------------

DCF Empfänger

Der DCF Empfänger ist eine zickige Diva, das gleich vorweg. Der Empfang und die Berechnung sind immer etwas hakelig. Wenn der Anschluss nicht top ist, dann gibts zuviel Probleme, die den Empfang stören werden!
Und ja, der Empfang des DCF Zeitsignals ist mit "laufenden" LEDs möglich.

Das DCF Modul ist von elv (DCF-2, Art. Nr. 91610).
Der verbaute Widerstand ist ein 10K Ohm Widerstand.

Entscheidend hier ist die Programmierung, aber dazu komme ich später.

------------------------------------------------------------------

Photodiode

Ich denke auch hier ist der Blick auf den Anschlussplan klarer, als wenn ich das beschreibe.
Nur soviel, bei mir hat sich ein 10K Ohm Widerstand bewährt...

-----------------------------------------------------------------

Wago Klemmen und Verbindung nach außen

Wie schon erwähnt habe ich Wago Klemmen eingesetzt, um die Kabel zu verbinden.
Um eine schöne Stromzufuhr zu bekommen, habe ich ein Netzteil über eine Buchse mit Schraubklemmen an die Kabel in der Uhr angeschlossen. Das funktioniert sehr gut!

Und warum habe ich jeden LED Strip separat angeschlossen? Es ist möglich, 5V und GND nur an ein oder 2 Stellen in die Data chain einzuspeisen und zwischendurch 5V und GND einfach von Strip zu Strip weiter zu verteilen.
Ich finde es allerdings einfacher, 5V und GND einzeln anzubinden, weil die Kabel recht unhandlich und unpraktisch von einem Fach in das andere verteilt werden müssen. Das finde ich schon mit der Data chain unpraktisch...

-----------------------------------------------------------------

Einen Kondensator einbauen

Nach der Empfehlung des Neopixel Uberguide, sollte ein Kondensator direkt an der Strombuchse eingebaut werden; siehe unten im Bild.
Dazu wird ein 1000µF 6,3V Kondensator eingebaut.

leds_cap.jpg

Dabei wird der -"Pol" (Beinchen) des Kondesators an GND und der andere an Vin angeschlossen.
Es funktioniert sicher auch ohne, aber sicher ist sicher ... ;)
---------------------------------------------------------------


Der 4- Teil der Anleitung ist hier.

Dinge die man braucht:

Die Links sind Amazon Affiliate Links, mit denen ich einen kleinen Prozentsatz als Provison von Amazon erhalte. Dadurch verteuert sich für euch nichts. Danke für eure Unterstützung!

RTC
Arduino nano
Breadboard
Photodiode
Wago Klemmen
Netzteil
Buchse mit Schraubklemme
CR2032

Kondensator 1000µF

Wordclock - 4 - Der Code

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.
Nur die folgende Infos sind speziell wichtig:
  1. Die aktuelle Arduino IDE kann genutzt werden.
  2. Die folgende Bibliotheken braucht ihr (stehen aber auch in der ino.Datei):
    1. DS3232RTC
    2. Time
    3. Wire
    4. 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.

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.


Dienstag, 8. August 2017

Wordclock - 2 - Die Einteilung



Wir haben also den vorderen Bereich in dem später die LEDs sein werden. Damit die LEDs aber nur das Wort beleuchten, das angezeigt werden soll, muss eine Kompartimentierung erfolgen.

Das ist einigermaßen lästig, und es muss genau gearbeitet werden, damit eine saubere Lichttrennung erfolgt.

So soll es später aussehen:

Wie ihr sehr, habe ich Unterteilungen aus Karton gebaut. In jedes Abteil kommt dann je ein LED Strang. Jedes Abteil hat außerdem noch ein Loch in den hinteren Bereich, durch das der Strom geführt werden kann (und beim ersten Wort auch das Datenkabel).
Die Abtrennungen sollten genauso hoch werden wie das umgebende Gehäuse, sonst sitzt später der Karton mit den ausgeschnittenen Buchstaben und das Plexi schlecht.

Und wie sind jetzt die LEDs verteilt? Dazu habe ich mal eine Worddatei erstellt, in der ich aufgelistet habe, was ich für sinnvoll halte. Ich komme insgesamt auf 156 LEDs. Schaut mal hier, ob ihr damit was anfangen könnt (Datei heisst "Verteilung der LEDs"...

Prinzipiell bilden alle LED Stränge einen großen gemeinsamen Strang.
Bei den WS2812B LEDs gibt es für jede LED (oder für einen Strang gemeinsam). Nehmt einen mindestens 3m LED Strang mit 60 LEDs pro Meter (siehe unten im Link).

  •  5V
  • Ground (GND)
  • Data in (Di)
  • Data out (Do)
Zur Verdeutlichung wie die Datenleitung angeschlossen wird, hier ein kurzes Bild:

---------------------------------------------------

Verkabeln der LEDs

jetzt wirds etwas kniffelig und es kommt die eigentliche Fleißarbeit. Jeder LED Strang braucht einen 5V Anschluß und einen GND Anschluß.

Das bedeutet, es muss gelötet werden. Und es müssen jede Menge Kabel vorbereitet werden.

Nehmt bloß biegsame Kabel (ich schlage unten welche vor), weil es sonst lästig wird. Auch lassen die sich besser verzinnen, und das solltet ihr auf jeden Fall tun, bei jedem Kabel, welches ihr verlöten wollt.

Bei der Menge an Kabel die verzinnt werden wollen, ist ein sog. Lötbad eine Empfehlung. In diesem Lötbad wird Stangelötzinn zum Schmelzen gebracht. Nachdem man die Litze erst in ein sog. Flußmittel getaucht hat, kommt es kurz in das flüssige Zinn im Lötbad und ist sofort verzint. Das ist eine echte Arbeitserleichterung!

Ich empfehle euch für die 5V, GND und Datenleitung jeweils eine andere Farbe zu nehmen. Ihr erleichtert euch die spätere Arbeit und es ist immer klar, welches Kabel wohin muss.

Hier ist einiges zur Info zum Stromverbrauch von WS2812B LEDs.

Ergänzung: Für die unteren 4 Minuten Punkte passen sehrt gut 4 LEDs eines 30LED/Meter Stranges. Die haben den (fast) richtigen Abstand und man kann sich das mühsame Verkabeln sparen...

Hier gehts zum 3. Teil der Anleitung.



Dinge die man braucht:
Die Links sind Amazon Affiliate Links, mit denen ich einen kleinen Prozentsatz als Provison von Amazon erhalte. Dadurch verteuert sich für euch nichts. Danke für eure Unterstützung!



Lötkolben (ein einfacher reicht)
Litzen (Kabel)
WS2812B LEDS
Flußmittel




Lötbad


Stangenlötzinn

Lötzinn (bleifrei)

Wordclock - 1 - Der Anfang

Ziel der Anleitung soll der Bau einer Wordclock sein.



Diese Anleitung fußt auf der genialen Anleitung von dracarys. Darauf aufbauend habe ich einige kleine und große Punkte geändert. Die größte Änderung ist der Einbau eines Zeitempfängers (DCF) von elv.

Aber genug der Vorrede, jetzt gehts los...

Die Uhr wird 38,4 cm im Quadrat groß. Die Maße kommen von dem Zuschnitt des Fotokartons. natürlich kann man die Maße alle anpassen, aber so funktionierts ganz gut ;)

Das Gehäuse besteht aus 8mm MDF mit den folgenden Zuschnitten:

2 mal: 6 cm x 38,4 cm
2 mal: 6 cm x 36,8 cm
1 mal: 36,8 cm x 36,8 cm


So soll es aufgebaut sein:

Ich empfehle euch den Zuschnitt bei expresszuschnitt.de, dort geht es schnell und bisher habe ich alles ohne Probleme erhalten. Die Verpackung finde ich übrigens ziemlich gut!

Und wie wird der Rahmen am besten verbunden? Ich schlage folgendes vor:

In die Ecken kommt jeweils ein etwa 5x5cm großer Holzklotz, der aber (und das ist jetzt wichtig!) 3 cm hoch ist. In die Enden von den Seitenteilen vorbohren und Senken (damit die Schrauben später schön aussehen).

Auf die Holzblöcke kommt dann die Platte (mit der ihr schon beim Zusammenschrauben probieren solltet, ob passt). Die Platte wird auf den Holzblöcken festgeleimt.
Dadurch haben sich 2 Bereiche ergeben:

  • hinten, wo die Holzblöcke sind und später die Elektronik hinkommt
  • vorne, wo die LEDs später hinkommen


So, es fehlen noch 2 Löcher, bevor gemalt wird.

  1. In die Mitte der oberen Abdeckung ( im hinteren Bereich) ein 5 mm Loch für die Helligkeitsabhängige Dimmung später
  2. In ein Seitenteil 1x 10mm Loch (im hinteren Bereich) für den Stromanschluss
------------------------------------------------

OK, damit hätten wir das Gehäuse, fehlt noch die vordere Abdeckung mit der eigentlichen Anzeige der Wörter.
Dazu habt ihr 2 Möglichkeiten zur Auswahl (Hier):
  1. Ihr nehmt die originale Datei (Schriftart Sans-Serif) von dracarys (leicht von mir korrigiert, da sie einen Fehler hatte) und müsst dann im Nachhinein die sog. "Punzen" wieder in die Buchstaben einkleben (zB im "B").
  2. Ihr nehmt meine Datei mit der Schriftart Awery, eine sog. Stencil Schriftart ist, was bedeutet, das es keine "Punzen" gibt.
Ich empfehle meine Datei zu nehmen, da das einkleben richtig lästig ist...
Welche Datei ihr auch nehmt, die muss mit einem Lasercutter ausgeschnitten werden (Die Maße sind 38,4 cm x 38,4 cm). Das geht entweder ganz gut bei Formulor.de oder ihr besucht euer örtliches Fab-Lab und lernt da noch was...

Als Material für die Buchstaben nehmt am besten Fotokarton, die Farbe ist eure Wahl (wobei schwarz schon geil aussieht ;)) 

Finale Abdeckung ist dann Plexiglas in den Maßen 38,4 cm x 38,4 cm (3mm stark), ebenfalls gut und günstig bei expresszuschnitt.de.

Hier gehts zum 2. Teil der Anleitung.

Wordclock - 1 - Der Anfang

Ziel der Anleitung soll der Bau einer Wordclock sein. Diese Anleitung fußt auf der genialen Anleitung von  dracarys . Darauf aufbauend...