Inhaltsverzeichnis:

Binäre Tischuhr - Gunook
Binäre Tischuhr - Gunook

Video: Binäre Tischuhr - Gunook

Video: Binäre Tischuhr - Gunook
Video: Binäre Wanduhr - getDigital.de 2024, November
Anonim
Binäre Tischuhr
Binäre Tischuhr
Binäre Tischuhr
Binäre Tischuhr
Binäre Tischuhr
Binäre Tischuhr

Binäre Uhren sind großartig und ausschließlich für die Person geeignet, die die Binärdatei (die Sprache der digitalen Geräte) kennt. Wenn Sie ein Techniker sind, ist diese seltsame Uhr für Sie. Also, machen Sie selbst einen und halten Sie Ihre Zeit geheim!

Im Internet finden Sie viele binäre Uhren unterschiedlicher Art. Sogar Sie können eine binäre Uhr in einem Online-Shop wie amazon.com kaufen. Aber diese Uhr ist anders als alle anderen und hier habe ich Marmor gespielt, um ihr ein elegantes Aussehen zu verleihen.

Bevor Sie nach unten gehen, sehen Sie sich bitte das Demo-Video an.

Schritt 1: Stückliste

Stückliste
Stückliste
Stückliste
Stückliste
Stückliste
Stückliste

Hardware-Komponenten

1. Arduino Pro Micro (bei aliexpress.com kaufen): Dies ist das Herzstück der Uhr und liest die Zeit von RTC und gibt Anweisungen, um die LEDs entsprechend anzusteuern. Sie können Arduino Nano oder sogar Arduino Uno anstelle von Pro Micro verwenden, wenn die Größe für Sie keine Rolle spielt.

2. DS3231 RTC-Modul (bei aliexpress.com kaufen): Das DS3231 RTC verfolgt die Zeit, auch wenn der Strom ausfällt. Obwohl andere Echtzeituhren wie DS1307 verwendet werden können, ist die DS3231 genauer.

3. MAX7219CNG LED-Treiber-IC (bei aliexpress.com kaufen): Arduino hat eine begrenzte Anzahl von Pins. Wenn Sie also Tonnen von LEDs antreiben möchten, ohne Arduino-Pins zu verschwenden, ist der MAX7219 der Lebensretter. Es nimmt serielle Daten auf und kann 64 LEDs unabhängig voneinander ansteuern.

4. 20 PCS Blaue LED, 5 mm (bei aliexpress.com kaufen): Blau lieferte für mich das beste Ergebnis. Sie können es mit anderen Farben versuchen.

5. 20 PCS, die Marmor spielen (von aliexpress.com kaufen): Standardgröße, die Marmor spielt, wurde verwendet. Der Marmor muss transparent sein, um Licht durchzulassen.

6. Widerstand 10K: Wird verwendet, um den Segmentstrom des MAX7219 IC zu steuern. Den genauen Wert für verschiedene Segmentströme finden Sie im Datenblatt.

7. Drähte

8. Prototyp-Leiterplatte (bei aliexpress.com kaufen): Ich habe eine Prototyp-Leiterplatte für MAX7219 IC mit einer IC-Basis verwendet. Sie können auch Ihre individuelle Leiterplatte entwerfen.

Mechanische Werkzeuge

1. CNC 3018 PRO Lasergravierer Holz CNC-Router-Maschine (von aliexpress.com kaufen): Diese DIY CNG-Maschine wurde zum Schnitzen auf dem Holz für Marmor und LEDs verwendet. Dies ist eine ausgezeichnete Maschine mit einem niedrigen Preis für jeden Hersteller und Bastler.

2. Lötstation (kaufen Sie eine von aliexpress.com): Für das Projekt sind einige Lötarbeiten erforderlich und ein guter Lötkolben ist ein Muss für einen Hersteller. 60W ist eine gute Wahl für DIY-Löten.

3. Drahtschneider (bei aliexpress.com kaufen)

4. Titanbeschichteter Hartmetall-Schaftfräser für CNC (bei aliexpress.com kaufen): Sie können es auch mit dem mit der Maschine gelieferten Bit versuchen. In diesem Fall sollten Sie einige Änderungen am Design vornehmen.

Schritt 2: Gravieren und Schnitzen

Gravieren und Schnitzen
Gravieren und Schnitzen
Gravieren und Schnitzen
Gravieren und Schnitzen
Gravieren und Schnitzen
Gravieren und Schnitzen

Ich nahm ein 165X145X18,8 mm weiches Ahornholzstück zum Platzieren der LEDs der Uhr. An der Spitze jeder LED platziere ich eine Murmel und die Größe einer Standard-Spielkugel hat einen Durchmesser von 15,5 mm. Also habe ich 15,7 mm Löcher mit einer Tiefe von 7 mm gemacht. In der Mitte des Lochs habe ich einen 5 mm Bohrer zum Platzieren der LED gemacht. Der gesamte Text wurde mit 2 mm Tiefe erstellt. Sie können die Tiefe Ihrer Wahl erhöhen oder verringern. Sie können auch eine Lasergravur für den Text ausprobieren.

Das komplette Design stammt von Easel von Inventables. Easel ist eine webbasierte Softwareplattform, die es Ihnen ermöglicht, mit einem einzigen, einfachen Programm zu entwerfen und zu schnitzen, und die meisten Funktionen sind kostenlos. Sie müssen sich nur beim System anmelden, indem Sie ein Konto erstellen oder Gmail verwenden.

Easel Pro ist eine mitgliedschaftsbasierte Cloud-Software, die auf der kostenlosen Easel-Software von Inventables aufbaut. Easel und Easel Pro minimieren die Hindernisse, die mit komplizierter CAD- und CAM-Produktherstellungssoftware verbunden sind, und machen es den Benutzern leicht, physische Produkte herzustellen.

Mit Easel können Sie die Konstruktionsdatei im G-Code-Format exportieren oder Ihre CNC direkt aus der Easel-Umgebung einrichten und den Befehl an die CNC senden. In diesem Fall müssen Sie den Treiber für die Staffelei installieren. Sie können auch einen zuvor erstellten G-Code in die Easel-IDE importieren und ändern. Die Designdatei habe ich hiermit beigefügt. Sie können das Design mit Easel ganz einfach nach Ihren Wünschen ändern.

Schritt 3: Schleifen und Auftragen von Lack

Schleifen und Lackieren
Schleifen und Lackieren
Schleifen und Lackieren
Schleifen und Lackieren
Schleifen und Lackieren
Schleifen und Lackieren
Schleifen und Lackieren
Schleifen und Lackieren

Lack kann Holzprojekten und Gemälden ein schönes Finish verleihen. Bevor Sie Holz lackieren, schleifen Sie Ihr Stück und reinigen Sie Ihren Arbeitsplatz. Das Schleifen verleiht ein glattes Aussehen und bereitet das Holz für die Lackierung vor. Tragen Sie den Lack in mehreren dünnen Schichten auf und lassen Sie jede einzelne gut trocknen, bevor Sie mit der nächsten fortfahren. Um ein Gemälde zu lackieren, lassen Sie es vollständig trocknen und bürsten Sie dann den Lack vorsichtig auf. Eine Schicht reicht für viele Gemälde aus, Sie können jedoch eine weitere Schicht hinzufügen, solange Sie die vorherige zuerst gründlich trocknen lassen.

Bevor Sie den Lack auftragen, müssen Sie alle Unvollkommenheiten und Schönheitsfehler entfernen, bevor Sie den Lack auftragen. Verwenden Sie dazu Schleifpapier mit 100er Körnung für unfertige Teile und arbeiten Sie mit der Maserung des Holzes. Vorsichtig schleifen, bis das Stück glatt ist. Nach der Reinigung des Holzstückes den Lack in einem gut belüfteten Bereich auftragen.

Lack schützt das Holz vor Umweltstaub und Feuchtigkeit, kann jedoch die Farbe des Holzes beeinträchtigen.

Schritt 4: Herstellen der Schaltung

Den Kreislauf machen
Den Kreislauf machen
Den Kreislauf machen
Den Kreislauf machen
Den Kreislauf machen
Den Kreislauf machen
Den Kreislauf machen
Den Kreislauf machen

Die Hauptkomponente der Uhr ist ein Arduino Pro Mini-Mikrocontroller-Board und ein DS3231 RTC-Modul. Die Verbindung des Arduino Pro Mini und des RTC-Moduls ist sehr einfach. Sie müssen den SDA-Pin des RTC-Moduls mit dem SDA-Pin des Arduino und den SCL-Pin des RTC-Moduls mit dem SCL-Pin des Arduino verbinden. SDA- und SCL-Pins sind eigentlich A4 bzw. A5-Pin von Arduino. Sie müssen auch eine gemeinsame Masseverbindung zwischen Arduino- und RTC-Modulen herstellen. Ich benutzte Überbrückungsdrähte, um die Verbindungen herzustellen.

Die Verbindung zwischen Arduino und DS3231 RTC:

Arduino DS3231
SCL (A5) SCL
SDA (A4) SDA
5V VCC
Masse Masse

Zur Anzeige von Stunde, Minute und Sekunde benötigt eine binäre Uhr 20 LEDs. Wenn Sie das Datum anzeigen möchten, ist mehr erforderlich. Das Arduino-Board hat eine Einschränkung der GPIO-Pins. Also habe ich den MAX7219CNG LED-Treiber-IC zum Ansteuern von Tonnen von LEDs mit nur drei Pins des Arduino-Boards verwendet.

Der Treiber-IC MAX7219 kann 64 einzelne LEDs ansteuern, während er nur 3 Drähte für die Kommunikation mit dem Arduino verwendet, und darüber hinaus können wir mehrere Treiber und Matrizen verketten und trotzdem die gleichen 3 Drähte verwenden.

Die 64 LEDs werden von 16 Ausgangspins des ICs angesteuert. Die Frage ist nun, wie das möglich ist. Nun, die maximale Anzahl von LEDs, die gleichzeitig leuchten, beträgt tatsächlich acht. Die LEDs sind als 8×8 Reihen und Spalten angeordnet. So aktiviert der MAX7219 jede Spalte für einen sehr kurzen Zeitraum und steuert gleichzeitig auch jede Reihe an. Beim schnellen Durchschalten der Spalten und Zeilen nimmt das menschliche Auge also nur ein Dauerlicht wahr.

Die VCC und GND des MAX7219 gehen an die 5V- und GND-Pins des Arduino und die drei anderen Pins, DIN, CLK und CS gehen an einen beliebigen digitalen Pin des Arduino-Boards. Wenn wir mehr als ein Modul anschließen möchten, verbinden wir einfach die Ausgangspins des vorherigen Breakout-Boards mit den Eingangspins des neuen Moduls. Eigentlich sind diese Pins alle gleich, außer dass der DOUT-Pin der vorherigen Platine auf den DIN-Pin der neuen Platine geht.

Die Verbindung zwischen Arduino und MAX7219CNG:

Arduino MAX7219
D12 LÄRM
D11 CLK
D10 BELASTUNG
Masse Masse

Schritt 5: Hochladen des Programms

Hochladen des Programms
Hochladen des Programms

Das gesamte Programm ist in der Arduino-Umgebung geschrieben. Für die Skizze wurden zwei externe Bibliotheken verwendet. Einer ist für das RTC-Modul und ein anderer für den MAX7219 IC. Laden Sie die Bibliotheken über den Link herunter und fügen Sie sie dem Arduino IED hinzu, bevor Sie das Programm kompilieren.

Das Hochladen von Programmen in Arduino Pro Mini ist ein bisschen schwierig. Werfen Sie einen Blick auf das Tutorial, wenn Sie Arduino Pro Mini noch nie verwendet haben:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231 > GIT: https://github.com/jarzebski/Arduino-DS3231 > */ #include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Jetzt brauchen wir ein LedControl zum Arbeiten. ***** Diese Pin-Nummern funktionieren wahrscheinlich nicht mit Ihrer Hardware ***** Pin 12 ist mit dem DataIn verbunden Pin 11 ist mit dem CLK verbunden Pin 10 ist mit LOAD verbunden Wir haben nur einen einzigen MAX72XX. */ DS3231 Uhr; RTCDateTime dt; LedControl lc=LedControl(12, 11, 10, 1); int Sekunden, Minuten, Stunden; Bytenummer[10]={B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; Void setup () {//Serial.begin (9600); /* Der MAX72XX befindet sich beim Start im Energiesparmodus, wir müssen einen Weckruf ausführen */ lc.shutdown(0, false); /* Helligkeit auf mittlere Werte einstellen */ lc.setIntensity(0, 15); /* und Anzeige löschen */ lc.clearDisplay(0); //lc.setLed(0, Zeile, Spalte, wahr); // lc.setRow (0, 0, B11111111); // lc.setRow(0, 1, B11111111); // lc.setRow (0, 2, B11111111); // lc.setRow (0, 3, B11111111); // lc.setRow (0, 4, B11111111); // lc.setRow(0, 5, B11111111); // lc.setColumn(0, 2, B11111111); // lc.setColumn(0, 3, B11111111); // lc.setColumn(0, 4, B11111111); // lc.setColumn(0, 5, B11111111); // DS3231 clock.begin() initialisieren; // Setze die Sketch-Kompilierungszeit //clock.setDateTime (_DATE_, _TIME_); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); } int-Menü = 0, hoch, runter; int Stunden_eins; int Stunden_ten; int Minuten_eins; int minuten_ten; int Sekunden_eins; int Sekunden_ten; Void Schleife () { if (digitalRead (5) = = 0) { Verzögerung (300); Menü++; if(Menü>3) Menü = 0; } if(menu==0){dt = clock.getDateTime(); Stunden = dt. Stunde; Minuten = dt. Minute; Sekunden = dt. Sekunde; if(Stunden>12) Stunden = Stunden - 12; if(Stunden==0) Stunden = 1; Stunden_eins = Stunden%10; Stunden_ten = Stunden/10; minuten_one = minuten%10; minuten_ten = minuten/10; Sekunden_eins = Sekunden%10; Sekunden_ten = Sekunden/10; lc.setRow(0, 0, Zahl[Sekunden_eins]); lc.setRow(0, 1, Zahl[Sekunden_ten]); lc.setRow(0, 2, Zahl[Minuten_eins]); lc.setRow(0, 3, Zahl[minutes_ten]); lc.setRow(0, 4, Zahl[Stunden_eins]); lc.setRow(0, 5, Zahl[Stunden_ten]); aufrechtzuerhalten. Wenn (Menü = = 1) { Wenn (digitalRead (6) = = 0) { Verzögerung (300); Stunden++; if(Stunden>=24)Stunden = 0; aufrechtzuerhalten. Wenn (digitalRead (7) = = 0) { Verzögerung (300); Std--; if(Stunden=60) Minuten = 0; aufrechtzuerhalten. Wenn (digitalRead (7) = = 0) { Verzögerung (300); Protokoll--; if(Minuten<0) Minuten = 0; } minuten_one = minuten%10; minuten_ten = minuten/10; lc.setRow(0, 4, B00000000); lc.setRow(0, 5, B00000000); lc.setRow(0, 1, B00000000); lc.setRow(0, 0, B00000000); lc.setRow(0, 2, Zahl[Minuten_eins]); lc.setRow(0, 3, Zahl[minutes_ten]); } if(menu==3){ clock.setDateTime(2020, 4, 13, Stunden, Minuten, 01); Menü = 0; } //lc.setLed(0, Zeile, Spalte, falsch); //lc.setLed(0, Zeile, Spalte, wahr); //lc.setColumn(0, Spalte, B10100000); //lc.setRow (0, 4, B11111111); //lc.setRow(0, Zeile, (Byte)0); //lc.setColumn(0, Spalte, (Byte)0); // Für führende Nullen schauen Sie sich das DS3231_dateformat-Beispiel an // Serial.print ("Rohdaten: "); // Serial.print (dt. Jahr); Serial.print("-"); // Serial.print (dt. Monat); Serial.print("-"); // Serial.print (dt. Tag); Serial.print (" "); // Serial.print (dt. Stunde); Serial.print (":"); // Serial.print (dt.minute); Serial.print (":"); // Serial.print (dt.second); Serial.println(""); // // Verzögerung (1000); }

Schritt 6: Platzierung der LEDs

Platzierung der LEDs
Platzierung der LEDs
Platzierung der LEDs
Platzierung der LEDs
Platzierung der LEDs
Platzierung der LEDs
Platzierung der LEDs
Platzierung der LEDs

In dieser Phase werde ich alle LEDs in die Löcher der Holzplatte stecken. Die Anschlüsse der LEDs sind im Schaltplan dargestellt. Da wir den LED-Treiber MAX7219 zum Ansteuern der LEDs verwenden, müssen alle LEDs in Matrixform angeschlossen werden. Also habe ich die Anodenstifte aller LEDs in jeder Spalte zusammen und alle Kathodenstifte jeder Reihe zusammen gemäß dem Schaltplan verbunden. Nun, unsere Spaltenpins sind eigentlich Anodenpins von LEDs und Zeilenpins sind eigentlich Kathodenpins von LEDs.

Zum Ansteuern von LEDs mit MAX7219 müssen Sie den Kathodenstift einer LED mit einem Ziffernstift des ICs und den Anodenstift der LED mit einem Segmentstift des ICs verbinden. Daher sollten unsere Spaltenpins mit den Segmentpins und die Zeilenpins mit dem Ziffernpin des MAX7219 verbunden werden.

Sie müssen einen Widerstand zwischen dem ISET-Pin und dem VCC des MAX7219-IC anschließen und dieser Widerstand steuert den Strom der Segmentpins. Ich habe einen 10K-Widerstand verwendet, um 20 mA in jedem Segmentpin aufrechtzuerhalten.

Schritt 7: LEDs anschließen

Anschließen von LEDs
Anschließen von LEDs
Anschließen von LEDs
Anschließen von LEDs
Anschließen von LEDs
Anschließen von LEDs

Zu diesem Zeitpunkt habe ich alle LEDs in einem Zeilen-Spalten-Matrix-Format verbunden. Ich musste einige zusätzliche Überbrückungsdrähte verwenden, um die LEDs zu verbinden, aber Sie können die Verbindung ohne zusätzliche Drähte herstellen, wenn die Leitungen der LEDs lang genug sind, um sich gegenseitig zu berühren.

In dieser Konfiguration ist kein Widerstand erforderlich, da der MAX7219 den Strom übernimmt. Ihre Aufgabe ist es, den richtigen Wert für den ISET-Widerstand auszuwählen und den ISET-Pin mit diesem Widerstand hochzuziehen. Bevor Sie die LEDs platzieren und anschließen, schlage ich vor, dass Sie jede LED überprüfen. Weil das Platzieren einer schlechten LED viel Zeit kostet. Im nächsten Schritt verbinden wir die Zeilen- und Spaltendrähte mit dem MAX ic.

Schritt 8: Platine mit den LEDs verbinden

Platine mit den LEDs verbinden
Platine mit den LEDs verbinden
Platine mit den LEDs verbinden
Platine mit den LEDs verbinden
Platine mit den LEDs verbinden
Platine mit den LEDs verbinden

Unsere Platine mit RTC, Arduino und MAX7219 ist schon lange fertig und auch die LED-Matrix haben wir im vorherigen Schritt vorbereitet. Jetzt müssen wir alle Dinge gemäß dem Schaltplan miteinander verbinden. Zuerst müssen wir die Zeilen- und Spaltendrähte mit dem MAX7219IC verbinden. Die Verbindung wurde im Schaltplan erwähnt. Um es klarer zu machen, folgen Sie der folgenden Tabelle.

LED-Matrix MAX7219CNG
REIHE0 ZIFFER0
REIHE1 ZIFFER1
REIHE2 ZIFFER2
REIHE3 DIGIT3
SPALTE0 SEGA
SPALTE1 SEGB
SPALTE2 SEGC
SPALTE3 SEGD
SPALTE4 SEGE
SPALTE 5 SEGF

ROW0-> Oberste Reihe

COLUMN0 -> Spalte ganz rechts (SS COLUMN)

Nachdem Sie die Verbindung hergestellt haben, müssen Sie die Platine und das Arduino mit dem Holzstück befestigen, um ein Abbrechen der Verbindung zu vermeiden. Ich benutzte Heißkleber, um alle Schaltungen an Ort und Stelle zu fixieren. Um einen Kurzschluss zu vermeiden, verwenden Sie eine große Menge Klebstoff, um die Lötstelle an der Unterseite der Leiterplatte zu verbergen.

Um eine Uhr nutzbar zu machen, müssen Sie eine Option zum Einstellen der Uhrzeit bei Bedarf beibehalten. Ich habe drei Tastenschalter zum Einstellen der Zeit hinzugefügt. Eine zum Ändern der Option und zwei zum Erhöhen und Verringern von Stunde und Minute. Die Schaltflächen sind in der oberen rechten Ecke platziert, damit diese leicht zugänglich sind.

Schritt 9: Platzieren der Murmeln

Platzieren der Murmeln
Platzieren der Murmeln
Platzieren der Murmeln
Platzieren der Murmeln
Platzieren der Murmeln
Platzieren der Murmeln

Dies ist die letzte Phase unseres Projekts. Die gesamte Schaltungsverbindung ist abgeschlossen. Jetzt müssen Sie die Murmel an der Oberseite der Holzuhr platzieren. Zum Platzieren der Murmeln habe ich Heißkleber verwendet. Verwenden Sie zu diesem Zweck einen transparenten weißen Klebestift. Ich habe Heißkleber in jedes Loch von der Oberseite aufgetragen und auf die LEDs habe ich die Murmel vorsichtig in jedes Loch gelegt. Das gleichmäßige Hinzufügen von Klebstoff erhöht das Leuchten der LED. Ich habe BLUE LED für meine Uhr verwendet. Es hat mir das beste Ergebnis gebracht.

Gib der Uhr Macht. Wenn es Zeit zeigt, dann Gratulation!!!

Sie haben es geschafft!

Genießen!

Make it Glow-Wettbewerb
Make it Glow-Wettbewerb
Make it Glow-Wettbewerb
Make it Glow-Wettbewerb

Zweiter im Make it Glow-Wettbewerb