Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Entwerfen und Herstellen der Zahnräder
- Schritt 2: Montage des Getriebesystems
- Schritt 3: Anschließen des Steppers und des Sensors
- Schritt 4: Die Elektronik, die die Uhr ticken lässt
- Schritt 5: Programmierung des Arduino
- Schritt 6: Genießen Sie zum ersten Mal den Klang Ihrer Uhr
Video: Planetengetriebeuhr - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
(Alte) mechanische Uhrwerke sind unglaublich interessant und schön anzusehen, aber leider kaum selbst zu bauen. Mechanischen Uhren fehlt auch die Sorglosigkeit der heute verfügbaren präzisen Digitaltechnik. Dieses Instructable zeigt Ihnen einen Weg, das Beste aus beiden Welten zu kombinieren; indem man mechanische Uhrzeiger durch ein Planetengetriebe mit einem Schrittmotor und einem Arduino antreibt!
Lieferungen
Allgemeine Komponenten:
- 5mm Holz- und Acrylplatte
- M5-Schrauben (Senkkopf), Unterlegscheiben und Muttern
- PCB-Abstandshalter
- M3-Schrauben für den Schrittmotor
Elektrische Bauteile:
- Stepper-Treiber (ich habe den L293d verwendet)
- Jede Art von Arduino
- Echtzeituhr (ich habe das DS3231 verwendet)
- Hall-Effekt-Sensor (ich habe den A3144) verwendet
- 5mm Neodium-Magnet
- Schaltflächen für Benutzereingaben
- 10K Widerstand
- 100uf 25V Kondensator
- DC-Buchse
- 5V 2A DC-Netzteil
- Batterie für die RTC (in meinem Fall cr2032)
Mechanische Komponenten:
- Jede Art von 1,8-Grad/Schritt-Schrittmotor mit 5 mm Achse
- GT2 400mm Zahnriemen
- GT2 60 Zähne 5mm Achsriemenscheibe
- GT2 20 Zähne 5mm Achsriemenscheibe
- 5x16x5 mm Lager (3x)
- 5x16x5 mm Bundlager (2x)
- Gewindestange M5x50
Schritt 1: Entwerfen und Herstellen der Zahnräder
Eines der Ziele dieses Projekts war es, einen Motor zu haben, der die gesamte Uhr antreibt, ähnlich einer echten mechanischen Uhr, bei der ein Fluchtmechanismus die gesamte Uhr antreibt. Der Minutenzeiger muss jedoch 12 Umdrehungen in der Zeit ausführen, in der der Stundenzeiger 1 Umdrehung macht. Dies bedeutet, dass ein Untersetzungsgetriebe von 1:12 benötigt wird, um beide Hände mit einem Motor anzutreiben. Ich habe mich für ein Planetengetriebe entschieden, das mitgelieferte Video erklärt sehr schön, wie diese Art von Getriebe funktioniert.
Der nächste Schritt war für mich, die Zähnezahl für die verschiedenen Zahnräder zu bestimmen, um ein Verhältnis von 1:12 zu schaffen. Diese Website war sehr hilfreich und enthält alle benötigten Formeln. Ich befestigte das Sonnenrad am Minutenzeiger und den Planetenträger am Stundenzeiger und ließ das Hohlrad stehen. Machen wir ein bisschen Mathe!
- S = Zähnezahl des Sonnenrades
- R = Zähnezahl des Hohlrades
- P = Zähnezahl des Planetenrades
Das Übersetzungsverhältnis (i) wird bestimmt durch:
i = S/R+S
Beachten Sie, dass die Zähnezahl des Planetenrads in diesem Fall für das Übersetzungsverhältnis keine Rolle spielt, wir jedoch die allgemeine Einschränkung beachten müssen:
P = (R - S)/2
Nach einigem Rätseln habe ich folgende Zahlen verwendet: S = 10; R = 110; P = 50; Sie scheinen am Rande des Möglichen zu liegen, da zwischen den Planetenrädern nur sehr wenig Spiel ist, aber es funktioniert!
Sie können die Zahnräder in Ihrem bevorzugten CAD-Programm zeichnen, die meisten haben spezielle Zahnrad-Plugins. Sie können auch einfach die an dieses Instructable angehängten Dateien verwenden. selbstverständlich. Beachten Sie, dass alle Zahnräder, obwohl sie sich in der Größe unterscheiden, die gleiche Zahnteilung haben.
Ich dachte, es wäre großartig, diese Zahnräder aus 5 mm Aluminium herzustellen und kontaktierte einen lokalen Laden mit einem Wasserstrahl, wenn sie diese Zahnräder für mich schneiden könnten. Normalerweise würden Sie niemals Zahnräder mit Wasserschneidern herstellen, aber dies sind Zahnräder mit sehr geringer Leistung. Überraschenderweise stimmten sie zu, es zu versuchen, aber dieser Plan scheiterte schrecklich. Die Teile waren für den Wasserstrahl einfach zu klein und begannen sich beim Schneiden zu bewegen.
Dieser Rückschlag bedeutete, dass es Zeit für Plan B war, also kaufte ich 5mm rauchschwarzes Acryl und fand einen Platz mit einem Laserschneider, der keine Probleme hatte, meine Zahnräder zu schneiden. Wenn Sie keinen Laserschneider zur Verfügung haben, können Sie für diese Zahnräder wahrscheinlich auch einen 3D-Drucker verwenden, ich habe die STL-Dateien beigefügt (das Hohlrad muss möglicherweise in 3 Teile geteilt werden).
Nach dem Schneiden drücke ich Passlager in die Planetenräder. Um die Passform richtig zu machen, habe ich ein Probestück aus Acryl mit mehreren Löchern gemacht, die jeweils einen etwas größeren Durchmesser hatten (0,05 mm Schritte). Nachdem ich die Einstellung mit der richtigen Passform gefunden hatte, änderte ich die Lochgröße in den Planetenrädern auf diese Einstellung. Dies ist je nach Material und Maschinentyp unterschiedlich, daher sollten Sie dies immer selbst tun.
Schritt 2: Montage des Getriebesystems
Zur Montage der Zahnräder wird der Rahmen der Uhr benötigt. Jetzt können Sie Ihrer Kreativität freien Lauf lassen, da die Form des Rahmens relativ unwichtig ist, solange alle Schraubenlöcher an der richtigen Stelle sind. Ich entschied mich, viele Löcher in das Zifferblatt und die Rückplatte zu bohren, um den Getriebemechanismus zu betonen. Dies ist auch der Grund, warum die Planetenträger und der Minutenzeiger irgendwie durchsichtig sind, aber es sieht auch einfach cool aus!
Ich habe wieder den Laserschneider verwendet, um diese Teile herzustellen, und da die Acrylteile 5 mm dick waren, habe ich auch die Holzteile 5 mm dick gemacht. Alle Löcher im Zifferblatt und Planetenträger wurden versenkt, um passende Schrauben aufzunehmen.
Die Zentralachse der Uhr läuft in zwei Lagern innerhalb der Planetenträger. Da ich diese Achse aus 5mm Stangenmaterial hergestellt habe, sitzt sie sehr fest in den Lagern und ich konnte diese Komponenten nicht mehr demontieren. Es wäre viel einfacher, nur ein Stück M5-Gewinde zu verwenden, da Sie auch kein eigenes Gewinde mehr schneiden müssten (wenn ich es nur vorher gewusst hätte…..). Um zu verhindern, dass sich das Sonnenrad um die Achse dreht, hat es ein D-förmiges Loch, daher muss die Achse auch in diese D-Form gefeilt werden. Wenn das Sonnenrad um die Achse passt, können Sie die Achse montieren, vergessen Sie die Planetenträger nicht, wenn Sie Flanschlager verwenden! Eine Montageanleitung finden Sie in der Explosionszeichnung.
Wenn die Mittelachse montiert ist, ist es Zeit für die Planetenräder. Auch diese benötigen die kleinen Unterlegscheiben, genau wie die Zentralachse, damit die Gänge reibungslos laufen. Wenn alles an den Planetenträgern montiert ist, prüfen Sie, ob die Planetenräder und das Sonnenrad leichtgängig sind.
Das Mittelteil kann nun in den Uhrenrahmen montiert werden. Dies ist eine mühsame Arbeit, aber es hilft sehr, die Schrauben durch die Frontplatte zu stecken und festzukleben. Es kann auch sinnvoll sein, die Frontplatte anzuheben, um Platz für den Minutenzeiger zu schaffen. Die Fotos zeigen, dass ich sechs kleine Papierstücke zwischen den Zahnkranz und die Rückplatte gelegt habe, um ein wenig Spiel für die Zahnräder zu geben. Achten Sie beim Einsetzen des Planetenträgers darauf, dass die Zifferblätter auf eine sinnvolle Position zeigen (wenn der Minutenzeiger auf 12 zeigt, sollte der Stundenzeiger nicht zwischen zwei Stunden liegen)
Schritt 3: Anschließen des Steppers und des Sensors
Da wir nun ein Getriebe haben, das die Zeiger richtig antreibt, müssen wir das Getriebe noch richtig antreiben. Es können verschiedene Arten von Elektromotoren verwendet werden, ich habe mich für einen Schrittmotor entschieden, da er präzise Bewegungen ohne konstante Winkel-Feedback-Sensoren ausführen kann. Ein Schrittmotor kann auch ein echtes "Klick"-Geräusch erzeugen, was für die halbmechanische Uhr großartig ist!
Ein normaler Schrittmotor kann 200 Schritte pro Umdrehung machen, was 200 Schritten pro Stunde entspricht, wenn wir ihn mit dem Minutenzeiger verbinden. Das würde ein Intervall von 18 Sekunden pro Schritt bedeuten, was noch nicht nach einer tickenden Uhr klingt. Daher habe ich ein 1:3-Getriebe zwischen dem Schrittmotor und den Minutenzeigern verwendet, so dass der Schrittmotor 600 Schritte pro Stunde machen muss. Im Halbschrittmodus kann dies auf 1200 Schritte pro Stunde erhöht werden, was einem Schritt pro 3 Sekunden entspricht. Klingt besser!
Ein Problem mit Schrittmotoren ist, dass Sie nie wissen, wo sie sich befinden, wenn Sie Ihren Arduino einschalten. Aus diesem Grund haben alle 3D-Drucker Endanschläge, sodass Sie Ihren Drucker an eine bekannte Position bewegen und dann von diesem Punkt aus fortfahren können. Dies wird auch für die Uhr benötigt, nur ein Endanschlag wird nicht funktionieren, da eine Uhr kontinuierlich rotieren soll. Um diese Positionserkennung zu realisieren, habe ich einen A3144 Hall-Effekt-Sensor verwendet, der einen Magneten (auf Polarität überprüfen! ….) am Planetenträger erkennt. Dies wird verwendet, um die Zeiger beim Start in eine bestimmte Position zu bewegen, wonach sie sich zur gewünschten Zeit bewegen können.
Die Montage ist sehr einfach; Befestigen Sie den Schrittmotor an der Rückplatte und lassen Sie die Schrauben etwas locker. Dann können Sie die kleine Riemenscheibe auf der Schrittmotorachse montieren und prüfen, ob der Zahnriemen gerade läuft. Jetzt können Sie den Schrittmotor verschieben, um die Spannung des Zahnriemens einzustellen. Der Zahnriemen braucht ein kleines bisschen Spiel, um die Gänge nicht zu belasten. Spielen Sie mit dieser Einstellung herum, bis Sie zufrieden sind, und ziehen Sie dann die Schrauben des Schrittmotors vollständig fest.
Der Hall-Effekt-Sensor ist eingeklebt. Es ist am besten, zuerst drei Drähte an den Sensor zu löten und darauf zu achten, dass um jedes Bein des Sensors Schrumpfschlauch gelegt wird, damit sie sich nicht gegenseitig kurzschließen können. Nach dem Löten kann der Sensor eingeklebt werden. Es spielt keine Rolle, welche Seite oben ist, solange Sie den Magneten noch nicht angebracht haben. Nachdem Sie den Sensor eingeklebt haben, schließen Sie ihn an einen Arduino oder eine kleine LED-Schaltung an, um zu testen, ob er funktioniert. (HINWEIS: Der Hall-Effekt-Sensor funktioniert nur, wenn die Magnetfeldlinien in die richtige Richtung verlaufen). Überprüfen Sie mit dieser Testschaltung, wie der Magnet geklebt werden soll. Wenn Sie sich absolut sicher sind, welche Seite Ihres Magneten zum Sensor zeigen soll, kleben Sie den Magneten fest.
Schritt 4: Die Elektronik, die die Uhr ticken lässt
Sie könnten einen sehr einfachen Arduino-Code verwenden, der einen halben Schritt mit dem Motor macht und dann eine Verzögerung von 3000 Millisekunden bis zum nächsten Schritt benötigt. Dies würde funktionieren, ist aber nicht sehr genau, da die interne Arduino-Uhr nicht ultragenau ist. Zweitens würde der Arduino jedes Mal die Zeit vergessen, wenn er an Leistung verliert.
Um die Zeit im Auge zu behalten, ist es daher am besten, eine Echtzeituhr zu verwenden. Diese Dinger sind speziell entwickelte Chips mit einer Backup-Batterie, die die Zeit genau verfolgen. Für dieses Projekt habe ich den DS3231 RTC gewählt, der über i2c mit einem Arduino kommunizieren kann, was die Verdrahtung erleichtert. Sobald Sie die Zeit auf seinem Chip richtig eingestellt haben, wird er nie vergessen, wie spät es ist (solange die cr2032-Batterie noch etwas Saft hat). Auf dieser Website finden Sie alle Details zu diesem Modul.
Die Ansteuerung des Schrittmotors erfolgt mit einem L293d-Motortreiber. Einige fortschrittlichere Schrittmotortreiber verwenden ein PWM-Signal für Mikroschritte und Strombegrenzung. Dieses PWM-Signal kann das nervige Piep-Geräusch verursachen, mit dem jeder Hersteller vertraut ist (insbesondere, wenn Sie einen 3D-Drucker besitzen). Da diese Uhr Teil Ihres Interieurs werden soll, sind unangenehme Geräusche nicht erwünscht. Daher habe ich mich entschieden, den Low-Tech-Motortreiber l293d zu verwenden, um sicherzustellen, dass meine Uhr stumm ist (außer dem Schritt alle 3 Sekunden, aber das macht wirklich Spaß!). Auf dieser Website finden Sie eine detaillierte Beschreibung des l293d-Chips. Beachten Sie, dass ich meinen Schrittmotor mit 5 V betreibe, was den Stromverbrauch und die Temperatur des Schrittmotors senkt.
Wie bereits erwähnt, verwende ich einen Hall-Effekt-Sensor, um einen am Planetenträger geklebten Magneten zu erkennen. Das Funktionsprinzip des Sensors ist sehr einfach, er ändert seinen Zustand, wenn ein Magnet nahe genug ist. Auf diese Weise kann Ihr Arduino ein digitales High oder Low erkennen und somit erkennen, ob ein Magnet in der Nähe ist. Schauen Sie sich diese Website an, die zeigt, wie der Sensor angeschlossen wird und den einfachen Code zeigt, der für die Magneterkennung verwendet wird.
Zu guter Letzt habe ich 4 Tasten für die Benutzereingabe auf der Platine hinzugefügt. Sie verwenden die internen Pullup-Widerstände von Arduino, um die Verdrahtung zu vereinfachen. Meine Platine hat auch Header in einer Uno-Konfiguration, so dass ich Arduino-Shields für mögliche Erweiterungen hinzufügen könnte (ich habe dies bisher nicht getan).
Ich habe zuerst alles auf meinem Steckbrett getestet und dann eine benutzerdefinierte Platine für dieses Projekt entworfen und bestellt, da es fantastisch aussieht! Sie können die Platine auch auf der Rückseite Ihrer Uhr montieren, wenn Sie sie nicht ansehen möchten.
Die Gerber-Dateien für die Platine können von meinem Laufwerk heruntergeladen werden, Instructables lässt mich sie aus irgendeinem Grund nicht hochladen. Verwenden Sie diesen Link zu meinem Google-Laufwerk.
Schritt 5: Programmierung des Arduino
Der grundlegende Code für das Arduino ist eigentlich sehr einfach. Ich habe ein Schema angehängt, das visualisiert, was im Arduino passiert und wie das Arduino mit den anderen Geräten kommuniziert. Ich habe mehrere Bibliotheken verwendet, um die Codierung zu vereinfachen.
- Accelstepper -> behandelt die Schrittsequenz des Schrittmotors, ermöglicht intuitive Befehle wie: Stepper.runSpeed() oder Stepper.move(), mit denen Sie sich mit einer bestimmten Geschwindigkeit bzw. zu einer bestimmten Position bewegen können.
- Draht -> wird für die i2c-Kommunikation benötigt, auch bei Verwendung der RTClib
- RTClib -> behandelt die Kommunikation zwischen Arduino und RTC, lässt Sie intuitive Befehle wie rtc.now() geben, die die aktuelle Zeit zurückgeben.
- OneButton -> Behandelt die Tasteneingabe, erkennt Drücken und führt dann eine vordefinierte Leere aus, um etwas zu tun. Kann einfaches, doppeltes oder langes Drücken erkennen.
Beim Schreiben von Code für eine Uhr ist es sehr wichtig, Variablen zu vermeiden, die ständig ansteigen. Da der Arduino-Code rund um die Uhr läuft, werden diese Variablen schnell größer und größer und führen schließlich zu einem Überlauf. Beispielsweise wird dem Schrittmotor nie befohlen, eine bestimmte Position anzufahren, da diese Position mit der Zeit nur zunehmen würde. Stattdessen wird dem Schrittmotor befohlen, eine bestimmte Anzahl von Schritten in eine bestimmte Richtung zu bewegen. Auf diese Weise gibt es keine mit der Zeit ansteigende Positionsvariable.
Wenn Sie die RTC zum ersten Mal anschließen, müssen Sie die Zeit des Chips einstellen. Es gibt einen Code, den Sie auskommentieren können, der die RTC-Zeit gleich Ihrer Computerzeit setzt (die Zeit in dem Moment, in der Sie den Code kompilieren). Beachten Sie, dass die RTC-Zeit jedes Mal auf die Zeit zurückgesetzt wird, zu der Sie Ihren Code kompiliert haben, wenn Sie dies unkommentiert lassen. Also entkommentieren Sie dies, führen Sie es einmal aus und kommentieren Sie es dann erneut.
Ich habe meinen Code an dieses Instructable angehängt, ich habe es gründlich kommentiert. Sie können es ohne Änderungen hochladen oder es sich ansehen und sehen, was Sie denken!
Schritt 6: Genießen Sie zum ersten Mal den Klang Ihrer Uhr
Nach dem Anschließen der gesamten Elektronik und dem Hochladen des Codes ist dies das Ergebnis!
Das Grunddesign dieser Uhr ist sehr einfach und kann in vielen verschiedenen Formen und Größen hergestellt werden. Da ein Arduino an Bord ist, können Sie auch problemlos zusätzliche Funktionen hinzufügen. Stellen Sie einen Wecker, lassen Sie die Uhr Ihre Kaffeemaschine zu einer bestimmten Zeit einschalten, Internetverbindung, coole Demo-Modi, die das mechanische Uhrwerk hervorheben, um Ihr Design anderen zu zeigen und vieles mehr!
Wie Sie vielleicht in diesem Instructable bemerkt haben, musste ich meine Uhr auseinander nehmen, um dieses Instructable zu schreiben. Obwohl bedauerlich für dieses Instructable, kann ich zumindest garantieren, dass das Design auf lange Sicht sehr gut funktioniert, da diese Uhr seit mehr als 3 Jahren in meinem Wohnzimmer ohne Probleme tickt!
Bitte lassen Sie es mich in den Kommentaren wissen, wenn Ihnen dieses Instructable gefallen hat, es ist das erste Mal, dass ich eines schreibe. Auch wenn Sie Tipps oder Fragen haben, senden Sie mir einfach eine Nachricht. Und ich hoffe, ich habe jemanden inspiriert, eines Tages auch eine halbmechanische Uhr zu bauen!
Erster Preis beim Uhrenwettbewerb