Inhaltsverzeichnis:
- Schritt 1: 3D-Druck der Kunststoffkomponenten
- Schritt 2: Bereiten Sie Ihre Steuerplatinen und Verkabelung vor
- Schritt 3: Montieren Sie die Servos
- Schritt 4: Einrichten und Testen
- Schritt 5: Hochladen des Codes
- Schritt 6: Montage der Uhr auf der Rückwand
- Schritt 7: Endgültige Einrichtung und Bedienung
Video: Mechanische Uhr mit sieben Segmenten - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Vor ein paar Monaten habe ich eine zweistellige mechanische 7-Segment-Anzeige gebaut, die ich in einen Countdown-Timer verwandelt habe. Es kam ganz gut heraus und einige Leute schlugen vor, das Display zu verdoppeln, um eine Uhr zu machen. Das Problem war, dass mir auf meinem Arduino Mega bereits PWM IO ausging und nicht genug für die zweite oder dritte Stelle zur Verfügung stand. Ich wurde dann auf diese PCA9685 16-Kanal-PWM-Treiber hingewiesen, die über eine I2C-Schnittstelle arbeiten. Diese ermöglichten es, die 28 Servos, die ich brauchte, alle mit den beiden I2C-Pins auf einem Arduino anzusteuern. Also machte ich mich an die Arbeit, eine Uhr zu bauen, die jetzt ein DS1302-Echtzeituhrmodul verwendet, um die Zeit zu halten, und zwei 16-Kanal-Servotreiber zur Steuerung der 28 Servos, aus denen das Display besteht, die alle von einem Arduino Uno angetrieben werden.
Wenn Sie dieses Instructable genießen, ziehen Sie bitte in Betracht, dafür im Uhrenwettbewerb zu stimmen
Lieferungen:
Um Ihre Uhr zu bauen, benötigen Sie neben einigen grundlegenden Werkzeugen die folgenden Materialien:
- Arduino Uno - Hier kaufen
- DS1302 Taktmodul - Hier kaufen
- 2 x PCA9685 16Ch Servotreiber - hier kaufen
- 28 x Micro Servos - Hier kaufen
- Flachbandkabel - Hier kaufen
- Stiftleisten für männliche Stifte - hier kaufen
- Buchsenleisten für Stiftleisten - hier kaufen
- 3mm MDF - Hier kaufen
- Schwarze Sprühfarbe - Hier kaufen
- 5V 5A Batterie-Eliminationsschaltung - hier kaufen
- 12V Netzteil - Hier kaufen
Für dieses Projekt benötigen Sie auch einige 3D-gedruckte Teile. Wenn Sie noch keinen 3D-Drucker haben und gerne Dinge herstellen, sollten Sie auf jeden Fall in Betracht ziehen, einen zu kaufen. Der hier verwendete Creality Ender 3 Pro ist erschwinglich und produziert für seinen Preis ziemlich gute Drucke.
- 3D-Drucker gebraucht - hier kaufen
- Filament - Hier kaufen
Schritt 1: 3D-Druck der Kunststoffkomponenten
Ich habe die 7-Segment-Anzeigen so einfach wie möglich gestaltet. Das Servo ist auch die Stützhalterung, um das Segment darüber zu halten. Für jedes Segment werden zwei 3D-gedruckte Komponenten benötigt, ein Distanzblock zur Unterstützung der Unterseite des Servos und das Displaysegment, das direkt auf den Servoarm geklebt wird.
Laden Sie die 3D-Druckdateien herunter - Mechanische 7-Segment-Anzeigeuhr 3D-Druckdateien
Drucken Sie die Servosegmente und -punkte mit einem hellen PLA. Ich habe durchscheinendes Grün verwendet, aber auch Rot, Orange oder Gelb sollten gut funktionieren. Ich habe schwarzes PLA für die Abstandsblöcke und Punktstützen verwendet, damit sie nicht sichtbar sind, wenn die Segmente in die Aus-Position gedreht sind.
Wenn Sie keinen Zugang zu einem 3D-Drucker haben, probieren Sie einen der Online-Druckdienste aus. Es gibt eine Reihe von erschwinglichen Diensten, die die Komponenten ausdrucken und in wenigen Tagen zu Ihnen nach Hause liefern.
Schritt 2: Bereiten Sie Ihre Steuerplatinen und Verkabelung vor
Sie benötigen zwei PCA9685 16-Kanal-PWM-Treiber, um Ihre 28-Takt-Servos anzusteuern. Ich habe die Servos in die Stunden- und Minutenziffern getrennt, wobei jedes Ziffernpaar von einer Platine angetrieben wird. Ich habe also eine Platine, die die Servos für die zwei Stundenziffern steuert und die zweite die Servos für die zwei Minutenziffern.
Um die beiden miteinander zu verketten, müssen Sie einen 6-adrigen Flachbandkabelstecker herstellen und eine zweite Kopfleiste auf das andere Ende der ersten Servosteuerplatine löten. Sie müssen auch die I2C-Adresse auf der zweiten Platine ändern, damit sie sich von der ersten unterscheidet und eindeutig identifizierbar ist.
Sie müssen auch den Kabelbaum herstellen, um die drei Platinen (zwei Servoplatinen und das Taktmodul) mit Ihrem Arduino zu verbinden. Sie benötigen 5V und GND zu jedem Board sowie die I2C-Verbindungen zu Ihren Arduino-Pins A4 und A5 (I2C auf Arduino Uno) und die Clock-Modul-Pins CLK, DAT & RST zu den Pins 6, 7 und 8 auf Ihrem Arduino bzw.
Die Stromversorgung des Arduino erfolgt direkt über das 12V-Netzteil und die Servos über das 5V 5A BEC, das dann an die beiden Klemmen auf der Oberseite des PWM-Treibers angeschlossen wird. Sie müssen nur einen Servotreiber an die Stromversorgung anschließen und der zweite wird über die 6-adrige Flachbandkabelverbindung mit Strom versorgt.
Schritt 3: Montieren Sie die Servos
Nachdem Sie Ihre Segmente gedruckt haben, müssen Sie die Rückseite und die Seiten schwarz sprühen, damit sie weniger sichtbar sind, wenn sie um 90 Grad in die Aus-Position gedreht sind.
Anschließend müssen Sie die Segmente mit Heißkleber auf Ihre Servoarme kleben. Es hilft, sie mit dem Arm bereits auf dem Servo auf das Servo zu kleben, auf diese Weise können Sie überprüfen, ob Sie sie gerade und eben kleben.
Sie müssen auch einen Distanzblock auf die Unterseite jedes Servos kleben.
Montieren Sie die Dots, indem Sie einen kleinen Dübel oder einen Dönerstab in die Rückseite der Dots und dann in die Basisblöcke kleben. Ich habe diese Sticks auch schwarz gesprüht, damit sie bei schräger Betrachtung weniger sichtbar sind.
Schritt 4: Einrichten und Testen
Ich habe alle Servos nummeriert und die Nummer auf jede Leitung geschrieben, damit es einfacher war, den Überblick zu behalten. Ich begann mit dem oberen Segment auf der Einerstelle und arbeitete mich bis zum mittleren Segment auf der Zehnerstelle herum. Dies ist auch die Reihenfolge, in der ich sie an die Servosteuerplatinen angeschlossen habe, wobei ich daran denke, dass die Kennungen auf den Platinen von 0 bis 13 und nicht von 1 bis 14 zählen.
Dann habe ich die Segmente auf einem Tisch mit genügend Platz zum Testen aufgestellt, damit sie sich beim Einrichten der Reisebegrenzungen und Richtungen nicht ineinander bewegen. Wenn Sie versuchen, sie nahe beieinander aufzustellen, werden Sie wahrscheinlich einen oder zwei Versuche haben, sich irgendwann in die falsche Richtung oder über den Weg zu bewegen und einen anderen zu treffen, der das Segment, den Servoarm oder die Zahnräder des Servos beschädigen kann.
Schritt 5: Hochladen des Codes
Der Code sieht auf den ersten Blick kompliziert aus, ist aber dank der beiden verwendeten Bibliotheken eigentlich relativ einfach. Außerdem gibt es viele Wiederholungen, da vier verschiedene 7-Segment-Anzeigen aktualisiert werden müssen.
Hier ist eine zusammenfassende Beschreibung des Codes, werfen Sie einen Blick auf die vollständige Anleitung für eine detailliertere Erklärung und einen Link zum Herunterladen des Codes - Mechanische 7-Segment-Anzeigeuhr
Wir beginnen mit dem Importieren von zwei Bibliotheken, virtuabotixRTC.h für das Taktmodul und Adafruit_PWMServoDriver.h für die Servotreiber. Die Adafruit-Bibliothek kann direkt über den Bibliotheksmanager in der IDE heruntergeladen und installiert werden.
Anschließend erstellen wir für jede Steuerplatine ein Objekt mit der entsprechenden Adresse, eines für die Stundenziffern und eines für die Minutenziffern.
Wir haben dann vier Arrays, um die Ein- und Aus-Positionen für jedes Servo zu speichern. Sie müssen diese Zahlen in den nächsten Schritten anpassen, um sicherzustellen, dass Ihre Servos im eingeschalteten Zustand aufrecht stehen, im ausgeschalteten Zustand um 90 Grad gedreht sind und nicht zu weit fahren.
Ein Ziffernarray speichert die Positionen jedes Segments für jede anzuzeigende Ziffer.
Wir richten dann das Uhrenmodul ein und erstellen Variablen, um die aktuellen und vergangenen einzelnen Ziffern zu speichern.
In der Setup-Funktion starten und richten wir die PWM-Steuerplatinen ein und aktualisieren bei Bedarf die Uhrzeit. Wir durchlaufen dann eine Schleife, um die Anzeige auf 8 8: 8 8 zu setzen, damit wir die Startposition aller Servos kennen. Dies wird auch verwendet, um die Servos so einzustellen, dass sie alle richtig nach oben zeigen.
In der Hauptschleife erhalten wir die aktualisierte Zeit vom Uhrenmodul, schütten sie in die vier Ziffern aus und prüfen dann, ob sich die Zeit seit der letzten Überprüfung geändert hat. Wenn sich die Uhrzeit geändert hat, aktualisieren wir die Anzeige und aktualisieren dann die vorherigen Ziffern.
In der Update-Anzeigefunktion verschieben wir zunächst die mittleren Segmente. Dies geschieht zuerst, weil es eine gewisse Logik erfordert, die beiden oberen Segmente neben dem mittleren Segment ein wenig aus dem Weg zu räumen, bevor das mittlere Segment verschoben wird, da es sonst an sie stößt. Sobald die mittleren Segmente verschoben wurden, werden die restlichen Segmente in die richtigen Positionen verschoben.
Schritt 6: Montage der Uhr auf der Rückwand
Nachdem ich mit dem Testen fertig war, montierte ich die Servos auf der Rückwand unter Verwendung des obigen Layouts als Anleitung.
Der weiße Bereich ist die Gesamtgröße der Platine, das hellere Grau ist der Bereich um jede Ziffer, in den sich die Servosegmente bewegen, und der Umriss auf dem dunkelgrauen Bereich ist die Mittellinie für die äußeren 6 Segmente für jede Ziffer.
Ich schneide das Brett, markiert das Layout und klebt dann die Ziffern an Ort und Stelle, um das Zifferblatt zu bilden.
Ich bohrte dann Löcher in der Nähe jedes Servos und führte die Drähte bis zur Rückseite der Platine durch, damit sie weniger sichtbar sind.
Ich habe die Elektronik mit doppelseitigem Klebeband auf die Rückseite der Uhr montiert.
Schritt 7: Endgültige Einrichtung und Bedienung
Sobald die Servos fertig waren, entfernte ich alle Servoarme für die endgültigen Einstellungen an den Positionen der Segmente. Sie sollten den Arduino in diesem Zustand einschalten, so dass 8 8: 8 8 angezeigt wird, und dann die Stromversorgung trennen. Dadurch werden alle Ihre Servos neu zentriert, sodass Sie die Servoarme wieder mit den Segmenten so nah an der Vertikalen ansetzen können wie möglich.
Sie müssen dann Ihr Arduino nacheinander einschalten und die Ein- und Ausschaltpositionen Ihres Segments in Ihren vier Arrays anpassen, damit die Servos im eingeschalteten Zustand perfekt vertikal sind und sich im ausgeschalteten Zustand um 90 Grad drehen, ohne zu überfahren. Dieser Schritt ist ziemlich zeitaufwendig und erfordert etwas Geduld, aber das Endergebnis ist es wert!
Die Uhr kann über das 12-V-Netzteil und das daran angeschlossene 5-V-BEC mit Strom versorgt werden. Wenn der Strom ausfällt, behält die Batterie des RTC-Moduls die Zeit bei, sodass die Uhr bei Wiederherstellung der Stromversorgung automatisch auf die richtige Zeit zurückgesetzt wird.
Wenn Sie dieses Instructable genossen haben, stimmen Sie es bitte im Clock-Wettbewerb ab und teilen Sie mir alle Verbesserungen oder Vorschläge mit, die Sie im Kommentarbereich unten finden können.
Zweiter Preis beim Uhrenwettbewerb
Empfohlen:
Wort-Uhr: 5 Schritte
Wort-Uhr: Hallo zusammen! Dies wird mein erstes anweisbares sein und wenn Sie irgendwelche Ideen haben, wie es verbessert oder verständlicher gemacht werden kann, zögern Sie bitte nicht, mich zu kontaktieren! ist nicht meine idee! Ich habe viele der Thr gesehen
DIY, wie man eine cool aussehende Uhr macht – StickC – Einfach zu tun: 8 Schritte
DIY Wie man eine cool aussehende Uhr macht - StickC - Einfach zu machen: In diesem Tutorial lernen wir, wie man ESP32 M5Stack StickC mit Arduino IDE und Visuino programmiert, um eine Zeit auf dem LCD anzuzeigen und die Zeit auch mit den StickC-Tasten einzustellen
Wie erstelle ich eine Arduino-Uhr – wikiHow
Wie man eine Arduino-Uhr macht: Ich habe ungefähr 15 analoge Uhren entworfen. Hier stelle ich einen von ihnen vor
ESP8266 Netzwerkuhr ohne RTC - Nodemcu NTP-Uhr Keine RTC - INTERNET-UHR-PROJEKT: 4 Schritte
ESP8266 Netzwerkuhr ohne RTC | Nodemcu NTP-Uhr Keine RTC | INTERNET-UHRPROJEKT: Im Projekt wird ein Uhrenprojekt ohne RTC erstellt, es wird Zeit vom Internet über WLAN benötigt und auf dem st7735-Display angezeigt
Kabellose Wasserstandsanzeige mit großer Reichweite und Alarm - Reichweite bis zu 1 km - Sieben Ebenen: 7 Schritte
Kabellose Wasserstandsanzeige mit großer Reichweite und Alarm | Reichweite bis zu 1 km | Seven Levels: Sehen Sie es sich auf Youtube an: https://youtu.be/vdq5BanVS0YSie haben vielleicht viele kabelgebundene und kabellose Wasserstandsanzeigen gesehen, die eine Reichweite von 100 bis 200 Metern bieten. Aber in diesem anweisbaren werden Sie eine drahtlose Wasserstandsanzeige mit langer Reichweite sehen