{"id":4029,"date":"2019-06-05T07:55:48","date_gmt":"2019-06-05T07:55:48","guid":{"rendered":"http:\/\/fambach.net\/?p=4029"},"modified":"2026-10-04T21:20:40","modified_gmt":"2026-10-04T21:20:40","slug":"arduino-schach-uhr","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/arduino-schach-uhr\/","title":{"rendered":"Arduino Chess Clock"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Contents\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Funktionsweise_der_Uhr\" >Funktionsweise der Uhr<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Vorarbeiten\" >Preliminary work<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Entwicklung\" >Entwicklung<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Erster_Display-Test\" >Erster Display-Test<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Mit_zwei_Displays\" >Mit zwei Displays<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Serienreife_%F0%9F%98%89\" >Serienreife \ud83d\ude09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#So_sieht_es_nun_aus\" >So sieht es nun aus<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Fazit\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Ausblick\" >Ausblick<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Probleme\" >Problems<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Reset_lost_selbst_aus\" >Reset l\u00f6st selbst aus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#2_Display_zeigt_nichts_an_oder_Init_schlagt_fehl\" >2. Display zeigt nichts an oder Init schl\u00e4gt fehl<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Verwandte_Beitrage\" >Related Posts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/#Quellen\" >Sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Beim Mittagessen mit den Kollegen ist mir eine Idee gekommen. Die beiden  spielen Schach w\u00e4hrend der Mittagspause und um das Ganze etwas spannender zu gestalten, habe ich eine Schachuhr vorgeschlagen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Somit ist die Idee entstanden, eine Schachuhr bestehend aus zwei Anzeigen f\u00fcr die jeweilige Uhrzeit, zwei Kn\u00f6pfen zum Starten und Stoppen der Uhrzeit sowie einem Arduino f\u00fcr die Steuerung zu bauen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"funktionsweise-der-uhr\"><span class=\"ez-toc-section\" id=\"Funktionsweise_der_Uhr\"><\/span>Funktionsweise der Uhr<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Schachuhr besteht meist aus zwei Uhrwerken, die gegeneinander verriegelt sind. Jedes Uhrwerk z\u00e4hlt die Zeit, die ein Spieler braucht, um seinen Zug zu machen. Ist ein Spieler mit seinem Zug fertig, dr\u00fcckt er einen Knopf, die eigene Uhr stoppt und die des Gegners z\u00e4hlt weiter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ich hatte gleich viele zus\u00e4tzliche Ideen f\u00fcr solch eine Uhr und wie das mit gro\u00dfen Mengen an Ideen so ist, bleiben diese meist eine und werden nie umgesetzt. Also habe ich mich entschlossen, einen m\u00f6glichst einfachen Aufbau zu w\u00e4hlen und die \u201eFeatures\u201c auf sp\u00e4ter zu verschieben. F\u00fcr die Schachuhr ben\u00f6tige ich folgende Bestandteile:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Arduino Uno or similar<\/li><li>Prototyp Platine<\/li><li>2x SSD 1306 Display<\/li><li>2x Taster (beliebig)<\/li><li>Ein paar Pinheader Kabel f\u00fcr den Prototypen<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nachfolgend eine kurze Beschreibung der Funktion:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Ein Spieler muss als erstes seine Taste dr\u00fccken, um zu starten (Sagen wir Spieler 1 f\u00e4ngt an).<\/li><li>Ist Spieler 1 mit seinem Zug fertig, dr\u00fcckt er seinen Knopf (Taster 1)<\/li><li>Die Uhr von Spieler 1 h\u00e4lt an und die von Spieler 2 l\u00e4uft los.<\/li><li>Ist Spieler 2 mit seinem Zug fertig, dr\u00fcckt er seinen Knopf (Taster 2).<\/li><li>Die Uhr von Spieler 2 h\u00e4lt an und die von Spieler 1 l\u00e4uft weiter<\/li><li>\u2026 usw. Ein langes Dr\u00fccken (5 sec) beider Tasten setzt beide Uhren auf den Start (12:00 Uhr) zur\u00fcck. <\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vorarbeiten\"><span class=\"ez-toc-section\" id=\"Vorarbeiten\"><\/span>Preliminary work<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ich verwende zwei SSD 1306 128\u00d764 Pixel Displays. Wenn man keine Displays mit unterschiedlicher Adresse besitzt, ist ein kleiner Umbau des 2. Displays n\u00f6tig. In meinem Fall war es n\u00f6tig, einen SMD Widerstand auf der R\u00fcckseite umzul\u00f6ten. Damit wird die Adresse des Displays von 0x3C auf 0x3D ge\u00e4ndert:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"538\" height=\"495\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/image.png\" alt=\"\" class=\"wp-image-4032\"><figcaption>Bild des Herstellers <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Praktischer sind Displays mit Jumpern, da die SMD-L\u00f6terei ein ganz sch\u00f6nes \u201eGefriemel\u201c ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"entwicklung\"><span class=\"ez-toc-section\" id=\"Entwicklung\"><\/span>Entwicklung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hier m\u00fcssen einige Komponenten und Bibliotheken zusammenarbeiten, deshalb bin ich in zwei Schritten vorgegangen. Als erstes wurde ein einfacher Versuchsaufbau mit einem Display realisiert. Dieser wurde dann im zweiten Schritt  auf die beschriebene Gesamtfunktionalit\u00e4t erweitert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"erster-display-test\"><span class=\"ez-toc-section\" id=\"Erster_Display-Test\"><\/span>Erster Display-Test<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Im ersten Schritt wird \u00fcber einen Timer das Display angesteuert, ein Taster erm\u00f6glicht das Zur\u00fccksetzen auf 0. Hier galt es herauszufinden, wie das Display die analoge Uhr anzeigt und wie der Timer zu implementieren ist.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bibliotheken\">Libraries<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die Display Ansteuerung werden die folgenden beiden Bibliotheken verwendet. Ich habe das SSD1306 Display schon einmal getestet, den Beitrag findet ihr <span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c\/\" class=\"ub-content-link__anchor\">here<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/adafruit\/Adafruit-GFX-Library\" class=\"ub-content-link__anchor\">https:\/\/github.com\/adafruit\/Adafruit-GFX-Library<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\/blob\/master\/Adafruit_SSD1306.cpp\" class=\"ub-content-link__anchor\">https:\/\/github.com\/adafruit\/Adafruit_SSD1306\/blob\/master\/Adafruit_SSD1306.cpp<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n\n\n<h4 class=\"wp-block-heading\" id=\"verkabelung\">Verkabelung<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306DisplayTest_bb.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"1185\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306DisplayTest_bb.png\" alt=\"Verdrahtung Arduino Uno mit einem Display und einem Taster\" class=\"wp-image-4057\"><\/a><figcaption>Verdrahtung Arduino Uno mit einem Display und einem Taster<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"programmierung\">Programming<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Nachfolgend der Link zum Download des fertigen Programms. Evtl. muss die Adresse des Displays angepasst werden. <\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306DisplayTest.zip\">ChessWatchArduino2SSD1306DisplayTest<\/a><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306DisplayTest.zip\" class=\"wp-block-file__button ub-status-button ub-status-button--ok\" download>Download<\/a><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"so-sieht-es-aus\">This is what it looks like<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2194\" height=\"2043\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537.jpg\" alt=\"\" class=\"wp-image-4044\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537.jpg 2194w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537-300x279.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537-1024x954.jpg 1024w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537-768x715.jpg 768w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537-1536x1430.jpg 1536w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537-2048x1907.jpg 2048w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/wp-15597069094045543122924637385537-13x12.jpg 13w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Eine Uhr, ein Taster auf Prototypplatine<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mit-zwei-displays\"><span class=\"ez-toc-section\" id=\"Mit_zwei_Displays\"><\/span>Mit zwei Displays<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Es folgt die Ansteuerung des 2. Displays. Der zweite Taster  vervollst\u00e4ndigt die Schachuhr. Zus\u00e4tzlich kommt der Wechsel der beiden Timer und die Reset-Funktion hinzu.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bibliotheken-1\">Libraries<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die Bibliotheken sind die gleichen. Ich musste jedoch die Adafruit_SSD1206.h anpassen. Damit f\u00fcr beide Displays nur einmal der Speicher f\u00fcr den Bildschirm reserviert wird, habe ich die buffer Variable auf static gesetzt. Der Grund hierf\u00fcr ist, ich hatte versucht, die Bibliothek so zu verwenden, wie sie ist, allerdings reichte der Speicher meines Arduino Unos daf\u00fcr nicht aus.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"verkabelung-1\">Verkabelung<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306Prototyp_bb.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"1293\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306Prototyp_bb.png\" alt=\"Arduino mit zwei Displays und zwei Schaltern\" class=\"wp-image-4059\"><\/a><figcaption>Arduino mit zwei Displays und zwei Schaltern<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"programmierung-1\">Programming<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Hier kann das Programm heruntergeladen werden, ich habe es um den zweiten Taster sowie das zweite Display erweitert und hierf\u00fcr die Funktionen noch etwas angepasst.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306Prototyp.zip\">ChessWatchArduino2SSD1306Prototyp<\/a><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306Prototyp.zip\" class=\"wp-block-file__button ub-status-button ub-status-button--ok\" download>Download<\/a><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"so-sieht-es-aus-1\">This is what it looks like<\/h4>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/photos.app.goo.gl\/kKm4CsZJqG3E2mxX8\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"serienreife\"><span class=\"ez-toc-section\" id=\"Serienreife_%F0%9F%98%89\"><\/span>Serienreife \ud83d\ude09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nach prototypischen Tests mit den Kollegen habe ich alles mal in ein Geh\u00e4use gepackt. Bei den Tests hat sich herausgestellt, dass eine Stop Taste von Vorteil w\u00e4re. Diese plus einen An\/Aus Schalter habe ich hinzugef\u00fcgt. Zus\u00e4tzlich gibts ein Batteriefach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da die Taster manchmal nur z\u00f6gerlich reagieren, h\u00e4tte ich diese gerne per Interrupt abgefragt. Der Arduino bietet nur zwei Interrupts, diese liegen auf Pin 2 und 3. Leider habe ich die Kabel f\u00fcr die Taster schon angel\u00f6tet und das Geh\u00e4use verklebt, so dass ich zur Besserung nur das Delay von 200 Millisekunden rausgenommen habe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"so-sieht-es-nun-aus\"><span class=\"ez-toc-section\" id=\"So_sieht_es_nun_aus\"><\/span>So sieht es nun aus<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213159.jpg\" alt=\"\" data-id=\"4185\" data-link=\"https:\/\/fambach.net\/arduino-schach-uhr\/20190612_213159\/\" class=\"wp-image-4185\"><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"2206\" height=\"1546\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228.jpg\" alt=\"\" data-id=\"4186\" data-link=\"https:\/\/fambach.net\/arduino-schach-uhr\/20190612_213228\/\" class=\"wp-image-4186\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228.jpg 2206w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228-300x210.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228-1024x718.jpg 1024w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228-768x538.jpg 768w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228-1536x1076.jpg 1536w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228-2048x1435.jpg 2048w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213228-18x12.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1911\" height=\"1958\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303.jpg\" alt=\"\" data-id=\"4187\" data-link=\"https:\/\/fambach.net\/arduino-schach-uhr\/20190612_213303\/\" class=\"wp-image-4187\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303.jpg 1911w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303-293x300.jpg 293w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303-999x1024.jpg 999w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303-768x787.jpg 768w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303-1499x1536.jpg 1499w, https:\/\/www.fambach.net\/wp-content\/uploads\/2019\/06\/20190612_213303-12x12.jpg 12w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Hier der endg\u00fcltige Code:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306PrototypV2-1.zip\">ChessWatchArduino2SSD1306PrototypV2<\/a><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/06\/ChessWatchArduino2SSD1306PrototypV2-1.zip\" class=\"wp-block-file__button ub-status-button ub-status-button--ok\" download>Download<\/a><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Uhr funktioniert, auch wenn es sicherlich besser geht. Nachdem  ich sie in ein Geh\u00e4use eingebaut habe, sieht sie auch etwas besser aus ;). <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ausblick\"><span class=\"ez-toc-section\" id=\"Ausblick\"><\/span>Ausblick<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hier noch ein paar Ideen, die ich hatte, aber wegen Zeitmangel nicht umgesetzt habe:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Man kann eine maximale Zeit vorgeben<ul><li>Auspr\u00e4gung 1 ab dann gibt es Minuspunkte<\/li><li>Auspr\u00e4gung 2 der Zug ist um<\/li><li>Zusatz: Die jeweilige Uhr warnt n Minuten vor Ablauf der Zeit<ul><li>ein Bildschirm flackert<\/li><li>es erklingt ein Ton<\/li><\/ul><\/li><\/ul><\/li><li>Ticken der Sekunden auf Buzzer\/Lautsprecher ausgeben<\/li><li>Umsetzung mit einem ESP anstatt eines Arduinos und einer Statistik Website, welche die Zeiten auswertet. Per Handy (WLAN) ist diese anzeigbar.<\/li><li>\u2026<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"probleme\"><span class=\"ez-toc-section\" id=\"Probleme\"><\/span>Problems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reset-loest-selbst-aus\"><span class=\"ez-toc-section\" id=\"Reset_lost_selbst_aus\"><\/span>Reset l\u00f6st selbst aus<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ich hatte das Problem bei pinMode(RESET1, INPUT), dass der Reset manchmal einfach so ausgel\u00f6st hat. Deshalb habe ich den Code auf pinMode(RESET1, INPUT_PULLUP) umgestellt und frage den Taster mit !digitalRead(RESET1) ab. Dies funktioniert bis jetzt ohne Fehler.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-display-zeigt-nichts-an-oder-init-schlaegt-fehl\"><span class=\"ez-toc-section\" id=\"2_Display_zeigt_nichts_an_oder_Init_schlagt_fehl\"><\/span>2. Display zeigt nichts an oder Init schl\u00e4gt fehl<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der Arduino Uno hat nicht gen\u00fcgend Speicher, um beide Displays zu betreiben. Ich habe in Adafruit SSD1306 Lib in den Projekt Ordnern ein paar \u00c4nderungen vorgenommen, so dass der Bildschirmbuffer nur einmal initialisiert wird (static uint8_t *buffer). Dies hat bei mir gereicht, um das zweite Display zu betreiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"verwandte-beitraege\"><span class=\"ez-toc-section\" id=\"Verwandte_Beitrage\"><\/span>Related Posts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<ul class=\"display-posts-listing\"><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/ulanzi-tc001-smart-pixel-clock\/\">Ulanzi TC001 Smart Pixel Clock<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/arduino-esp8266-zusatzplatine-6\/\">ESP8266 Colourful Weather Station AZSMZ V1.8<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-rgb-led-einzeln\/\">D1 Mini Shield \u2013 RGB LED (Einzeln)<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/preview-heltec-cube-cell-board-mit-lora-wan\/\">Preview \u2013 Heltec Cube Cell Board mit LoRa Wan<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/preview-rundes128-zoll-tft-lcd-display\/\">Preview \u2013 Rundes1,28 zoll TFT LCD Display<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-rgb-led\/\">D1 Mini Shield \u2013 RGB LED<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-i2c-connector\/\">D1 Mini Shield \u2013 I2C Connector<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-matrix-led-shield\/\">D1 Mini Shield \u2013 Matrix LED Shield<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-oled-64x48\/\">D1 Mini Shield \u2013 Oled 64\u00d748<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/\">D1 Mini Shield \u2013 Buzzer (Pipser)<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quellen\"><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Sources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/forum.arduino.cc\/index.php?topic=248603.0\" class=\"ub-content-link__anchor\">https:\/\/forum.arduino.cc\/index.php?topic=248603.0<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\" class=\"ub-content-link__anchor\">https:\/\/github.com\/adafruit\/Adafruit_SSD1306<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/adafruit\/Adafruit-GFX-Library\" class=\"ub-content-link__anchor\">https:\/\/github.com\/adafruit\/Adafruit-GFX-Library<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/michaelsarduino.blogspot.com\/2016\/02\/oled-analog-uhr.html\" class=\"ub-content-link__anchor\">https:\/\/michaelsarduino.blogspot.com\/2016\/02\/oled-analog-uhr.html<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/bitbank2\/Multi_OLED\" class=\"ub-content-link__anchor\">https:\/\/github.com\/bitbank2\/Multi_OLED<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Beim Mittagessen mit den Kollegen ist mir eine Idee gekommen. Die beiden spielen Schach w\u00e4hrend der Mittagspause und um das Ganze etwas spannender zu gestalten, habe ich eine Schachuhr vorgeschlagen. Somit ist die Idee entstanden, eine Schachuhr bestehend aus zwei Anzeigen f\u00fcr die jeweilige Uhrzeit, zwei Kn\u00f6pfen zum Starten und Stoppen der Uhrzeit sowie einem &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-buzzer-pipser\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"D1 Mini Shield &#8211; Buzzer (Pipser)\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":4064,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[214,178,222,169],"tags":[57,94,46,83],"class_list":["post-4029","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-displays","category-arduino-projekte","category-i2c-wire","category-taster-potentiometer","tag-displays","tag-arduino-projekte","tag-i2c-wire","tag-taster-potentiometer","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=4029"}],"version-history":[{"count":33,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4029\/revisions"}],"predecessor-version":[{"id":18074,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4029\/revisions\/18074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/4064"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=4029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=4029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=4029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}