Inhaltsverzeichnis:

Arduino-basierter binärer Wecker - Gunook
Arduino-basierter binärer Wecker - Gunook

Video: Arduino-basierter binärer Wecker - Gunook

Video: Arduino-basierter binärer Wecker - Gunook
Video: Arduino Alarm Clock 2024, November
Anonim
Image
Image

Von Basement EngineeringFolgen Sie mehr vom Autor:

DIY Laser-Personenzähler
DIY Laser-Personenzähler
Bau eines selbstfahrenden Bootes (ArduPilot Rover)
Bau eines selbstfahrenden Bootes (ArduPilot Rover)
Bau eines selbstfahrenden Bootes (ArduPilot Rover)
Bau eines selbstfahrenden Bootes (ArduPilot Rover)
Die perfekte Nachttischlampe und Telefonstation
Die perfekte Nachttischlampe und Telefonstation
Die perfekte Nachttischlampe und Telefonstation
Die perfekte Nachttischlampe und Telefonstation

About: Hi, mein Name ist Jan und ich bin ein Maker, ich liebe es Dinge zu bauen und zu kreieren und ich bin auch ziemlich gut darin, Dinge zu reparieren. Seitdem ich denken kann, habe ich es immer geliebt, neue Dinge zu schaffen und das mache ich immer wieder, bis… Mehr über Kellerbau »

Hey, heute möchte ich euch zeigen wie man eines meiner neusten Projekte baut, meinen binären Wecker.

Es gibt eine Menge verschiedener Binäruhren im Internet, aber dies könnte tatsächlich die erste sein, die aus einem Streifen bunter adressierbarer LEDs besteht, die auch eine Weckfunktion und Touch-Tasten zum Einstellen von Dingen wie Uhrzeit und Farbe bietet.

Bitte lassen Sie sich von dem komplizierten Aussehen nicht abschrecken. Mit einer kleinen Erklärung ist das Lesen von Binärdateien eigentlich nicht so schwer, wie es scheint. Und wenn Sie bereit sind, etwas Neues zu lernen, helfe ich Ihnen gerne später dabei.

Lassen Sie mich Ihnen ein wenig über die Geschichte hinter diesem Projekt erzählen:

Ich hatte ursprünglich geplant, eine "normale" Uhr zu bauen, die LEDs als Zeiger verwendet, aber ich hatte nicht genug LEDs zur Hand.

Sooo, was macht man, wenn man die Uhrzeit mit möglichst wenigen LEDs anzeigen möchte?

Sie gehen binär, und genau das habe ich hier getan.

Diese Uhr ist die dritte ihrer Art. Ich habe direkt nach der Projektidee einen sehr einfachen Prototyp gebaut und ihn zur Maker Faire in Hannover mitgenommen, um zu sehen, was die Leute darüber denken. Dabei habe ich viele sehr positive und interessante Rückmeldungen sowie Verbesserungsideen erhalten.

Das Ergebnis all dieser Ideen und Stunden des Nachdenkens, Bastelns und Programmierens ist dieser ziemlich interessant aussehende kleine Wecker, der viel mehr Funktionen als Version 1.0 hat und heute werden wir jeden Schritt des Bauprozesses durchgehen, damit Sie es können einfach selber bauen.

Auf Youtube gibt es auch ein sehr ausführliches Video, falls Sie nicht alles lesen möchten.

Schritt 1: Holen Sie sich Ihre Sachen

Holen Sie sich Ihre Sachen
Holen Sie sich Ihre Sachen
Holen Sie sich Ihre Sachen
Holen Sie sich Ihre Sachen
Holen Sie sich Ihre Sachen
Holen Sie sich Ihre Sachen

Hier ist eine kleine Liste aller Komponenten und Tools, die Sie benötigen, um Ihre eigene binäre Uhr zu bauen.

Elektronik:

  • 18 adressierbare Ws2811 LEDs (z. B. Neopixel) auf einem Strip mit 60 LEDs pro m (ebay)
  • Arduino Nano (mit ATMega328-Prozessor) (ebay)
  • 1307 RTC-Modul (ebay)
  • 4X kapazitive Touch-Tasten (ebay)
  • bs18b20 digitaler Temperatursensor (ebay)
  • LDR (ebay)
  • Laptop-/Smartphone-Lautsprecher oder Piezo-Summer
  • 2222A NPN-Transistor (oder etwas Ähnliches)
  • männliche Header
  • abgewinkelte Buchsenleisten (ebay)
  • 1kOhm Widerstand
  • 4, 7kOhm Widerstand
  • 10kOhm Widerstand
  • Drähte
  • 7x5cm Prototyping PCB 24x18 Löcher (ebay)
  • Silberdraht (Schmuckdraht) (ebay)
  • 90° Mini-USB-Adapter (ebay)

Andere Materialien

  • Vinylfolie
  • 4X 45mm M4 Flanschkopfschrauben (ebay)
  • 32X m4 Metallscheiben
  • 4X m4 Kontermutter
  • 28X m4 Mutter
  • 4X 10mm m3 Messing PCB Abstandshalter (ebay)
  • 8X 8mm m3 Schraube (ebay)
  • Aluminiumblech
  • 2 mm milchiges Acrylglas
  • 2mm klares Acrylglas
  • 3 mm MDF-Platte
  • doppelseitiges Klebeband

Werkzeuge

  • Mini-USB-Kabel
  • Computer, auf dem die Arduino-IDE ausgeführt wird
  • 3,5 mm Bohrer
  • 4, 5 mm Bohrer
  • Bohrmaschine
  • Schneidemesser
  • Laubsäge
  • Löt-Ion
  • Schere zum Schneiden von Metall
  • Datei
  • Sandpapier

Vorlagen (jetzt mit Abmessungen)

  • PDF
  • Libre Office Auslosung

Code

  • Skizzen
  • Schaltflächenbibliothek
  • Timer-Bibliothek
  • Jukebox-Bibliothek
  • Modifizierte RTClib
  • Adafruit Neopixel-Bibliothek
  • Arduino-Temperatur-Control-Bibliothek

Schritt 2: Schneiden Sie die Vorder- und Rückwand

Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand
Schneiden Sie die Vorder- und Rückwand

Das erste Stück, das wir machen werden, ist die Acryl-Frontplatte. Wir markieren, wo unsere Schnitte hingehen sollen, und denken dabei daran, dass wir beim Schleifen ein wenig Toleranz brauchen. Dann kratzen wir das Acryl einfach mit unserem Schneidemesser ab. Nachdem wir das 10 bis 20 Mal gemacht haben, haben wir einen Groove. Wir können diesen Hain dann auf die Kante eines Tisches legen und das Acryl biegen, bis es bricht.

Nachdem die Frontplatte zugeschnitten ist, schneiden wir die Rückplatte aus einem Stück MDF. Dafür können wir unsere Kappsäge verwenden, aber auch ein Schneidemesser geht. Wir müssen das MDF nur auf ein Stück Holz klemmen und mit unserem Schneidemesser so lange abkratzen, bis die Klinge durchgeht und wir zwei Einzelteile haben.

Jetzt legen wir die beiden Platten zusammen und schleifen jede Seite, um sie perfekt auszurichten.

Danach schneiden wir die erste Schablone aus und legen sie mit etwas Klebeband auf die beiden Platten und beginnen mit dem Bohren der markierten Löcher.

Zuerst bohren wir in jede der 4 Ecken ein 4,5 mm Loch. Da das Acryl sehr spröde ist und wir es nicht brechen wollen, beginnen wir mit einem kleinen Bohrer und arbeiten uns bis zum gewünschten Lochdurchmesser vor. Dann verwenden wir die Schablone, um die Ecken in die richtige Form zu schleifen.

Schritt 3: Beenden Sie die Rückseite

Beenden Sie die Rückseite
Beenden Sie die Rückseite
Beenden Sie die Rückseite
Beenden Sie die Rückseite
Beenden Sie die Rückseite
Beenden Sie die Rückseite
Beenden Sie die Rückseite
Beenden Sie die Rückseite

Vorerst können wir die Frontplatte beiseite legen und die zweite Schablone auf die Rückplatte kleben, wo wir mit einem 3,5-mm-Bohrer die Löcher für unsere 4 Leiterplatten-Abstandshalter sowie 4 Löcher zur Markierung der Kanten bohren müssen für das kleine Heckfenster.

Wir verwenden dann unsere Kappsäge, um das Fenster auszuschneiden und die Kanten mit einer Feile zu glätten. Vergessen Sie auch nicht, das Loch für das Mini-USB-Kabel zu bohren (ich habe von einem nicht so fokussierten Hersteller gehört, der dazu neigt, solche Dinge zu tun:D).

Da wir nun mit dem Schneiden der Rückwand fertig sind, können wir sie in Vinylfolie einwickeln. Wir schneiden einfach zwei Stücke auf die richtige Größe zu und legen das erste zur Seite. Dann schneiden wir die Felgen weg und befreien das Fenster. Ein Fön kann helfen, alle Löcher wieder sichtbar zu machen, damit wir sie auch ausschneiden können. Nachdem wir dasselbe für die andere Seite gemacht haben, verwenden wir unsere nächste Schablone und unsere Scrape-and-Break-Technik, um das kleine Acrylfenster für unsere Rückwand herzustellen.

Schritt 4: Machen Sie das LED-Panel

Machen Sie das LED-Panel
Machen Sie das LED-Panel
Machen Sie das LED-Panel
Machen Sie das LED-Panel
Machen Sie das LED-Panel
Machen Sie das LED-Panel

Jetzt kommen wir im wahrsten Sinne des Wortes zum Höhepunkt dieses Projekts. Das LED-Panel.

Wir verwenden unsere Metallschneideschere, um ein 12, 2 cm x 8 cm großes Stück aus einem Blech zu schneiden. Seien Sie dabei vorsichtig, da die Schere sehr scharfe Kanten erzeugt. Wir werden diese mit unserer Feile und etwas Schleifpapier glätten. Dann fügen wir unsere nächste Schablone hinzu, um Löcher für die Schrauben und die Drähte zu bohren.

Zeit, die eigentlichen LEDs vorzubereiten.

Zuerst schneiden wir sie in drei Streifen zu je 6 LEDs. Einige der LED-Streifen werden mit einer sehr dünnen Klebeschicht oder gar keinem Klebstoff geliefert, also kleben wir unsere Streifen auf ein Stück doppelseitiges Klebeband und schneiden es mit einem Messer zu. Dadurch haftet es an der Metallplatte und isoliert, obwohl dies keine professionelle Lösung ist, die Kupferpads von der darunter liegenden Metalloberfläche.

Bevor wir die Streifen tatsächlich auf die Platte kleben, reinigen wir sie mit Alkohol. Während wir die LEDs anbringen, müssen wir darauf achten, dass wir sie sowohl an der richtigen Stelle als auch in der richtigen Richtung ablegen. Die kleinen Pfeile auf dem LED-Streifen zeigen die Richtung an, in der die Daten durch den Streifen laufen.

Wie Sie im fünften Bild sehen können, kommt unsere Datenleitung von der oberen linken Ecke des Panels, geht durch den ersten Streifen ganz nach rechts, dann zurück zum Anfang des folgenden Streifens auf der linken Seite und so weiter. Alle unsere Pfeile müssen also auf die rechte Seite zeigen.

Lassen Sie uns unser Löt-Ion erhitzen und etwas Zinn auf die Kupferpads sowie auf unseren Draht geben. Die Datenleitungen werden wie eben beschrieben angeschlossen, während wir einfach die Plus- und Minus-Pads des Streifens parallel anschließen.

Nachdem die Streifen verdrahtet sind, heben wir mit unserem Messer die Enden jedes Streifens vorsichtig an, während wir die LEDs nach unten halten, sodass sie immer noch nach oben zeigen. Dann legen wir etwas Heißkleber darunter, um unsere Lötstellen zu isolieren.

Nachdem dies erledigt ist, fügen wir den Drähten, die zur Platine führen, einige Kopfstifte hinzu. Diese Drähte sollten etwa 16 cm lang sein. Um sicher zu gehen, dass die Metallplatte nichts kurzschließt, verwenden wir ein Multimeter, um den Widerstand zwischen allen Pins zu messen. Wenn etwas über 1kOhm angezeigt wird, ist alles in Ordnung.

Jetzt können wir es an einen Arduino anschließen, einen Strandtest durchführen und die Farben genießen.

Schritt 5: Erstellen Sie einen Lichtleiter

Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter
Machen Sie einen Lichtleiter

Wenn wir unser LED-Panel direkt hinter dem milchigen Acryl platzieren, kann es ziemlich schwierig werden, einzelne LEDs voneinander zu unterscheiden. Dies würde unsere Uhr noch schwerer ablesen, als sie es ohnehin schon ist.

Um dieses Problem zu lösen, werden wir uns einen kleinen Lichtführer machen. Dafür schneiden wir einfach ein weiteres Stück MDF aus, das die gleiche Größe wie die Frontplatte hat. Dann fügen wir noch eine weitere Schablone hinzu und bohren achtzehn 3,5-mm-Löcher für die LEDs sowie vier 4,5-mm-Löcher für die Schrauben hinein. Wir können es dann an der Frontplatte festklemmen und mit etwas Sandpapier die beiden ausrichten.

Wie Sie im letzten Bild sehen können, erscheint das Licht jetzt viel fokussierter.

Schritt 6: Machen Sie den Schaltflächenrahmen

Machen Sie den Schaltflächenrahmen
Machen Sie den Schaltflächenrahmen
Machen Sie den Schaltflächenrahmen
Machen Sie den Schaltflächenrahmen
Machen Sie den Schaltflächenrahmen
Machen Sie den Schaltflächenrahmen

Die letzte Gehäusekomponente, die wir herstellen werden, ist der Tastenrahmen.

Wir schneiden wieder ein Stück MDF auf die richtige Größe und fügen eine Schablone hinzu, dann bohren wir alle notwendigen Löcher und verwenden unsere Kappsäge, um den Mittelteil auszuschneiden.

Unser Rahmen soll die 4 Touch-Buttons, den Lichtsensor und unseren kleinen Lautsprecher festhalten. Bevor wir sie am Rahmen befestigen können, schneiden wir ein paar kleinere Abdeckstücke aus MDF. Dann kleben wir unsere Komponenten auf diese Abdeckungen und fügen Drähte hinzu.

Die Power-Pads des Touch-Buttons sind parallel geschaltet, während jede Ausgangsleitung eine eigene Leitung erhält. Dies ist auch ein guter Moment, um zu testen, ob sie alle funktionieren. Da der Lichtsensor auf einer Seite 5 Volt benötigt, können wir ihn einfach an das VCC-Pad der Alarmtasten anschließen und einen Draht an das andere Bein anlöten.

Nachdem die Platten vorbereitet sind, schneiden wir in die Seiten des Rahmens, um Platz für sie und ihre Drähte zu schaffen.

Dann entfernen wir den Holzstaub von allen Teilen mit einem Staubsauger und decken sie mit Vinylfolie ab.

Mit dem Präzisionsmesser entfernen wir Vinylstücke direkt über den sensiblen Bereichen unserer Touch-Module. Mit etwas doppelseitigem Klebeband können wir dann unsere eigenen Knöpfe auf dem MDF befestigen. Ich habe meine Knöpfe aus Schaumgummi gemacht, was ihnen eine schöne, weiche Textur verleiht, aber Sie können jedes nicht-metallische Material verwenden, das Sie möchten.

Am Rahmen befreien wir mit unserem Messer wieder ein wenig vom MDF, was uns eine griffige Oberfläche für den Heißkleber gibt. Dann können wir endlich die Komponenten an die Seiten unseres Rahmens kleben.

Schritt 7: Löten Sie die Hauptplatine

Löten Sie die Hauptplatine
Löten Sie die Hauptplatine
Löten Sie die Hauptplatine
Löten Sie die Hauptplatine
Löten Sie die Hauptplatine
Löten Sie die Hauptplatine

Lassen Sie den Rahmen so, wie er jetzt ist, und gehen Sie zur Platine über. Sie können das PCB-Layout im ersten Bild sehen.

Wir beginnen damit, die Komponenten mit dem niedrigsten Profil auf der Platine zu platzieren. Die kleinsten Bauteile sind die Drahtbrücken, an die ich mich etwas zu spät erinnert habe, also habe ich mit den Widerständen angefangen. Wir löten unsere Komponenten an Ort und Stelle und gehen zum nächsthöheren Komponentensatz über.

Als nächstes haben wir unsere weiblichen Header-Pins. Um Platz zu sparen und unsere Elektronik von der Seite einstecken zu können, montieren wir diese im 90-Grad-Winkel.

Transistoren passen nicht wirklich in den Lochabstand von 2,54 mm unserer Leiterplatte, daher verwenden wir unsere Zange, um ihre Beine vorsichtig in die im zweiten Bild gezeigte Form zu biegen. Wir löten zuerst eines ihrer Beine an und drehen die Platine um. Anschließend erhitzen wir die Lötstelle erneut und positionieren das Bauteil mit dem Finger oder einer Zange. Jetzt können wir die anderen beiden Beine anlöten.

Nach all den kleinen Komponenten verlöten wir unser Arduino und unser Echtzeituhrmodul. Das RTC-Modul passt auch nicht so gut in die Lochabstände, daher bestücken wir nur die Seite, die 7 Lötpads hat, mit Stiftleisten. Außerdem legen wir etwas Klebeband darunter, um Kurzschlüsse zu vermeiden.

Da alle unsere Komponenten verlötet sind, ist es jetzt an der Zeit, die Verbindungen auf der anderen Seite der Platine herzustellen. Dazu nehmen wir unseren nicht isolierten Draht heraus. Zum Begradigen kann eine Zange verwendet werden. Dann schneiden wir den Draht in kleinere Stücke und löten ihn an die Platine.

Um eine Verbindung herzustellen, erhitzen wir eine Lötstelle und führen den Draht ein. Dann halten wir das Löt-Ion darauf, bis es die richtige Temperatur erreicht hat und das Lot es umschließt und wir eine Verbindung erhalten, die wie auf dem Bild aussieht. Wenn wir den Draht nicht erhitzen, kann es sein, dass wir eine kalte Verbindung bekommen, die dem anderen Beispiel ähnelt und nicht sehr gut leitet. Wir können unseren Drahtschneider verwenden, um den Draht beim Löten nach unten zu drücken und sicherzustellen, dass er flach auf der Platine liegt. Auf längeren Verbindungswegen löten wir es alle 5 bis 6 Löcher auf ein einzelnes Pad, bis wir eine Ecke oder das nächste Bauteil erreichen.

In einer Ecke schneiden wir den Draht über der ersten Hälfte eines Lötpads ab und löten das Ende daran. Dann nehmen wir ein neues Stück Draht und gehen von dort im rechten Winkel weiter.

Das Herstellen dieser leeren Drahtverbindungen ist ziemlich knifflig und erfordert einiges Geschick. Wenn Sie dies also zum ersten Mal tun, ist es definitiv keine schlechte Idee, es auf einer Schrottplatine zu üben, bevor Sie es mit der echten versuchen.

Nachdem wir mit dem Löten fertig sind, überprüfen wir die Verbindungen noch einmal und stellen sicher, dass wir keine Kurzschlüsse erzeugt haben. Dann können wir die Platine in den Tastenrahmen stecken und als Referenz für die erforderlichen Rahmendrahtlängen verwenden. Wir schneiden dann diese Drähte auf die richtige Länge und fügen ihnen männliche Kopfstifte hinzu.

Alle 5V- und Masseanschlüsse der Touch-Tasten laufen zu einem 2-Pin-Anschluss zusammen. Die 4 Ausgangsdrähte erhalten einen 4-Pin-Anschluss und die Lichtsensorleitung sowie die beiden Lautsprecherdrähte werden zu einem 3-Pin-Anschluss zusammengeführt. Vergessen Sie nicht, eine Seite jeder Buchse und jedes Steckers mit einem Sharpie oder etwas Klebeband zu markieren, damit Sie sie nicht versehentlich falsch anschließen.

Schritt 8: Montieren Sie die Uhr

Baue die Uhr zusammen
Baue die Uhr zusammen
Baue die Uhr zusammen
Baue die Uhr zusammen
Baue die Uhr zusammen
Baue die Uhr zusammen
Baue die Uhr zusammen
Baue die Uhr zusammen

Danach ging ich zurück zur Frontplatte und brachte als letzten Schliff vorsichtig einen Aufkleber aus transparenter Laserdruckerfolie an.

Obwohl ich es sehr vorsichtig aufgetragen habe, konnte ich kein blasenfreies Ergebnis erzielen, was bei genauerem Hinsehen leider deutlich zu sehen ist. Die Folie haftet auch nicht sehr gut an den Ecken, daher kann ich diese Lösung nicht wirklich empfehlen.

Es könnte wahrscheinlich mit einem besseren Aufkleber gemacht werden, oder, wenn Sie gut zeichnen können, könnten Sie die Zahlen mit einem Sharpie hinzufügen.

Jetzt haben wir alle Komponenten und können unsere Uhr zusammenbauen.

Wir beginnen damit, den Lichtleiter und die Frontplatte zusammenzusetzen. Nachdem alle 4 Schrauben drin sind, richten wir die beiden Platten aus und ziehen sie dann fest. Ein paar Nüsse später kommt das Lichtpanel, wo wir uns die Richtung anschauen müssen. Das Kabel sollte oben sein.

Das dritte Stück ist der Knopfrahmen. Denken Sie daran, dass sich der Lautsprecher von vorne gesehen auf der rechten Seite der Uhr befinden sollte. Ziehen Sie das Kabel Ihres LED-Panels durch die Mitte des Rahmens, bevor Sie es befestigen.

Jetzt legen wir die Frontbaugruppe beiseite und gehen zur Rückwand. Auf dem Bild seht ihr auch meinen schönen selbstgebauten 90 Grad Mini USB Adapter. Ich habe dir einen richtigen Adapter verlinkt, damit du dich nicht mit dieser Art von Chaos auseinandersetzen musst. Sie können einfach Ihren Adapter einstecken und das Kabel durch ein Loch in der Rückwand führen.

Wir nehmen unsere M3-Schrauben und unsere PCB-Abstandshalter, um das kleine Fenster zu befestigen. Es ist wichtig, die Schrauben vorsichtig anzuziehen, da wir unser Acryl nicht beschädigen wollen. Dann nehmen wir unsere Platine, stecken unseren Adapter ein und schrauben ihn auf die Abstandshalter. Die Komponentenseite sollte zum Fenster zeigen, während der USB-Port des Arduino zur Unterseite der Uhr zeigt.

Dann stecken wir alle Stecker der Frontbaugruppe ein, achten dabei auf die Polarität und drücken alle Drähte vorsichtig in die Uhr. Wir können es dann mit der Rückwand schließen und die 4 verbleibenden Kontermuttern festziehen.

Am Ende möchten Sie auf jeder Seite jeder Platte eine Unterlegscheibe haben, während der Lichtleiter direkt hinter der Frontplatte platziert wird. Wir haben eine Mutter zwischen dem Lichtleiter und dem LED-Panel und zwei weitere, die sie vom Tastenrahmen trennen. Das sieht man auch auf dem letzten Bild.

Da ich kurze Schrauben mit einer Länge von 40mm verwendet habe, habe ich nur 3 Muttern die die Rückwand und den Rahmen auseinander halten. Mit den richtigen 45-mm-Schrauben würden Sie hier eine weitere Mutter sowie eine oder zwei zusätzliche Unterlegscheiben hinzufügen. Am Ende der Montage haben wir unsere Kontermutter, damit alles an seinem Platz bleibt.

Schritt 9: Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor

Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor
Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor
Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor
Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor
Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor
Laden Sie den Code hoch und kalibrieren Sie den Lichtsensor

Zeit unseren Code hochzuladen.

Zuerst laden wir alle notwendigen Dateien herunter und entpacken sie. Wir öffnen dann unseren Arduino-Bibliotheksordner und legen alle neuen Bibliotheken darin ab.

Jetzt öffnen wir die Lichtsensor-Kalibrierungsskizze, die uns die Hell- und Dunkelwerte für die automatische Dimmerfunktion der Uhr liefert. Wir laden es hoch, öffnen den seriellen Monitor und folgen den Anweisungen auf dem Bildschirm.

Danach öffnen wir den eigentlichen Code der Binäruhren und ersetzen die beiden Werte durch die gerade gemessenen.

Wir schließen alle anderen Fenster, laden den Code auf unsere Uhr hoch und fertig.

Zeit, mit unserem neuen Gadget herumzuspielen.

Schritt 10: Eine kurze Einführung in das Binärsystem

Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem
Eine kurze Einführung in das Binärsystem

Bevor wir fortfahren, möchte ich die eine Frage beantworten, die Ihnen wahrscheinlich schon durch den Kopf gegangen ist, "Wie in aller Welt liest du diese Uhr?"

Dazu möchte ich Ihnen eine kurze Einführung in das Binärsystem geben.

Wir alle kennen das Dezimalsystem, bei dem jede Ziffer 10 verschiedene Zustände haben kann, die von 0 bis 9 reichen. Im Binärmodus kann jede Ziffer nur zwei Zustände haben, entweder 1 oder 0 eine binäre Zahl anzeigen.

Um Zahlen größer als 9 dezimal anzuzeigen, fügen wir weitere Ziffern hinzu. Jede Ziffer hat einen bestimmten Multiplikator. Die erste Ziffer von rechts kommt mit einem Multiplikator von 1, der nächste ist 10 und der nächste ist 100. Mit jeder neuen Ziffer ist der Multiplikator zehnmal so groß wie der der vorherigen Ziffer. Wir wissen also, dass die Zahl Zwei, die eine Ziffer links platziert ist, die Zahl 20 darstellt. Während zwei Ziffern links davon stehen, steht sie für 200.

Im Binärsystem hat jede Ziffer auch einen Multiplikator. Da jede Ziffer jedoch nur zwei verschiedene Zustände haben kann, ist jeder neue Multiplikator doppelt so groß wie der vorherige. Ach ja, Binärziffern werden übrigens Bits genannt. Schauen wir uns also unser erstes Beispiel an. Wenn wir eine 1 an der niedrigsten Position platzieren, ist es eine einfache 1, aber wenn wir sie an der nächsthöheren Position platzieren, wo unser Multiplikator 2 ist, stellt sie die Zahl 2 in binärer Form dar.

Wie wäre es mit dem etwas kniffligeren Beispiel unten im Bild. Das dritte und das erste Bit sind eingeschaltet. Um die hier dargestellte Dezimalzahl zu erhalten, addieren wir einfach die Werte der beiden Bits. 4 * 1 + 1 * 1 oder 4 + 1 gibt uns also die Zahl 5.

8 Bits werden als Byte bezeichnet, also sehen wir uns an, welche Zahl wir erhalten, wenn wir ein ganzes Byte mit Einsen füllen.1+2+4+8+16+32+64+128, also 255, was der höchste Wert ist, den ein einzelnes Byte haben kann.

Während im Dezimalsystem übrigens immer die Ziffer mit dem höchsten Multiplikator an erster Stelle steht, gibt es zwei Möglichkeiten, eine Zahl binär niederzuschreiben. Diese beiden Methoden werden als niedrigstwertiges Byte zuerst (LSB) und höchstwertiges Byte zuerst (MSB) bezeichnet. Wenn Sie eine Binärzahl lesen möchten, müssen Sie wissen, welches der beiden Formate verwendet wird. Da sie näher am Dezimalsystem liegt, verwendet unsere Binäruhr die MSB-Variante.

Kommen wir zurück zu unserem Beispiel aus der realen Welt. Wie im sechsten Bild hervorgehoben, hat unsere Uhr 4 Bits, um die Stunde anzuzeigen. Dann haben wir 6 Bits für die Minute und auch 6 Bits für die Sekunde. Außerdem haben wir ein einzelnes am/pm-Bit.

Okay, sag mir, wie spät es im 6. Bild ist, dann springe zum letzten.. ….

im Stundenabschnitt haben wir 2+1, was 3 ist, und das pm-Bit ist eingeschaltet, also ist es Abend. Als nächstes kommt die Minute 32+8, also 40. Für die Sekunden haben wir 8+4+2, also 14. Es ist also 15:40:14 Uhr oder 15:40:14.

Herzlichen Glückwunsch, Sie haben gerade gelernt, eine binäre Uhr zu lesen. Natürlich ist es gewöhnungsbedürftig und am Anfang muss man die Zahlen zusammenzählen, jedes Mal wenn man wissen möchte wie spät es ist, aber ähnlich wie bei einer analogen Uhr ohne Zifferblatt gewöhnt man sich an die Muster der LED vorbei Zeit.

Und genau darum geht es in diesem Projekt, etwas so Abstraktes wie das Binärsystem in die reale Welt zu übertragen und besser kennenzulernen.

Schritt 11: Verwenden des binären Weckers

Verwenden des binären Weckers
Verwenden des binären Weckers
Verwenden des binären Weckers
Verwenden des binären Weckers
Verwenden des binären Weckers
Verwenden des binären Weckers

Jetzt wollen wir endlich mit der Uhr herumspielen, also werfen wir einen kurzen Blick auf die Steuerung.

Die Software kann zwischen einem einfachen Tastendruck, einem doppelten Tastendruck und einem langen Tastendruck unterscheiden. So kann jede Taste für mehrere Aktionen verwendet werden.

Ein Doppeltipp auf die Auf- oder Ab-Taste ändert den Farbmodus der LED. Sie können zwischen verschiedenen statischen und verblassenden Farbmodi sowie einem Temperaturmodus wählen. Wenn Sie sich in einem der statischen Farbmodi befinden, ändern Sie die Farbe, indem Sie die Auf- oder Ab-Taste gedrückt halten. In einem Fading-Modus ändert ein einziges Antippen die Animationsgeschwindigkeit.

Um den Dimmermodus einzustellen, tippen Sie zweimal auf die OK-Taste. Das LED-Panel zeigt den eingestellten Modus durch mehrmaliges Blinken an.

  • Einmal bedeutet kein Dimmer.
  • Zweimal bedeutet, dass die Helligkeit vom Lichtsensor gesteuert wird.
  • Dreimal und die LEDs erlöschen automatisch nach 10 Sekunden Inaktivität.
  • Viermal und beide Dimmermodi werden kombiniert.

Durch langes Drücken der OK-Taste gelangen Sie in den Zeiteinstellungsmodus, in dem Sie mit den Auf- und Ab-Pfeilen die Zahl ändern können. Ein einmaliges Tippen auf die OK-Taste bringt Sie von den Stunden auf die Minuten, ein weiteres Tippen und Sie können die Sekunden einstellen. Danach speichert ein letztes Tippen die neue Zeit. Wenn Sie versehentlich in den Zeiteinstellungsmodus wechseln, können Sie einfach 10 Sekunden warten und die Uhr verlässt ihn automatisch.

Wie bei der OK-Taste können Sie durch langes Drücken der Alarmtaste den Alarm einstellen. Durch Doppeltippen auf die Alarmtaste wird der Alarm aktiviert oder deaktiviert.

Wenn die Uhr klingelt, tippen Sie einmal auf die Wecktaste, um sie für 5 Minuten in den Ruhezustand zu versetzen, oder halten Sie sie gedrückt, um den Alarm zu deaktivieren.

Das waren alle Funktionen, die die Uhr bisher hat. Ich könnte in Zukunft weitere hinzufügen, die Sie erhalten können, wenn Sie die neueste Firmware-Version herunterladen.

Schritt 12: Den Code verstehen (optional)

Den Code verstehen (optional)
Den Code verstehen (optional)

Ich weiß, dass viele Leute nicht so gerne programmieren. Zum Glück für diese Leute sind so gut wie keine Programmierkenntnisse erforderlich, um diese binäre Uhr zu bauen und zu verwenden. Wenn Sie sich also nicht für die Programmierseite interessieren, können Sie diesen Schritt einfach überspringen.

Wenn Sie sich jedoch für den Coding-Teil interessieren, möchte ich Ihnen einen allgemeinen Überblick über das Programm geben.

Jedes kleine Detail des Uhrencodes zu erklären wäre ein eigenständiges Instructable, also werde ich es einfach halten, indem ich das Programm objektorientiert erkläre.

Falls Sie nicht wissen, was das bedeutet: Objektorientierte Programmierung (OOP) ist ein Konzept der meisten modernen Programmiersprachen wie C++. Es ermöglicht Ihnen, verschiedene Funktionen und Variablen in sogenannten Klassen zu organisieren. Eine Klasse ist eine Vorlage, aus der Sie ein oder mehrere Objekte erstellen können. Jedes dieser Objekte erhält einen Namen und einen eigenen Satz von Variablen.

Der Code der Uhr verwendet beispielsweise einige MultiTouchButton-Objekte wie den alarmButton. Das sind Objekte aus der Klasse MultiTouchButton, die Teil meiner Button-Bibliothek ist. Das Coole an diesen Objekten ist, dass Sie mit ihnen ähnlich wie reale Objekte interagieren können. Zum Beispiel können wir überprüfen, ob die Alarmschaltfläche doppelt angetippt wurde, indem wir alarmButton.wasDoubleTapped() aufrufen. Außerdem ist die Implementierung dieser Funktion schön in einer anderen Datei versteckt und wir müssen uns keine Sorgen machen, sie zu zerstören, indem wir etwas anderes in unserem Code ändern. Einen schnellen Einstieg in die Welt der objektorientierten Programmierung finden Sie auf der Adafruit-Website.

Wie Sie in der obigen Grafik sehen können, verfügt das Uhrenprogramm über eine Reihe verschiedener Objekte.

Wir haben gerade über die Button-Objekte gesprochen, die Eingangssignale als Tippen, Doppeltippen oder langes Drücken interpretieren können.

Die Jukebox kann, wie der Name schon sagt, Geräusche machen. Es hat mehrere Melodien, die über einen kleinen Lautsprecher abgespielt werden können.

Das Objekt binaryClock verwaltet die Zeit- und Alarmeinstellung sowie die Alarmüberwachung. Es holt sich außerdem die Zeit vom rtc-Modul und wandelt sie in einen binären Informationspuffer für das ledPanel um.

Der colorController kapselt alle Farbeffektfunktionen und stellt den colorBuffer für das ledPanel bereit. Es speichert auch seinen Zustand im Arduinos EEProm.

Der Dimmer kümmert sich um die Helligkeit der Uhren. Es hat verschiedene Modi, die der Benutzer durchlaufen kann. Der aktuelle Modus wird auch im EEProm gespeichert.

Das ledPanel verwaltet verschiedene Puffer für den Farbwert, Helligkeitswert und Binärzustand jeder LED. Immer wenn die Funktion pushToStrip() aufgerufen wird, überlagert sie diese und sendet sie an den LED-Streifen.

Alle Objekte sind über die Hauptfunktion (die Datei mit den Setup- und Schleifenfunktionen) "verbunden", die nur ein paar Funktionen enthält, um 3 wesentliche Aufgaben auszuführen.

  1. Interpretieren von Benutzereingaben - Es ruft die Eingaben von den 4 Schaltflächenobjekten ab und führt sie durch eine Logik. Diese Logik überprüft den aktuellen Zustand der Uhr, um festzustellen, ob sich die Uhr im Normal-, Zeiteinstellungs- oder Klingelmodus befindet und ruft entsprechend verschiedene Funktionen von den anderen Objekten auf.
  2. Kommunikation zwischen Objekten verwalten - Es fragt ständig das binaryClock-Objekt, ob es neue Informationen zur Verfügung hat oder ob der Alarm Ringing() ist. Wenn es neue Informationen hat, ruft es den informationBuffer von binaryClock ab und sendet es an das ledPanel-Objekt. Wenn die Uhr klingelt, startet die Jukebox.
  3. Aktualisieren von Objekten - Jedes Objekt des Programms verfügt über eine Aktualisierungsprozedur, die für Dinge wie das Überprüfen von Eingaben oder das Ändern der LED-Farben verwendet wird. Diese müssen in der Schleifenfunktion wiederholt aufgerufen werden, damit die Uhr richtig funktioniert.

Das sollte Ihnen ein allgemeines Verständnis dafür vermitteln, wie die einzelnen Codeteile zusammenarbeiten. Wenn Sie spezifischere Fragen haben, können Sie mich einfach fragen.

Da mein Code definitiv nicht perfekt ist, werde ich ihn in Zukunft weiter verbessern, daher können sich einige Funktionen ändern. Das Coole an OOP ist, dass es immer noch sehr ähnlich funktioniert und Sie die Grafik immer noch verwenden können, um es zu verstehen.

Schritt 13: Schlussworte

Letzte Worte
Letzte Worte

Ich freue mich, dass Sie bis hierher gelesen haben. Das heißt, mein Projekt war nicht zu langweilig:).

Ich habe eine Menge Arbeit in diese kleine Uhr gesteckt und noch mehr Arbeit in die gesamte Dokumentation und das Video, um es Ihnen leicht zu machen, Ihren eigenen binären Wecker zu bauen. Ich hoffe, meine Mühe hat sich gelohnt und ich konnte euch mit einer tollen Idee für euer nächstes Wochenendprojekt anstecken oder euch zumindest etwas Inspiration geben.

Ich würde gerne in den Kommentaren unten hören, was Sie über die Uhr denken:).

Obwohl ich versucht habe, jedes Detail abzudecken, habe ich vielleicht ein oder zwei Dinge übersehen. Also gerne fragen, wenn noch Fragen offen sind.

Wie immer vielen Dank fürs Lesen und viel Spaß beim Basteln.

LED-Wettbewerb 2017
LED-Wettbewerb 2017
LED-Wettbewerb 2017
LED-Wettbewerb 2017

Vizemeister im LED-Wettbewerb 2017

Empfohlen: