HowTo: Arduino – Timer „time_timy“ zur Visualisierung von Zeitdauern bauen

Das 3D gedruckte Gehäuse der „pxlDigits“ war anfangs gar nicht dazu Gedacht „nur“ eine 7-Segment-Anzeige mit WLAN zu sein.

Ursprünglich habe ich daraus eine Art Timer aus einer Zwei-Ziffern-7-Segment-Anzeige für eine Freundin von mir gebaut. Sie ist Grundschullehrerin und hatte das Problem, dass sie für Ihre Schüler eine Zeit-Anzeige brauchte die auch von Schülern gelesen werden kann, die noch nicht in der Lage sind Zahlen zu lesen und/oder Zeiträume einzuschätzen.

Für diesen Fall ist die Anzeige der Zahlen über die 7-Segment-Anzeige natürlich ungeeignet. Deswegen wurde die Anzeige um einen 1m langen LED-Streifen aus WS2812 LEDs und einen Drehencoder erweitert. Über den Drehencoder lässt sich dann die Zeit einstellen, dessen Zeitraum ablaufen soll.

Sobald eine Zeit eingestellt ist läuft diese automatisch runter. Der LED Streifen leuchtet dabei zum Anfang vollständig. Mit der ablaufenden Zeit wird die Anzahl der leuchtenden LEDs auf dem LED Streifen verringert. Außerdem färbt sich die Farbe des LED-Streifens von Grün nach Rot.

Hier lässt sich das Prinzip recht gut erkennen. 🙂

Im Prinzip wird durch diesen LED-Streifen also die ablaufende Zeit visuell dargestellt. Ähnlich wie an einem Ladebalken an einem Computer. So kann die die verbleibende Zeit für eine Schulaufgabe auch von Schülern abgelesen werden die noch Schwierigkeiten mit den Zahlen haben. 

Wie Ihr diesen „time_timy“ getauften Timer nachbauen könnt, ist im folgenden Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Für den Aufbau müsst ihr SMD Lötaufgaben bewältigen. Die folgenden Artikel enthalten Tipps dazu.

Benötigtes Werkzeug:

Benötigtes Material:


Die benötigten Teile sammeln

Für den Aufbau Eures eigenen time_timy Müsst Ihr natürlich zunächst die benötigten Teile sammeln.

Für den Aufbau benötigt Ihr die folgenden Teile.


Schaltplan

Im folgenden seht Ihr den Schaltplan wie die einzelnen Komponenten miteinander verdrahtet werden.

Übersicht des gesamten Schaltplans.

Nahaufnahme der Sieben-Segment Anzeige.

Nahaufnahme des Arduino Nanos inkl. der Angeschlossenen Komponenten.

Nahaufnahme des Arduino Nanos inkl. der Angeschlossenen Komponenten.


Gewindeeinsätze in die Basis einlegen

Damit das Gehäuse später mit einem Deckel verschlossen werden kann, wird dieser nun vorbereitet.

Setzt die M3 Gewindeeinsätze dazu…

…mithilfe eines Lötkolbens…

…in die gezeigte Aussparung im Gehäuse ein.

Je nach Qualität der Gewindeeinsätze lohnt es sich nun nochmal mit einem Gewindeschneider die Gewindegänge des Gewindeeinsatzes „frei zu schneiden“.

Falls Ihr aber keinen Gewindeschneider zur Hand habt, könnt Ihr diesen Schritt auch überspringen.

Zum Test könnt Ihr den Deckel mithilfe der M3x6 Senkkopfschraube mit dem Gehäuse verschrauben.

Weitere Ansicht des verschraubten Deckels.


Digits mit der Basis verschrauben

Nachdem Ihr den Deckel wieder geöffnet habt, könnt Ihr nun die Sieben Segment Ziffern mit dem Gehäuse verschrauben.

Führt die Zuleitung zu den Sieben-Segment-Ziffern dazu wie gezeigt durch die Löcher im Gehäuse…

…und verschraubt sie mit jeweils zwei M3x6 Senkkopfschrauben aus dem Inneren des Gehäuses heraus.

Achtet dabei darauf, dass die Schrauben halten indem diese sich ein Gewinde in den Kunststoff der Sieben-Segment-Anzeigen schneiden. Da dieser sehr dünn ist, müsst Ihr hier besonders vorsichtig sein und dürft die Schrauben nicht zu fest anziehen.

Sobald Ihr beide Ziffern verschraubt habt, könnte Euer Aufbau so aussehen.


Encoder für den Einbau vorbereiten

Über den Drehencoder lässt sich später die Anzuzeigende Zeitdauer einstellen und ggf. auch Zurücksetzen. Damit dies funktioniert muss der Drehencoder über ein kurzes Stück Leitung mit dem Arduino verbunden werden.

Um den Anschluss des Drehencoders vorzubereiten, solltet Ihr nun zunächst die Leitung daran anschließen.

Dazu solltet Ihr die Enden der einzelnen Leitungen ca. 5mm weit abisolieren und mit etwas Lötzinn verzinnen.

Wiederholt dies auch schon für das andere Ende der Leitungen.

Weitere Ansicht der abisolierten und verzinnten Leitungen.

Nun könnt Ihr auch die Kontakte am Drehencoder vorbereiten indem Ihr sie mit etwas Lötzinn verzinnt.

Danach könnt Ihr die vorbereitete Leitung wie abgebildet mit den Kontakten des Drehencoders verlöten.


Arduino Nano zum Verlöten vorbereiten

In diesem Schritt werden ein paar erste Lötaufgaben am Arduino Nano durchgeführt.

Dazu solltet Ihr zunächst…

…die gezeigten Kontakte am Arduino Nano mit etwas Lötzinn verzinnen.

Verzinnt also die folgenden Kontakte.

  • +5V
  • GND
  • D2
  • D3
  • D4
  • D5
  • D6

Die Anschlussleitung für den Anschluss des LED-Streifens könnt Ihr nun auch abisolieren und dessen Enden verzinnen.

Dann könnt Ihr zunächst die Anschlussleitung des Drehencoders mit…

…dem Arduino Nano verlöten.

Dabei solltet Ihr Euch an die im Bild dargestellte Farbkodierung halten. (Vorausgesetzt Ihr habt die einzelnen Leitungen auch wie oben gezeigt an den Drehencoder angeschlossen.)

Die Leitungen zur Energieversorgung der Sieben-Segment-Ziffern könnt Ihr nun schonmal zusammenfassen…

… und miteinander verlöten.

Die Anschlussleitung zum Anschluss des LED-Streifens solltet Ihr noch um ca. 10cm verlängern. 🙂

Dan könnt Ihr die Anschlussleitung für den LED-Streifen in durch die Bohrung in der Seite des Gehäuses einfädeln.

Ihr habt nun also die Anschlussleitungen für den Drehencoder und die beiden Sieben-Segment-Ziffern vorbereitet.


Arduino Nano mit den Leitungen verlöten

Nachdem Ihr die Leitungen der anzuschließenden Komponenten vorbereitet habt, geht es nun an den Anschluss des Arduino Nano.

Dazu solltet Ihr nun die vorbereiteten Leitungen wie abgebildet anlöten.

Die Leitungen könnt Ihr dazu nach folgendem Schema verlöten.

FunktionArduino Pin
Digit InputD5
LED-Streifen InputD6
Encoder A pinD3
Encoder B pinD2
Encoder ButtonD4
Digit 5V5V
Digit GNDGND
Encoder GNDGND

Ansicht des angelöteten Drehencoders.

Um die angelöteten Leitungen mechanisch etwas zu stabilisieren und auch zu isolieren, könnt Ihr die Lötpunkte nun mit etwas Heißkleber verkleiden.

Das gleich könnt Ihr auch für den Drehencoder wiederholen.


Gehäuse zusammensetzen

Nachdem alle elektrischen Verbindungen abgeschlossen sind, könnt Ihr die einzelnen Komponenten in das Gehäuse einbauen.

Dazu solltet Ihr den Arduino Nano wie gezeigt…

…so in die Aussparung…

des Gehäuses kleben, dass…

…der USB-Anschluss des Wemos D1 Mini von außen zugänglich ist.

Den Drehencoder könnt Ihr dann mithilfe der Mutter in der Bohrung des Deckels befestigen.

Den Deckel könnt Ihr dann mithilfe der zwei M3 Senkkopfschrauben mit der Basis verschrauben.

Weitere Ansicht des zusammengesetzten Gehäuses.

Weitere Ansicht des zusammengesetzten Gehäuses.

Weitere Ansicht des zusammengesetzten Gehäuses.

Zu guter Letzt könnt Ihr noch einen Drehknopf…

…auf die Drehachse des Drehencoders setzen.

Weitere Ansicht des aufgesteckten Drehknopfes.


Alternative LED-Segment Abdeckung anbringen

Mir ist aufgefallen, dass die Frontblenden aus Papier zur Abdeckung der LEDs in den sieben Segment Ziffern mit der Zeit an Haftkraft verlieren.

Eine Alternative Lösung für die Frontblenden mithilfe 3D gedruckter Blenden ist auch in dem Artikel Elektronik – Sieben Segment Ziffer „pxlDigit“ aus WS2812 LED’s bauen beschrieben.


Optional: Summer anbringen

Falls Ihr zusätzlich zu der optischen Benachrichtigung auch noch akustisch darüber informiert werden wollt, wenn die eingestellte Zeit des Timers abgelaufen ist, könnt Ihr auch noch einen Summer verbauen.

Dazu benötigt Ihr einen 5V Tongeber/Summer/Buzzer, zwei ca. 20cm lange Schrumpfschläuche und zwei Leitungen von ca. 10cm länge.

Weitere Ansicht der benötigten Teile.

Zum Einbau des Summers müsst Ihr zunächst nochmal das Gehäuse öffnen.

Bereitet dann die Leitungen vor, indem Ihr die Enden jeweils ca. 5mm weit abisoliert und mit etwas Lötzinn verzinnt.

Nun könnt Ihr die vorbereiteten Leitungen mit den Kontakten des Summers…

…verlöten.

Nahaufnahme der angelöteten Leitungen.

Nahaufnahme der angelöteten Leitungen.

Mithilfe der Schrumpfschläuche könnt Ihr die Kontaktstellen dann gegen Kurzschlüsse sichern.

Neben dem Drehencoder ist noch eine Bohrung im Deckel vorhanden.

Hinter dieser wird der Summer später angebracht.

Nahansicht der Bohrung.

Nun geht es aber zunächst an den Anschluss des Summers.

Verzinnt dazu die Kontakte „A1“ und „A2“ des Arduino Nanos mit etwas Lötzinn.

Dann könnt Ihr die Anschlussleitungen des Buzzers – wie abgebildet – mit dem Arduino Nano verlöten.

Euer Aufbau sollte nun in etwa so aussehen.

Nun müsst Ihr den Summer mit etwas Heißkleber so über der Bohrung fixieren, dass das Loch im Summer mit der Bohrung im Deckel deckungsgleich ist.

Der verklebte Summer sollte dann in etwa…

… so aussehen.

Wichtig ist, dass das Loch im Summer Deckungsgleich mit der Bohrung im Deckel ist und auch kein Heißkleber das Loch im Summer verdeckt.

Nur so können die Geräusche des Summers auch nach außen dringen.

Weitere Ansicht.

Danach könnt Ihr den Deckel wieder mit dem Gehäuse verschrauben.

Software mit der Arduino IDE aufspielen

Den Arduino Code zum Betrieb des „time_timy“ findet Ihr im folgenden Git-Repository.

Wie Ihr Dateien aus einem Git Repository herunterladen könnt ist im Artikel GitHub – Wie kopiere ich Dateien aus einem Git-Repository auf meinen Computer  beschrieben.

Tipps zur Programmierung des Arduino Codes auf den Arduino Nano findet Ihr auch in dem Artikel ArduinoIDE – Tipps und Tricks.


Den LED-Streifen anbringen

Leider habe ich keine Fotos vom kompletten Aufbau inkl. des LED-Streifens. Eine ganz gute Übersicht des kompletten Aufbaus bekommt Ihr aber auch in dem folgenden Video.

Den LED-Streifen müsst Ihr nur an den vorbereiteten Anschluss anstecken. Oft werden diese LED-Streifen inkl. des hier verwendeten Steckers ausgeliefert. Euer LED-Streifen sollte dazu aus 90 WS2812 LEDs bestehen. Falls Ihr mehr oder weniger LEDs verwendet könnt Ihr diese Anzahl im Arduino Code mithilfe des Parameters „NUMPIXELS_BAR“ anpassen.


Stromversorgung

Den „time_timy“ könnt Ihr über die USB-Buchse des Arduino Nano versorgen. Achtet dabei darauf, dass das Netzteil welches Ihr verwendet gegen Überspannungen, Überstrom, Kurzschluss und alle anderen möglicherweise auftretenden Fehlerfälle gesichert ist. Ein Netzteil, dass Ihr nutzen könnt habe ich auch in der Materialliste verlinkt.

Der Stromverbrauch der LEDs ist mithilfe der Konfiguration in dem Arduino Sketch verringert. Diese Werte solltet Ihr nicht verändern, ohne die Stromversorgung angepasst zu haben.


Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

Fab

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.