<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Herb3472</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Herb3472"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Herb3472"/>
	<updated>2026-04-16T03:27:13Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88688</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88688"/>
		<updated>2015-05-21T12:34:56Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88687</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88687"/>
		<updated>2015-05-21T12:34:32Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88634</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88634"/>
		<updated>2015-05-16T18:31:51Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88633</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88633"/>
		<updated>2015-05-16T18:29:50Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88630</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88630"/>
		<updated>2015-05-16T14:55:01Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88629</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88629"/>
		<updated>2015-05-16T14:54:05Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88558</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88558"/>
		<updated>2015-05-08T10:07:31Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88557</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88557"/>
		<updated>2015-05-08T10:03:17Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88556</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88556"/>
		<updated>2015-05-08T10:02:49Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88544</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=88544"/>
		<updated>2015-05-07T07:12:28Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88543</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=88543"/>
		<updated>2015-05-07T07:11:26Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87411</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87411"/>
		<updated>2015-02-15T17:18:20Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 13.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip]] Frontplattenvorlage Maßstab 1:1 als dxf-Datei für CAD, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h18x16_V3_Bohr- &amp;amp; Fräsplan.cdr]]  Bohr- und Fräsplan Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, erstellt am 15.2.2015&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h18x16_V3_Bohr-_%26_Fr%C3%A4splan.cdr&amp;diff=87410</id>
		<title>Datei:Wc24h18x16 V3 Bohr- &amp; Fräsplan.cdr</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h18x16_V3_Bohr-_%26_Fr%C3%A4splan.cdr&amp;diff=87410"/>
		<updated>2015-02-15T17:16:34Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h18x16 V3 Bohr- &amp;amp; Fräsplan.cdr“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h18x16_V3_Bohr-_%26_Fr%C3%A4splan.cdr&amp;diff=87382</id>
		<title>Datei:Wc24h18x16 V3 Bohr- &amp; Fräsplan.cdr</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h18x16_V3_Bohr-_%26_Fr%C3%A4splan.cdr&amp;diff=87382"/>
		<updated>2015-02-13T19:17:55Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h18x16 V3 Bohr- &amp;amp; Fräsplan.cdr“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87381</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87381"/>
		<updated>2015-02-13T18:28:22Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 13.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip]] Frontplattenvorlage Maßstab 1:1 als dxf-Datei für CAD, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h18x16_V3_Bohr- &amp;amp; Fräsplan.cdr]]  Bohr- und Fräsplan Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, erstellt am 13.2.2015&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h18x16_V3_Bohr-_%26_Fr%C3%A4splan.cdr&amp;diff=87380</id>
		<title>Datei:Wc24h18x16 V3 Bohr- &amp; Fräsplan.cdr</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h18x16_V3_Bohr-_%26_Fr%C3%A4splan.cdr&amp;diff=87380"/>
		<updated>2015-02-13T18:27:42Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87379</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87379"/>
		<updated>2015-02-13T18:22:00Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 13.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip]] Frontplattenvorlage Maßstab 1:1 als dxf-Datei für CAD, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.cdr]]  Bohr- und Fräsplan Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, erstellt am 13.2.2015&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87342</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87342"/>
		<updated>2015-02-12T14:32:21Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 13.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip]] Frontplattenvorlage Maßstab 1:1 als dxf-Datei für CAD, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf&amp;diff=87341</id>
		<title>Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf&amp;diff=87341"/>
		<updated>2015-02-12T14:24:23Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: identisch mit der Version vom 3.2.2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;identisch mit der Version vom 3.2.2015&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip&amp;diff=87340</id>
		<title>Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip&amp;diff=87340"/>
		<updated>2015-02-12T14:17:40Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87263</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87263"/>
		<updated>2015-02-11T14:41:30Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 11.02.2015 (geänderte Matrix-Abmessungen)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip]] Frontplattenvorlage Maßstab 1:1 als dxf-Datei für CAD, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip&amp;diff=87258</id>
		<title>Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip&amp;diff=87258"/>
		<updated>2015-02-11T12:19:57Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87223</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87223"/>
		<updated>2015-02-08T01:10:52Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip]] Frontplattenvorlage Maßstab 1:1 als dxf-Datei für CAD, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip&amp;diff=87222</id>
		<title>Datei:WC24h18x16 V3 Stencil Allround.dxf.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip&amp;diff=87222"/>
		<updated>2015-02-08T01:09:23Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_V3_Stencil_Allround.svg.zip&amp;diff=87221</id>
		<title>Datei:WC24h18x16 V3 Stencil Allround.svg.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_V3_Stencil_Allround.svg.zip&amp;diff=87221"/>
		<updated>2015-02-08T01:08:42Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87220</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87220"/>
		<updated>2015-02-08T01:07:54Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg.zip]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87219</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87219"/>
		<updated>2015-02-08T01:04:11Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_V3_Stencil_Allround.svg]] Frontplattenvorlage Maßstab 1:1 als svg-Datei für Lasercutter, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Stencil Allround&amp;quot;, Update 08.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_V3_Stencil_Allround.svg&amp;diff=87218</id>
		<title>Datei:WC24h18x16 V3 Stencil Allround.svg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_V3_Stencil_Allround.svg&amp;diff=87218"/>
		<updated>2015-02-08T01:02:06Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf&amp;diff=87205</id>
		<title>Datei:Wc24h1816 V3 Bohrplan 45x45cm.pdf</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf&amp;diff=87205"/>
		<updated>2015-02-06T19:57:58Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Bohrplan 45x45cm.pdf“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87204</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87204"/>
		<updated>2015-02-06T19:51:21Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015 19:51, in 6 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf&amp;diff=87203</id>
		<title>Datei:WC24h18x16 Bohrplan Frontplatte 45x45cm.pdf</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf&amp;diff=87203"/>
		<updated>2015-02-06T19:50:09Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:WC24h18x16 Bohrplan Frontplatte 45x45cm.pdf“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bohr- und Fräsplan für die MDF-Montageplatte 45cm x 45cm x 1,6cm, 18 x 16 Matrix (288 LEDs) für WS2812 RGB-Strips mit 60 LEDs/lfm&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87200</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87200"/>
		<updated>2015-02-06T17:56:59Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Wie man diese APK unter Android installiert, kann man hier nachlesen:&lt;br /&gt;
&lt;br /&gt;
http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html&lt;br /&gt;
&lt;br /&gt;
Am einfachsten erlaubt man die Installation von Apps &amp;quot;aus unbekannten Quellen&amp;quot; und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich&lt;br /&gt;
      genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.&lt;br /&gt;
      &lt;br /&gt;
      -----------------------------------&lt;br /&gt;
      (Edit jar) LiR hier nachkaufen ist aber viel teurer als gleich welche mit LiR zu bestellen&lt;br /&gt;
      LiR Einzelpreis ab 3€ + Versand, da war es billiger neue Module zu kaufen bei einem Händler &lt;br /&gt;
      der LiR bestückt mitliefert 1,74€. Ob nun die CR oder LiR langlebiger ist kann ich nicht abschätzen.&lt;br /&gt;
      -----------------------------------&lt;br /&gt;
&lt;br /&gt;
      Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man&lt;br /&gt;
      auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss man das Modul aber mit&lt;br /&gt;
      +5V statt 3,3V betreiben, damit überhaupt geladen wird.&lt;br /&gt;
&lt;br /&gt;
      Möchte man das Modul mit einer CR2032 betreiben, sollte man sicherheitshalber die Diode&lt;br /&gt;
      oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild),&lt;br /&gt;
      damit keine Ladung der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung&lt;br /&gt;
      von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht auch eine CR2032 für 5-10 Jahre.&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 06.02.2015, in 4 Teilen zum Ausdruck auf A4 Drucker&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf&amp;diff=87199</id>
		<title>Datei:Wc24h1816 V3 Bohrplan 45x45cm.pdf</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Bohrplan_45x45cm.pdf&amp;diff=87199"/>
		<updated>2015-02-06T17:54:55Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87182</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87182"/>
		<updated>2015-02-06T07:24:57Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 vom 05.02.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.1: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.1.0:&lt;br /&gt;
&lt;br /&gt;
* Animationen hinzugefügt&lt;br /&gt;
* Neue Tabellen für Uhrzeit und Temperatur&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| d/D   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| a/A   ||  Animation wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus                           || LED1  || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen               || LED2  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen                  || LED3  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen                      || LED4  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| ANIM- || Animation erniedrigen                     || LED5  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| ANIM+ || Animation erhöhen                         || LED6  || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen                        || LED7  || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen                            || LED8  || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen                        || LED9  || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen                            || LED10 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen      || LED11 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen          || LED12 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen    || LED13 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen        || LED14 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen    || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen        || LED16 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit von Time-Server beziehen || LED17 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 07:24&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für  MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 11.12.2014&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87181</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87181"/>
		<updated>2015-02-06T07:23:52Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87164</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87164"/>
		<updated>2015-02-05T16:06:25Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 vom 26.01.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.0: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| x/X   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus || LED1 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen || LED2 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen || LED3 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen || LED4 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen || LED5 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen || LED6 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen || LED7 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen || LED8 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen || LED9 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen || LED10 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen || LED11 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen || LED12 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen || LED13 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen || LED14 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit vom eingestellten Time-Server beziehen || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 16:05&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für  MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 11.12.2014&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87163</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87163"/>
		<updated>2015-02-05T16:04:50Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87162</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87162"/>
		<updated>2015-02-05T13:41:25Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 vom 26.01.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.0: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| x/X   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus || LED1 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen || LED2 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen || LED3 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen || LED4 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen || LED5 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen || LED6 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen || LED7 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen || LED8 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen || LED9 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen || LED10 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen || LED11 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen || LED12 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen || LED13 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen || LED14 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit vom eingestellten Time-Server beziehen || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 13:41&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für  MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 11.12.2014&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87161</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87161"/>
		<updated>2015-02-05T13:40:51Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87121</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87121"/>
		<updated>2015-02-05T08:32:13Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 vom 26.01.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.0: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| x/X   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus || LED1 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen || LED2 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen || LED3 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen || LED4 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen || LED5 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen || LED6 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen || LED7 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen || LED8 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen || LED9 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen || LED10 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen || LED11 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen || LED12 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen || LED13 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen || LED14 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit vom eingestellten Time-Server beziehen || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 08:30&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für  MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 11.12.2014&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87120</id>
		<title>WordClock24h</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=WordClock24h&amp;diff=87120"/>
		<updated>2015-02-05T08:31:12Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es geht um eine minutengenaue &amp;quot;WordClock&amp;quot; bzw. &amp;quot;WortUhr&amp;quot; mit 24-Stunden-Modus.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Es geht hier um den Bau einer Wand- bzw. Tischuhr, bei welcher auf einer quadratischen Frontplatte die jeweils aktuelle Uhrzeit als Text durch Hinterleuchtung der entsprechenden Wörter angezeigt wird. Die Hinterleuchtung der Wörter erfolgt durch farbige RGB-LEDs (Farbeinstellung mittels Fernbedienung wählbar), welche durch einen mit der Uhrzeit synchronisierten Mikrocontroller angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu der bekannten QlockTwo Wortuhr, welche die Uhrzeit im 12 Stunden-Wiederholungsrhythmus in Fünf-Minuten-Schritten anzeigt, liegt dieser Wortuhr ein Konzept zu Grunde, welches eine minutengenaue Zeitanzeige für 24 Stunden ermöglicht. Um den unterschiedlichsten regionalen und persönlichen Gewohnheiten gerecht zu werden, verfügt diese minutengenaue 24 Stunden-Wortuhr über mehrere Betriebsarten, mit welchen sich über die allgemein üblichen Standard-Zeitanzeigen hinaus per Voreinstellung auch verschiedene, regional übliche Wortfolgen konfigurieren lassen (viertel nach ..., dreiviertel ..., viertel vor ... ,...). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_schwarz_Arial_orange.png|Schwarzes Acrylglas mit oranger Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Acryl_rot_Arial_weiss.png|Rotes Acrylglas mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Burlwood_Stencil_Allround_weiss.png|Burlwood (Wurzelholz) mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Edelstahl_Stencil_Allround_weiss.png|Edelstahl gebürstet mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
Datei:WC24h18x16_Rost_Stencil_Allround_weiss.png|Rostiger Stahl mit weißer Schrift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Diskussionen der &amp;quot;Insider&amp;quot; gibt es den Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/349206 Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Neu-Einsteiger, die diesen Artikel gelesen&#039;&#039;&#039; haben, stellen Ihre Fragen gern im Thread &amp;quot;&#039;&#039;&#039;[http://www.mikrocontroller.net/topic/351181 WortUhr/WordClock: Minutengenau, 24h, RGB für Neu-Einsteiger]&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel wird schrittweise ausgebaut und soll zur Zeit nur zur Sammlung von Ideen dienen.&lt;br /&gt;
&lt;br /&gt;
== LEDs ==&lt;br /&gt;
&lt;br /&gt;
Bei der 18 x 16 Matrix (Standardversion mit allen Texten) werden insgesamt 288 LEDs benötigt, bei der 16 x 16 Matrix (abgespeckte Version mit weniger Texten) insgesamt 256 LEDs. Vorzugsweise sollen WS2812 oder WS2812B zum Einsatz kommen. Um Lötarbeit zu sparen, sollen entweder fertige LED-Matrizen (gibt es bei eBay) oder LED-Stripes verwendet werden. Vorzugsweise werden für die 18 x 16 Matrix WS2812B RGB-LED-Stripes mit 60 LEDs/lfm, für die 16 x 16 Matrix 2 Stück 16 x 8 WS2812B RGB-LED-Matrizen (LED-Abstand horizontal und vertikal jeweils 20mm) verwendet. &lt;br /&gt;
&lt;br /&gt;
=== 18 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Da die Buchstaben höher als breit ist, sieht es besser aus, wenn der Buchstabenabstand in der Waagerechten geringer ist als in der Höhe. Dies kann man mit einer 18x16-Matrix erreichen - bei quadratischem Umfang der kompletten Matrix.&lt;br /&gt;
&lt;br /&gt;
Wenn man Stripes verwendet, welche 60 LEDs/m haben, dann ist die Breite aller 18 Buchstaben exakt 30cm. Bei 16 Zeilen kommt man auf eine Komplett-Höhe bei einem senkrechten Buchstaben-Abstand von 30/16 = 1,875cm.&lt;br /&gt;
&lt;br /&gt;
Also: Abstand in der Breite: 1,667cm, in der Höhe 1,875cm. Dann besteht bei einer 45cm x 45cm großen Frontplatte ein einheitlicher Rand von je 7,5cm. Das Schriftbild ist durch den geringeren waagerechten Buchstabenabstand dann leichter lesbar.&lt;br /&gt;
&lt;br /&gt;
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:&lt;br /&gt;
&lt;br /&gt;
  1  2  3  4  ...                              18&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
                                                  |&lt;br /&gt;
  36                                       20  19 |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O---&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--&lt;br /&gt;
  37 38 ....&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass jeder zweite Streifen &amp;quot;auf dem Kopf&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== 16 x 16 Matrix ===&lt;br /&gt;
&lt;br /&gt;
Bei der 16 x 16 Matrix kommen 2 Stück 16 x 8 LED-Matrizen mit einem horizontalen und vertikalen Abstand der LEDs von jeweils 20mm zum Einsatz. Dementsprechend betragen die Außenabmessungen der Matrix 32cm x 32cm. Bei einer 45cm großen Frontplatte bleibt rundherum ein 6,5 cm freier Rand bestehen.&lt;br /&gt;
&lt;br /&gt;
Die 16x8 LED-Matrizen sind ebenfalls mit WS2812B RGB-LEDs bestückt, die Ansteuerung erfolgt wie bei den Stripes seriell.&lt;br /&gt;
&lt;br /&gt;
== Frontplatten ==&lt;br /&gt;
&lt;br /&gt;
Es sind sowohl gefräste Holz/Edelstahl-Frontplatten als auch im Siebdruck hergestellte Acrylglasplatten vorgesehen. &lt;br /&gt;
&lt;br /&gt;
[http://www.mikrocontroller.net/user/show/ukw &#039;&#039;&#039;ukw&#039;&#039;&#039;] hat sich bereit erklärt, analog zur 10x11-WordClock-[http://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Plexiglas.29 &#039;&#039;&#039;Sammelbestellung Plexiglas&#039;&#039;&#039;] eine Sammelbestellung für die WordClock24h anzubieten. Die Kosten pro bedruckter Platte belaufen sich auf voraussichtlich 38 EUR. Dabei wird eine extra Farbschicht als Diffusor verwendet.&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller ist ein STM32F401 oder STM32F411 Nucleo Board vorgesehen. Dieses kostet ca. 12 EUR und mit 512KB Flash und mindestens 96KB RAM genügend Reserven.&lt;br /&gt;
&lt;br /&gt;
== STM32F4xx Projekt ==&lt;br /&gt;
&lt;br /&gt;
Die Software ist sowohl auf dem STM32F4 Discovery Board als auch auf dem STM32F401RE Nucleo Board und dem STM32F411RE Nucleo Board lauffähig. Das Discovery dient lediglich als Entwicklungsboard, das Nucleo wird das &amp;quot;endgültige&amp;quot; Board für dieses Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
Die Software wird ständig weiterentwickelt. Folgende Punkte sind bereits erledigt:&lt;br /&gt;
&lt;br /&gt;
* Lauffähig auf STM32F4-Discovery, STM32F401 Nucleo und STM32F411 Nucleo&lt;br /&gt;
* Anbindung IR-Fernbedienung mittels [[IRMP]]&lt;br /&gt;
* Monitoring/Benutzeroberfläche mittels [[MCURSES]]&lt;br /&gt;
* Einstellen des Anzeigemodus (&amp;quot;Sprache&amp;quot;) und der Farbe per IR-Fernbedienung&lt;br /&gt;
* Anbindung von LED-Stripes des Typs WS2812&lt;br /&gt;
* Sanftes Überblenden der Uhrzeiten auf den LEDs&lt;br /&gt;
* Anbindung einer externen DS3231-RTC&lt;br /&gt;
* Anbindung eines externen I2C-EEPROM&lt;br /&gt;
* Optionale Anbindung eines DCF77-Moduls&lt;br /&gt;
* Optionale Anbindung eines ESP8266-WLAN-Moduls&lt;br /&gt;
* Nachtzeit, zu welcher sich die Uhr automatisch abschaltet&lt;br /&gt;
* Speichern aller Einstellungen in externem EEPROM&lt;br /&gt;
* Fernsteuerung per Android App&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 vom 26.01.2015: [[Datei:Wclock24h.zip]]&lt;br /&gt;
&lt;br /&gt;
Hex-Dateien, wenn man - ohne zu compilieren - direkt flashen will:&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Disco-Board: [[Datei:Wclock24-disco.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo401-Board: [[Datei:Wclock24-nucleo401.hex]]&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0 Nucleo411-Board: [[Datei:Wclock24-nucleo411.hex]]&lt;br /&gt;
&lt;br /&gt;
Android App 1.0: [[Datei:WC24h.apk]] (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Die EM::Blocks-Projekt ist nun auch über SVN abrufbar: [http://www.mikrocontroller.net/svnbrowser/wordclock24h/ WordClock24h im SVN], Download [http://www.mikrocontroller.net/svnbrowser/wordclock24h/?view=tar Tarball]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Version im SVN kann eine Zwischen- oder Test-Version sein, die &#039;&#039;&#039;nicht&#039;&#039;&#039; den hier dokumentierten Stand widerspiegelt! Die stabile Version findet man über den obigen Download-Link auf [[Datei:Wclock24h.zip]].&lt;br /&gt;
&lt;br /&gt;
=== Letzte Änderungen ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0.0:&lt;br /&gt;
&lt;br /&gt;
* Test auf verschiedene Adressen des I2C-EEPROMs&lt;br /&gt;
* EEPROM-Speicherplatzverbrauch minimiert&lt;br /&gt;
* RTC DS3231-Routinen auf DS1307 verallgemeinert&lt;br /&gt;
* Network Listener (UDP) zum Fernsteuern der Uhr über WLAN&lt;br /&gt;
* Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)&lt;br /&gt;
&lt;br /&gt;
Version 0.9.1:&lt;br /&gt;
&lt;br /&gt;
* EEPROM-Hexdump im [[MCURSES]]-Monitor eingebaut&lt;br /&gt;
* Zusätzliche Waitstates beim Beschreiben des EEPROMs&lt;br /&gt;
&lt;br /&gt;
Version 0.9:&lt;br /&gt;
&lt;br /&gt;
* Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls&lt;br /&gt;
* Verbesserung der ESP8266-Konfiguration dank Hardware-Reset&lt;br /&gt;
* Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird&lt;br /&gt;
* Konfiguration der Zeitzone über MCURSES-Monitor&lt;br /&gt;
* Test und Überarbeitung der EEPROM und RTC-Funktionen&lt;br /&gt;
* Synchronisation der RTC-Zeit mit dem µC-Timer&lt;br /&gt;
* Speichern folgender Daten im EEPROM:&lt;br /&gt;
&lt;br /&gt;
     EEPROM-Version&lt;br /&gt;
     IRMP-Daten einer angelernten IR-Fernbedienung&lt;br /&gt;
     Aktuell eingestellte Farben und Anzeigemodus&lt;br /&gt;
     IP-Adresse des Time-Servers&lt;br /&gt;
     Zeitzone&lt;br /&gt;
&lt;br /&gt;
Version 0.8:&lt;br /&gt;
&lt;br /&gt;
* Neue IR-Fernbedienungs-Tasten POWER und OK&lt;br /&gt;
* Einbau einer konfigurierbaren &amp;quot;Nachtzeit&amp;quot;, in der sich die Uhr selbstständig abschaltet&lt;br /&gt;
* Konfiguration des Time-Servers über MCURSES-Monitor&lt;br /&gt;
* Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM&lt;br /&gt;
* Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)&lt;br /&gt;
* Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c&lt;br /&gt;
* Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)&lt;br /&gt;
* Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t&lt;br /&gt;
* Diverse Bugfixes&lt;br /&gt;
&lt;br /&gt;
Version 0.7.1:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F411RE Nucleo Board&lt;br /&gt;
&lt;br /&gt;
Version 0.7:&lt;br /&gt;
&lt;br /&gt;
* Portierung der Software auf STM32F401RE Nucleo Board&lt;br /&gt;
* uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)&lt;br /&gt;
* Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)&lt;br /&gt;
* Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal&lt;br /&gt;
* Verschiedene Optimierungen&lt;br /&gt;
&lt;br /&gt;
Version 0.6:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration des WLAN-Moduls (SSID &amp;amp; Key) nun über Terminal statt fest im Code verdrahtet.&lt;br /&gt;
* Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.&lt;br /&gt;
* DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.&lt;br /&gt;
* I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
* I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).&lt;br /&gt;
&lt;br /&gt;
=== Software für Windows ===&lt;br /&gt;
&lt;br /&gt;
* EM::Blocks IDE, siehe http://www.emblocks.org/, &#039;&#039;&#039;nur notwendig, wenn man selber die Sources übersetzen möchte!&#039;&#039;&#039;&lt;br /&gt;
* ST-Link/V2 Software zum Flashen, siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168&lt;br /&gt;
* STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938&lt;br /&gt;
* PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* STM32F4 Discovery als Entwicklungsboard&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Versuchsaufbau.jpg|miniatur|Versuchsaufbau mit STM32F4 Discovery Board]]&lt;br /&gt;
&lt;br /&gt;
      Dieses Board kann unverändert benutzt werden. Es sind jedoch zwei USB-Kabel notwendig,&lt;br /&gt;
      nämlich ein Mini-USB-Kabel zum Flashen und ein Micro-USB-Kabel für die ESP8266 Konfiguration&lt;br /&gt;
      oder für sonstige Einstellungen über eine Terminal-Emulation&lt;br /&gt;
&lt;br /&gt;
      Dieses Board dient lediglich als Entwicklungsboard. Die endgültige Nachbau-Uhr wird mit&lt;br /&gt;
      dem Nucleo-Board betrieben. Wenn man also keins zufällig in der Schublade hat, sollte man&lt;br /&gt;
      sich besser direkt das Nucleo-Board besorgen.&lt;br /&gt;
&lt;br /&gt;
* STM32F401RE/STM32F411RE Nucleo als endgültiges Board&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-Nucleo-Oberseite.jpg|miniatur|Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Unterseite.jpg|miniatur|Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren]]&lt;br /&gt;
[[Datei:WC24h-Nucleo-Shield.jpg|miniatur|Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für DCF77EEPROM/RTC]]&lt;br /&gt;
&lt;br /&gt;
      Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden&lt;br /&gt;
      identisch genutzt.&lt;br /&gt;
&lt;br /&gt;
      Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte&lt;br /&gt;
      man die überstehenden Enden der Steckerleisten auf der &#039;&#039;&#039;Unterseite&#039;&#039;&#039; mit einer&lt;br /&gt;
      Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil)&lt;br /&gt;
      können dabei auf die Oberseite gesteckt werden.&lt;br /&gt;
&lt;br /&gt;
      Es gibt zwei verschiedene Revisionen von den Nucleo-Boards:&lt;br /&gt;
&lt;br /&gt;
      - &amp;quot;MB1136 C01&amp;quot;: Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator&lt;br /&gt;
      - &amp;quot;MB1136 C02&amp;quot;: Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Devices&lt;br /&gt;
&lt;br /&gt;
      Damit auch das Board mit der Revision &amp;quot;MB1136 C01&amp;quot; zuverlässig im HSE-Modus mit&lt;br /&gt;
      84MHz läuft, sind folgende Hardware-Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
      - Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)&lt;br /&gt;
      - Lötbrücken SB16 und SB50 entfernen (dito)&lt;br /&gt;
      - R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken&lt;br /&gt;
      - Quarz X3 (8 MHz) einlöten&lt;br /&gt;
      - C33 und C34 mit jeweils 22pF bestücken. Diese können auch normale THT-Bauteile sein,&lt;br /&gt;
        wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-&lt;br /&gt;
        Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt&lt;br /&gt;
        an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 &amp;amp; R37 einlöten, bevor&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      Es emfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision &amp;quot;MB1136 C02&amp;quot;&lt;br /&gt;
      durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen&lt;br /&gt;
      werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal&lt;br /&gt;
      genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.&lt;br /&gt;
&lt;br /&gt;
      Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst&lt;br /&gt;
      gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene&lt;br /&gt;
      stellt also den gewünschten Endzustand dar.&lt;br /&gt;
&lt;br /&gt;
      Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.&lt;br /&gt;
&lt;br /&gt;
* TSOP31238&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Disco-Board GND, TSOP-Pin2 an Disco-Board 5V, TSOP-Pin3 an Disco PC14&lt;br /&gt;
      (Diese befinden sich alle am oberen Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: TSOP-Pin1 an Nucleo-Board GND, TSOP-Pin2 an Nucleo-Board 5V, TSOP-Pin3 an Nucleo PC10&lt;br /&gt;
&lt;br /&gt;
* WS2812 LED-Streifen mit 288 LEDs, pro Zeile 18 LEDs. Zum Test reicht erstmal ein Streifen mit 18 LEDs&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Disco PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
      (PC6 und GND befinden sich am unteren Ende von Steckerleiste P2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: Stripe +5V an externe Stromversorgung +5V&lt;br /&gt;
                  Stripe DI an Nucleo PC6&lt;br /&gt;
                  Stripe GND an externe Stromversorgung GND und an Disco GND (neben PC6)&lt;br /&gt;
&lt;br /&gt;
* Optional: DCF77 Modul&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Disco GND&lt;br /&gt;
                  DCF77 V+  an Disco 3,3V&lt;br /&gt;
                  DCF77 Out an Disco PC15&lt;br /&gt;
      (Alle 3 Anschlüsse befinden sich auf dem Disco-Board oben rechts nahe beieinander)&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC15 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: DCF77 GND an Nucleo GND&lt;br /&gt;
                  DCF77 V+  an Nucleo 3,3V&lt;br /&gt;
                  DCF77 Out an Nucleo PC11&lt;br /&gt;
&lt;br /&gt;
      Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein&lt;br /&gt;
      befriedigendes Empfangsverhalten hat.&lt;br /&gt;
&lt;br /&gt;
      Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang&lt;br /&gt;
      verwendet, muss an PC11 noch ein 100k Pullup (zu 3,3V) angeschlossen werden.&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN DCF-Modul verwendet, sollte PC11 per 100k Pullup auf 3,3V gelegt werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Optional: ESP8266 ESP-01: WLAN Modul&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-ESP8266-ESP-01.png|miniatur|Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!]]&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND   an Disco GND&lt;br /&gt;
                  ESP8266 VCC   an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Disco PC4 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Disco PC5 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Disco USART2 RX (PA3)&lt;br /&gt;
                  ESP8266 RXD   an Disco USART2 TX (PA2)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: ESP8266 GND an Nucleo GND&lt;br /&gt;
                  ESP8266 VCC   an &#039;&#039;&#039;externe&#039;&#039;&#039; 3,3V (Vorsicht: Modul zieht bis zu 200mA!)&lt;br /&gt;
                  ESP8266 CH_PD an Nucleo PA6 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 RST   an Nucleo PA7 (&#039;&#039;&#039;NEU AB VERSION 0.9!&#039;&#039;&#039;)&lt;br /&gt;
                  ESP8266 TXD   an Nucleo USART6 RX (PA12)&lt;br /&gt;
                  ESP8266 RXD   an Nucleo USART6 TX (PA11)&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Wird KEIN ESP8266-Modul verwendet, ist nichts weiter zu beachten, da die Erkennung automatisch erfolgt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I2C-Modul mit DS3231 als RTC und EEPROM&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h-DS3231-EEPROM.png|miniatur|DS3231 RTC + EEPROM]]&lt;br /&gt;
      Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als&lt;br /&gt;
      Suchbegriff &amp;quot;DS3231 EEPROM&amp;quot; eingibt.&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Disco GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Disco PA8&lt;br /&gt;
                  I2C SDA   an Disco PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
      Anschlüsse: I2C GND   an Nucleo GND&lt;br /&gt;
                  I2C VCC   an Board-interne oder externe 3,3V&lt;br /&gt;
                  I2C SCL   an Nucleo PA8&lt;br /&gt;
                  I2C SDA   an Nucleo PC9&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;NEU: AB Version 1.0 werden auch RTC/EEPROM-Module mit DS1307 korrekt erkannt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es ist wenig ratsam, ein DCF77- und das ESP8266-Modul gleichzeitig einzusetzen, da das ESP8266-WLAN-Modul den DCF77-Empfänger stören kann. Im Zweifel sollte man sich für eine der beiden Möglichkeiten entscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Anschlusstabelle ===&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Anschlüsse&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Device || STM32F4 Disco || STM32F4x1 Nucleo&lt;br /&gt;
|-&lt;br /&gt;
| TSOP38238 (IRMP)        || GPIO:   PC14            || GPIO:   PC10 &lt;br /&gt;
|- &lt;br /&gt;
| DCF77                   || GPIO:   PC15            || GPIO:   PC11&lt;br /&gt;
|- &lt;br /&gt;
| MCURSES terminal (USB)  || USB:    OTG             || USART2: TX=PA2  RX=PA3&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || USART2: TX=PA2  RX=PA3  || USART6: TX=PA11 RX=PA12&lt;br /&gt;
|- &lt;br /&gt;
| ESP8266                 || GPIO: RST=PC5 CH_PD=PC4 || GPIO:   RST=PA7 CH_PD=PA6&lt;br /&gt;
|- &lt;br /&gt;
| I2C DS3231 &amp;amp; EEPROM     || I2C3:   SCL=PA8 SDA=PC9 || I2C3:   SCL=PA8 SDA=PC9&lt;br /&gt;
|- &lt;br /&gt;
| WS2812                  || DMA1:   PC6             || DMA1:   PC6             &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Geflasht wird mit dem ST-Link-Programm, siehe oben.&lt;br /&gt;
&lt;br /&gt;
Zur Überprüfung sämtlicher Funktionen und zur Konfiguration sollte man beim ersten Start den [[MCURSES]]-Monitor benutzen. Dazu benötigt man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) und ein Micro-USB-Kabel (Disco-Board) bzw. ein Mini-USB-Kabel für das Nucleo-Board.&lt;br /&gt;
&lt;br /&gt;
Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die &amp;quot;blauen&amp;quot; USB3.0-Buchsen möglichst meiden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F4 Discovery:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen und Debuggen)&lt;br /&gt;
* Disco-Board und PC mit Micro-USB-Kabel verbinden (dient als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Disco-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-disco.hex (aus dem Ordner bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Disco&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
&lt;br /&gt;
Wenn man innerhalb von 10 Sekunden nach dem Start des Disco-Boards, die PuTTY-Verbindung aufnimmt, dann sollte im Terminal &amp;quot;Press any key to start&amp;quot; erscheinen. Nach Tastendruck erscheint dann das nebenstehende Bild. Wenn man die Terminal-Verbindung erst später aufnimmt, muss man erst die ENTER-Taste drücken, damit [[MCURSES]] erneut aktiviert wird und der Bildschirm neu aufgebaut wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für STM32F4 Discovery:&#039;&#039;&#039;: Die COM-Schnittstelle wird nur dann angezeigt, wenn das Programm auf dem Disco-Board auch läuft! Bei manuellen Resets des Disco-Boards muss die Terminal-Emulation zuvor geschlossen und anschließend neu geöffnet werden. Sonst erhält man keine neue Verbindung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STM32F401RE Nucleo und STM32F411RE Nucleo:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Disco-Board und PC mit Mini-USB-Kabel verbinden (zum Flashen, Debuggen und als COM-Schnittstelle)&lt;br /&gt;
* Wenn man die EM::Blocks-IDE einsetzt: Projekt auf &amp;quot;Nucleo401-Release&amp;quot; bzw. &amp;quot;Nucleo411-Release&amp;quot; einstellen, dann compilieren&lt;br /&gt;
* wclock24-nucleo401.hex bzw. wclock24-nucleo411.hex (aus dem Ordner wclock24h\bin\Release oder direkt hier herunterladen) flashen&lt;br /&gt;
* PuTTY starten&lt;br /&gt;
* PuTTY einstellen: Auswahl &amp;quot;Serial&amp;quot;, Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200&lt;br /&gt;
* Einen Session-Namen eingeben, z.B. &amp;quot;Nucleo&amp;quot;&lt;br /&gt;
* Auf SAVE klicken, dann kann man die Session später wieder auswählen&lt;br /&gt;
* Open anklicken&lt;br /&gt;
* RESET-Button am Nucleo-Board drücken&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig für Nucleo Board:&#039;&#039;&#039;: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nur die Änderungen, also im allgemeinen nur die Uhrzeit. Mit der ENTER-Taste sollte man dann einen kompletten Bildschirm-Refresh erzwingen.&lt;br /&gt;
&lt;br /&gt;
Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.&lt;br /&gt;
&lt;br /&gt;
=== [[MCURSES]]-Monitor ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wclock24-in-putty.png|miniatur|WordClock24h in PuTTY]]&lt;br /&gt;
&lt;br /&gt;
Der Monitor dient zur Überprüfung sämtlicher Funktionen und der Konfiguration des WLAN-Moduls.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion&lt;br /&gt;
|-&lt;br /&gt;
| x/X   ||  Anzeigemodus wechseln&lt;br /&gt;
|- &lt;br /&gt;
| h/H   ||  Stunden einstellen&lt;br /&gt;
|- &lt;br /&gt;
| m/M   ||  Minuten einstellen&lt;br /&gt;
|- &lt;br /&gt;
| r/R   ||  Helligkeit für Rot&lt;br /&gt;
|- &lt;br /&gt;
| g/G   ||  Helligkeit für Grün&lt;br /&gt;
|- &lt;br /&gt;
| b/B   ||  Helligkeit für Blau&lt;br /&gt;
|- &lt;br /&gt;
| n     ||  Zeit von einem Time-Server holen&lt;br /&gt;
|- &lt;br /&gt;
| c     ||  Access-Point- und Time-Server-Einstellungen konfigurieren (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| o     ||  Okay, Save. Damit werden die Einstellungen im EEPROM gespeichert. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| e     ||  EEPROM-Hexdump zur Kontrolle des Inhalts (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| p     ||  Power On/Off. Hiermit kann man die Anzeige ein- und ausschalten. (&#039;&#039;&#039;NEU!&#039;&#039;&#039;)&lt;br /&gt;
|- &lt;br /&gt;
| l     ||  Logout. Die Ausgabe über das Terminal wird eingestellt, bis zur nächsten ENTER-Taste&lt;br /&gt;
|- &lt;br /&gt;
| ENTER || Login. Der komplette Bildschirm-Inhalt wird dabei neu geschrieben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Uhrzeit wird jede Sekunde in Real Time hochgezählt. Desweiteren erscheinen Infos über empfangene Uhrzeiten per RTC, DCF77 und ESP8266. Ebenso lassen sich die Farben der LEDs und der Anzeigemodus einstellen. Außerdem unterstützt der [[MCURSES]]-Monitor beim Anlernen einer IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration des WLAN-Moduls ===&lt;br /&gt;
&lt;br /&gt;
==== Access-Point ====&lt;br /&gt;
&lt;br /&gt;
2 Sekunden nach dem Start wird von der STM32-Software getestet, ob ein ESP8266-WLAN-Modul angeschlossen ist. Wird das Modul gefunden, erscheint im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 up&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
25 Sekunden nach dem Start wird davon ausgegangen, dass das ESP8266-WLAN-Modul mittlerweile eine Verbindung zu einem Access-Point (&amp;quot;AP&amp;quot;) hat. Wenn dies der Fall ist, wird im [[MCURSES]]-Monitor die Meldung &#039;&#039;&#039;&amp;quot;ESP8266 online&amp;quot;&#039;&#039;&#039; ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Sobald die Up-Meldung ausgegeben wurde, kann man die Access-Point-Einstellungen für das (optionale) WLAN-Modul folgendermaßen konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 1 drücken&lt;br /&gt;
* SSID eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
* Key eingeben (oder durch leere Eingabe per ENTER abbrechen)&lt;br /&gt;
&lt;br /&gt;
Es wird jetzt für eine gewisse Zeit versucht, eine Verbindung mit dem AP aufzunehmen. fehlerhaft. Hat das Modul nach ca. 30 Sekunden immer noch keine stabile Verbindung, sollte man das Modul einmal komplett vom Strom trennen. Die Einstellungen sind aber im ESP8266-Modul gespeichert und sollten nach dem Wiedereinschalten der Spannung automatisch funktionieren. &#039;&#039;&#039;Eine erneute Konfiguration ist also in der Regel nicht mehr erforderlich.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Timeserver ====&lt;br /&gt;
&lt;br /&gt;
Den Timeserver kann man nun auch konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann ein Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 2 drücken&lt;br /&gt;
* IP-Adress des neuen Timeservers eingeben (leere Eingabe bricht ab)&lt;br /&gt;
&lt;br /&gt;
Der Time-Server muss ein RFC 868 konformer Time-Server (nicht NTP-Server!) sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Da dieser Server oft ausgelastet ist, kann man auch auf time.nist.gov (216.229.0.179) oder auch uclock.de (88.198.64.6) ausweichen. Als Zeitzone ist standardmäßig GMT+1 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Eine Liste von Time-Servern, welche RFC 868 genügen, findet man u.a. hier: http://tf.nist.gov/tf-cgi/servers.cgi&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Uhrzeit wird einmal pro Stunde vom Time-Server geholt, nämlich immer um xx:10:17 Uhr. Im MCURSES-Monitor kann man aber auch jederzeit die Taste &#039;n&#039; drücken, um ad hoc die Zeit zu holen. Das funktioniert auch mit einer angelernten IR-Fernbedienung.&lt;br /&gt;
&lt;br /&gt;
==== Zeitzone ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellung der Zeitzone geht folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
* Taste &#039;c&#039; (klein!) drücken&lt;br /&gt;
&lt;br /&gt;
Es erscheint dann das bekannte Menü:&lt;br /&gt;
&lt;br /&gt;
  1. Configure access to AP&lt;br /&gt;
  2. Configure time server&lt;br /&gt;
  3. Configure time zone&lt;br /&gt;
  0. Exit&lt;br /&gt;
&lt;br /&gt;
* Taste 3 drücken&lt;br /&gt;
* Zeitzone eingeben, z.B. GMT&#039;&#039;&#039;+1&#039;&#039;&#039; für mitteleuropäische Zeit.&lt;br /&gt;
&lt;br /&gt;
=== IR-Fernbedienung ===&lt;br /&gt;
&lt;br /&gt;
Wenn man die blaue Taste auf dem Disco- bzw. Nucleo-Board drückt, kann man eine Fernbedienung anlernen. Im Terminal wird man dann aufgefordert, folgende FB-Tasten zu drücken.&lt;br /&gt;
&lt;br /&gt;
{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;Tasten im MCURSES-Monitor&#039;&#039;&#039;&lt;br /&gt;
|-  style=&amp;quot;background-color:#eeeeee&amp;quot;&lt;br /&gt;
! Taste || Funktion || LED || Buchstabe&lt;br /&gt;
|-&lt;br /&gt;
| Power || Anzeige ein/aus || LED1 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| OK    || Speichern der Einstellungen || LED2 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| MODE- || Anzeigemodus erniedrigen || LED3 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MODE+ || Anzeigemodus erhöhen || LED4 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| HOUR- || Stunde erniedrigen || LED5 || style=&amp;quot;text-align:center&amp;quot;| S&lt;br /&gt;
|- &lt;br /&gt;
| HOUR+ || Stunde erhöhen || LED6 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| MIN-  || Minute erniedrigen || LED7 || style=&amp;quot;text-align:center&amp;quot;| #&lt;br /&gt;
|- &lt;br /&gt;
| MIN+  || Minute erhöhen || LED8 || style=&amp;quot;text-align:center&amp;quot;| V&lt;br /&gt;
|- &lt;br /&gt;
| RED-  || Helligkeit der Farbe Rot erniedrigen || LED9 || style=&amp;quot;text-align:center&amp;quot;| I&lt;br /&gt;
|- &lt;br /&gt;
| RED+  || Helligkeit der Farbe Rot erhöhen || LED10 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| GREEN- || Helligkeit der Farbe Grün erniedrigen || LED11 || style=&amp;quot;text-align:center&amp;quot;| R&lt;br /&gt;
|- &lt;br /&gt;
| GREEN+ || Helligkeit der Farbe Grün erhöhen || LED12 || style=&amp;quot;text-align:center&amp;quot;| T&lt;br /&gt;
|- &lt;br /&gt;
| BLUE-  || Helligkeit der Farbe Blau erniedrigen || LED13 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|- &lt;br /&gt;
| BLUE+  || Helligkeit der Farbe Blau erhöhen || LED14 || style=&amp;quot;text-align:center&amp;quot;| L&lt;br /&gt;
|- &lt;br /&gt;
| NET-TIME || Aktuelle Zeit vom eingestellten Time-Server beziehen || LED15 || style=&amp;quot;text-align:center&amp;quot;| E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dabei leuchtet die oben angegebene LED hinter dem jeweiligen Buchstaben auf dem Display in der obersten Zeile (&#039;&#039;&#039;ES#IST#VIERTELEINS&#039;&#039;&#039;), damit der Anlernvorgang auch ohne [[MCURSES]]-Monitor vorgenommen werden kann. Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.&lt;br /&gt;
&lt;br /&gt;
Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:&lt;br /&gt;
&lt;br /&gt;
* SIRCS (Sony)&lt;br /&gt;
* NEC (Viele Hersteller, sehr verbreitet)&lt;br /&gt;
* SAMSUNG&lt;br /&gt;
* MATSUSHITA&lt;br /&gt;
* KASEIKYO&lt;br /&gt;
&lt;br /&gt;
[[IRMP]] &amp;quot;versteht&amp;quot; jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des [[IRMP]]-Artikels.&lt;br /&gt;
&lt;br /&gt;
=== Android App ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wc24h-Android.png|miniatur|WC24h Android App]]&lt;br /&gt;
&lt;br /&gt;
Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr ab Software-Version 1.0 per Android App ferngesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Momentan können folgende Einstellungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
* Ein-/Ausschalten der Uhr&lt;br /&gt;
* Einstellen der Farben&lt;br /&gt;
* Einstellung des Anzeigemodus&lt;br /&gt;
&lt;br /&gt;
Weitere Features werden folgen.&lt;br /&gt;
&lt;br /&gt;
Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag &amp;quot;Server&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Geplante Features ===&lt;br /&gt;
&lt;br /&gt;
Die nächsten geplanten Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration der Nachtzeit(en)&lt;br /&gt;
* Farbprogramme (Wählen der Farbe, optional automatisches Wechseln)&lt;br /&gt;
* Animationen (Rollen der Uhzeit von oben/links/rechts/unten, Regentropfen, Explode etc...)&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Gehäuse (sofern man nicht den 50x50 Ribba-Rahmen des schwedischen Möbelhauses nehmen möchte):&lt;br /&gt;
&lt;br /&gt;
Eine preisgünstige Variante wäre der Aufbau auf einer 45 x 45 cm großen, 16mm starken MDF-Platte aus dem Baumarkt. Die Kanten kann man in der Regel gleich beim Zuschnitt mit Kantenumleimern versäubern lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Ausfraesungen vorne.png|MDF-Platte mit trichterförmigen Ausfräsungen für die LEDs, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_Rueckseite mit Bohrloechern.jpg|MDF-Platte mit Bohrlöchern für die LEDs, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_weiss_lackiert.png|MDF-Platte weiß lackiert, Vorderansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_rueckwaerts.png|MDF-Platte mit Alu-Gehäuserahmen, Rückansicht&lt;br /&gt;
Datei:WC24h18x16_Montageplatte_mit_Gehaeuserahmen_und Milchglasabdeckung.png|MDF-Platte mit Alu-Gehäuserahmen und Milchglasscheibe für Hintergrund-Beleuchtung, Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die MDF-Platte erhält 288 Bohrungen im Rastermaß der LED-Matrix. Ein Bohrplan ist hier als Download im pdf-Format verfügbar. Die Bohrungen werden nach vorne hin auf 14mm Durchmesser aufgebohrt und dienen einerseits zur Lichtabdichtung gegenüber den benachbarten LEDs, andererseits als Reflektorkammern. Will man die Bohrungen selbst anbringen, eignet sich dafür ein 5mm Holzbohrer mit aufgesetztem 14mm Versenker. Die stirnseitigen Schneiden des Versenkers sind im Winkel von 45 ° abgeschrägt, dadurch ergeben sich am Boden der Kammern schöne Reflektorflächen. Da der Durchmesser der Bohrlöcher mit 5mm für die LEDs zu klein ist, muss man sie abschließend mit einem größeren Holzbohrer (8mm,..) auf den für die LEDs erforderlichen Durchmesser aufbohren (leider sind im Handel keine 14mm Versenker-Aufsätze für 8mm Bohrer erhältlich). Man kann auch gleich Löcher mit 8mm Durchmesser bohren und dann mit einem Versenker ohne Bohrer auf 14mm Durchmesser aufweiten. Für die Anbringung der Acrylglas-Frontplatte mittels Neodym-Magneten erhält die MDF-Platte am Rand 9 Ausnehmungen (Vertiefungen), welche den Abmessungen der Magneten entsprechen.&lt;br /&gt;
&lt;br /&gt;
Nach Abschluss der Fräs- und Bohrarbeiten wird die MDF-Platte vorderseitig grundiert und weiß spritzlackiert. Wenn man über keine Farbspritzpistole verfügt, verwendet man dafür Spritzfüller und Acryllack aus der Dose - jedoch unbedingt lösungsmittelhaltig und nicht auf Wasserbasis, damit die MDF-Platte nicht aufquillt! Da sich der Farbnebel weiträumig verteilt und überall anlegt, sollten die Spritzarbeiten vorzugsweise im Freien oder in einem leeren, gut belüfteten Nebenraum durchgeführt werden. In geschlossenen Räumen muss mit Atemschutzmaske gearbeitet werden! Wer sich das nicht antun will, kann die MDF-Platte selbstverständlich auch mit Pinsel grundieren und lackieren.&lt;br /&gt;
&lt;br /&gt;
Auf die Rückseite der MDF-Platte wird ein Rahmen aus Alu-U-Profil aufgeschraubt (Baumarkt, 2m Stange auf 4 Stk. mit je 40cm Länge auf Gehrung geschnitten). Er dient als Gehäuse für die Aufnahme der Elektronik und der Verdrahtung.&lt;br /&gt;
&lt;br /&gt;
Weitere mechanische Arbeiten sind:&lt;br /&gt;
&lt;br /&gt;
* Aufkleben der LED-Streifen auf einer Grundplatte. Es werden horizontal 16 Streifen zu je 18 LEDs (60 LEDs/lfm) mit einem vertikalen Abstand von 18,75 mm auf eine Grundplatte aufgeklebt. Vorzugsweise verwendet man dafür Aluminiumblech zur Wärmeableitung. Die LED-Streifen müssen mäanderförmig - jede zweite Reihe um 180° gestürzt - angebracht werden, sodass sich eine schlangenähnliche Anordnung der LEDs ergibt.&lt;br /&gt;
&lt;br /&gt;
* In die Außenflächen der U-Profile werden LED-Strips zur Hintergrundbeleuchtung eingeklebt und zum Schutz vor Staub und mechanischer Beschädigung mit Milchglasstreifchen aus Acrylglas oder Weichplastik abgedeckt ( man kann selbstverständlich auch fertige LED-Kanäle aus dem Handel verwenden).&lt;br /&gt;
&lt;br /&gt;
* Die Platzierung von Platinen, Umgebungslicht-Sensor, Buchsen für Stromzufuhr und PC-Anschluss, ggf. Lautsprecher ist abzuklären;&lt;br /&gt;
&lt;br /&gt;
* Bei Deckenbefestigung wird an der Zimmerdecke das Netzteil der Uhr in einem unscheinbaren Kästchen angebracht. Daran wird die Uhr an 2 Drahtseilen (transparent isolierte Seile aus dem LED-Zubehörhandel) aufgehängt, welche gleichzeitig als Stromzuführung für die LEDs und die Elektronik dienen.&lt;br /&gt;
&lt;br /&gt;
* Die Acrylglas-Frontplatte wird mit magnetischen Pads versehen, mit welchen sie an den Magneten der Montageplatte haftet.&lt;br /&gt;
&lt;br /&gt;
== Wörter und Wortkombinationen ==&lt;br /&gt;
&lt;br /&gt;
Die WordCLock24h stellt die Zeit in Form von Wörtern und Wortkombinationen dar. Dabei sind per Konfiguration verschiedene Darstellungsformen im 12h- und im 24h-Modus auswählbar. Die Auswahl der Darstellungsform sowie der jeweils angezeigten Wörter erfolgt über Tabellen (Arrays), welche untereinander nach Art einer Baumstruktur hierarchisch verknüpft sind.&lt;br /&gt;
 &lt;br /&gt;
Die Inhalte und Verknüpfungen der Tabellen können beispielhaft aus der Access Datenbank WC24h.accdb entnommen werden. Die Datenbank enthält auch ein Formular frm_Anzeigestrings, mit welchem man eine gewünschte Darstellungsform auswählen und die 1440 Wortkombinationen eines 24-Stunden-Tages (24 Std. x 60 Min.) in Listenform anzeigen kann.&lt;br /&gt;
&lt;br /&gt;
Über die Tabelle tbl_modes der obersten Hierarchieebene können folgende Darstellungsformen ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
  1 ES IST HH UHR MM (12)&lt;br /&gt;
  2 ES IST HH UHR MM (24)&lt;br /&gt;
  3 ES IST HH UHR UND MM MINUTEN (12)&lt;br /&gt;
  4 ES IST HH UHR UND MM MINUTEN (24)&lt;br /&gt;
  5 ES IST MM MINUTEN NACH HH UHR (12) NACHTS&lt;br /&gt;
  6 ES IST MM MINUTEN NACH HH UHR (24)&lt;br /&gt;
  7 OSSI  - ES IST MM NACH HH (12) &lt;br /&gt;
  8 OSSI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
  9 OESI - ES IST MM NACH HH UHR (12) - OESI&lt;br /&gt;
 10 OESI - ES IST MM NACH HH UHR (12) NACHTS &lt;br /&gt;
 11 RHEIN/RUHR - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 12 RHEIN/RUHR - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 13 SCHWABEN - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 14 SCHWABEN - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 15 WESSI - ES IST MM MINUTEN NACH HH (12) &lt;br /&gt;
 16 WESSI - ES IST MM MINUTEN NACH (12) NACHTS &lt;br /&gt;
 17 COUNTDOUWN - ES IST MM MINUTEN VOR MITTERNACHT&lt;br /&gt;
 18 TEMPERATUR - &amp;quot;ES IST CC GRAD (&amp;quot;WARM&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung um Modi mit anderen Wortkombinationen ist jederzeit möglich.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle tbl_modes greift auf die Datensätze der Tabellen tbl_it_is, tbl_hours und tbl_minutes zurück, in welchen die Referenz-Indizes für die jeweils für die Stunden und Minuten zu verwendenden Wortkombinationen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Diese Referenz-Indizes beziehen sich ihrerseits auf die Indizes der Tabelle tbl_words der untersten Hierarchieebene, in welcher die Position und Anzahl der für die Darstellung der jeweiligen Wörter einzuschaltenden LEDs festgehalten ist.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Tabelle (Array) werden nacheinander die Bitmuster für die Wörter der anzuzeigenden Uhrzeit ausgelesen und seriell in die Schieberegister der Leuchtdioden eingespeist.&lt;br /&gt;
&lt;br /&gt;
Die zip-Dateien wc24h1816_V3_Office_2003.zip und wc24h1816_V3_Office_2010.zip enthalten jeweils eine Excel und eine Access-Datenbank-Datei, in welchen ein Layout der Frontplatte sowie Tabellen mit den Positionsnummern der den einzelnen Wörtern zugeordneten LEDs enthalten sind.&lt;br /&gt;
&lt;br /&gt;
== Verifikation, Validierung, Code-Generator ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_Mock-up.jpeg|miniatur|Mock-up]] Bevor Frontplatten erstellt werden, erfolgt eine Prüfung der Buchstabenanordnung und der Tabellen für alle oben genannten Modi mit einer Simulation (Mock-up in C#.net, siehe Bild).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der aktuelle Stand&#039;&#039;&#039; der Steuer-Tabellen kann auch online anhand von exemplarischen Uhrzeiten überprüft werden.&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/TorstenC/94bc7ebb091784a2a1ad/raw/WC24h_16x16_Test.html WC24h_16x16_Test.html] auf GitHub&lt;br /&gt;
* [https://rawgit.com/TorstenC/1a59b9c73730eb8e144d/raw/WC24h_18x16_Test.html WC24h_18x16_Test.html] auf GitHub&lt;br /&gt;
&lt;br /&gt;
Auf diesen &#039;&#039;&#039;statischen&#039;&#039;&#039; HTML-Seiten gibt es für jeden Modus 60 Exemplarische Uhrzeiten:&lt;br /&gt;
  00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verifikation&#039;&#039;&#039;: Sind die Formulierungen und Wort-Anordnungen wie gewünscht?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Validierung&#039;&#039;&#039;: Sind die Steuer-Tabellen fehlerfrei?&lt;br /&gt;
&lt;br /&gt;
[[Datei:WC24h_uclock_de.png|miniatur|Interaktive WordClock24h]] Hier kann man sich &#039;&#039;&#039;interaktiv&#039;&#039;&#039; durch die Uhrzeiten klicken:&lt;br /&gt;
&lt;br /&gt;
* [http://uclock.de/ uclock.de]&lt;br /&gt;
Der Stand des Frontplatten-Layouts ist hier 08.12.2014.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wordclock2-cfg.png|miniatur|rechts|WordClock2 Exe Konfiguration]] Hier gibt es eine  Windows-Anwendung mit Simulationsmodus (ändern des Modus/Stunde/Minute per Taste) die auch als Screensaver benutzt werden kann nach umbennen der Exe:&lt;br /&gt;
&lt;br /&gt;
* [https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip https://rawgit.com/code-creator/wordclock2scrnv/master/WordClock2.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Mock-up in C#.net ist auch ein &#039;&#039;&#039;Code-Generator&#039;&#039;&#039; integriert. Für µCs mit Von-Neumann-Architektur und Havard-Architektur werden unterschiedliche Dialekte benötigt, z.B. mit &amp;quot;progmem&amp;quot; für einige gcc-Toolketten.&lt;br /&gt;
&lt;br /&gt;
* [https://gist.github.com/TorstenC/aec0724be4afcd1d7545 Codegenerator-Funktion] bei GitHub&lt;br /&gt;
* [https://gist.github.com/TorstenC/c45751a699af50fe9e64 tables.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/c45751a699af50fe9e64/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/620741027bf23899012a display.h (Von-Neumann, 18 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/620741027bf23899012a/raw/display.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/0e44b1a5e11ba0dcd3d7 tables.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/0e44b1a5e11ba0dcd3d7/raw/tables.h Ziel speichern unter…])&lt;br /&gt;
* [https://gist.github.com/TorstenC/362a97d2c74a6b522fd6 display.h (Von-Neumann, 16 x 16)] bei GitHub ([https://gist.githubusercontent.com/TorstenC/362a97d2c74a6b522fd6/raw/display.h Ziel speichern unter…])&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*Wordclock 16 x 16 LED-Matrix, 32 cm x 32 cm :*&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16.zip]]             16x16 Matrix, MS Office 2007/2010-Dateien, Update 28.11.2014&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16 Office 2003.zip]] 16x16 Matrix, MS Office 2002/2003-Dateien, Update 28.11.2014&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h16x16_Bohr_&amp;amp;_Positionierschablone_32x32cm.zip]]  Bohr- und Positionierungsschablone für 16 x 16 Matrix (20mm x 20mm Raster)&lt;br /&gt;
&lt;br /&gt;
*Wordclock 18 x 16 Matrix, 30 cm x 30 cm:*&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Office_2010.zip]] 18x16 Matrix, MS Office 2000/2003-Dateien (MS Access .accdb), Excel .xlsx), hochgeladen 05.02.2015 08:30&lt;br /&gt;
&lt;br /&gt;
* [[Datei:wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip]] Frontplattenvorlage Maßstab 1:1 als pdf-Datei für Siebdruck, 450mm x 450 mm, 18x16 Matrix, Schriftfont &amp;quot;Arial&amp;quot;, Update 02.02.2015&lt;br /&gt;
&lt;br /&gt;
* [[Datei:WC24h18x16_Bohrplan_Frontplatte_45x45cm.pdf]]  Bohr- und Frässchablone Maßstab 1:1 für  MDF-Montageplatte 450mm x 450 mm, 18x16 Matrix, Update 11.12.2014&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87119</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87119"/>
		<updated>2015-02-05T08:29:45Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=87115</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=87115"/>
		<updated>2015-02-04T12:19:52Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87114</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87114"/>
		<updated>2015-02-04T12:19:00Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87106</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87106"/>
		<updated>2015-02-04T11:46:05Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=87105</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=87105"/>
		<updated>2015-02-04T11:45:17Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=87078</id>
		<title>Datei:Wc24h1816 V3 Office 2003.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2003.zip&amp;diff=87078"/>
		<updated>2015-02-04T08:59:55Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2003.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87077</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87077"/>
		<updated>2015-02-04T08:58:50Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip&amp;diff=87061</id>
		<title>Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Frontplatte_Arial_45x45cm.pdf.zip&amp;diff=87061"/>
		<updated>2015-02-03T13:58:25Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Frontplatte Arial 45x45cm.pdf.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87058</id>
		<title>Datei:Wc24h1816 V3 Office 2010.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Wc24h1816_V3_Office_2010.zip&amp;diff=87058"/>
		<updated>2015-02-03T13:00:30Z</updated>

		<summary type="html">&lt;p&gt;Herb3472: Herb3472 lud eine neue Version von „Datei:Wc24h1816 V3 Office 2010.zip“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WordClock 24h V3 - 18x16 Matrix 45x45cm Frontplattenvorlage für Siebdruck&lt;/div&gt;</summary>
		<author><name>Herb3472</name></author>
	</entry>
</feed>