Inhaltsverzeichnis:
- Schritt 1: Konzept
- Schritt 2: Teile
- Schritt 3: Montage der Teile
- Schritt 4: Bibliothek für Arduino IDE
- Schritt 5: Breadboard-Setup
- Schritt 6: Code
- Schritt 7: Demo und Fazit
Video: Uhrwerk - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Dieses instructable wurde in Erfüllung der Projektanforderung des Makecourse an der University of South Florida (www.makecourse.com) erstellt.
Schritt 1: Konzept
Als ich versuche, ein Brainstorming für eine Idee für dieses Projekt zu machen, beschloss ich, etwas zu entwickeln, das brauchbar und nützlich für mein tägliches Leben ist. Nicht viele Dinge wie diese können eine Anforderung von zwei Freiheitsgraden haben, also habe ich beschlossen, eine einfache Uhr zu bauen, um die Anforderung zu erfüllen und sie auf meinem Schreibtisch anzuzeigen, um die Zeit anzuzeigen. Ursprünglich war die Idee, eine Armbanduhr herzustellen, aber das 3D-gedruckte Teil wäre zu klein und die Motoren, die die Uhr antreiben, wären immer noch zu groß für eine Armbanduhr.
Daher dieses Projekt, ich habe Ersatzteile in meiner Wohnung gefunden und beschlossen, daran zu arbeiten.
Schritt 2: Teile
- 3D-gedruckte Teile
- 2 28BYJ-48 5V DC Schrittmotor
- 2 ULN2003 Schrittmotortreiberplatine
- Arduino Uno
- HC-05 Bluetooth-Modul
Alle diese Teile werden von mir hergestellt, außer die Zeiger der Uhr. Ich bin nicht sehr kreativ. Unten ist der Link zu seinem Schöpfer.
www.thingiverse.com/thing:1441809
Schritt 3: Montage der Teile
(1)- Sie müssen Gear_1 und 2 zu den Schrittmotoren setzen. Sie werden eng anliegen, sodass ein wenig Kraft erforderlich ist, damit sie an Ort und Stelle bleiben.
(2)- Base_0 bleibt am unteren Rand der Baugruppe.
(3)- Base_1 wird auf SpurGear_1 platziert, dies ist die Hauptkomponente für den Minutenzeiger. Sie können diese beiden Komponenten zusammenkleben, stellen Sie sicher, dass die Basis oben auf dem Zahnrad liegt.
(4)- Base_2 wird auf SpurGears_2 platziert, dies ist die Hauptkomponente für den Stundenzeiger. Das gleiche gilt für diesen Teil wie Schritt (3)
(5)- Die Zeiger der Uhren können auf Base_1 und Base_2 geklebt werden, oder Sie können ein kleines Loch bohren, damit sie an Ort und Stelle passen.
(6)- Damit das Zahnrad des Minutenzeigers mit dem Stirnrad übereinstimmt, benötigen Sie eine 1-cm-Plattform, um die gesamte Baugruppe mit einem der Schrittmotoren auf die Oberseite zu legen.
Der Grund dafür ist, dass die Hauptbasis nicht hoch sein kann, da der andere Schrittmotor nicht in der Lage wäre, den hohen Gang zu erreichen. In jedem Fall wird eine Plattform für einen der Schrittmotoren benötigt.
Schritt 4: Bibliothek für Arduino IDE
Der Code für dieses Projekt basiert auf einer Bibliothek von Tyhenry namens CheapStepper.h
github.com/tyhenry/CheapStepper
Um diese Bibliothek für Ihr Arduino zu installieren. Klicken Sie oben auf Klonen oder Herunterladen und laden Sie es als ZIP-Datei herunter.
In der Arduino-IDE. Skizze -> Bibliothek einschließen ->. ZIP-Bibliothek hinzufügen
Von allen funktionierenden Bibliotheken verwendet diese den Schrittmotor am besten und ist extrem einfach zu bedienen.
Schritt 5: Breadboard-Setup
Ich habe ein Arduino-Shield verwendet, um mit meinem Arduino UNO zu gehen. Es sieht sauberer aus, aber Sie können ein kleines Steckbrett bekommen und es stattdessen auf den Arduino UNO legen. Folgen Sie der Farbe im Schaltplan, da einige Drähte übereinander liegen. Pins 4-7 sind für einen Stepper und Pins 8-11 sind für den zweiten Stepper.
Das Bluetooth-Modul muss mit RX -> TX und TX -> RX an das Arduino-Board angeschlossen werden.
Blaue Drähte sind Verbindungen von den Treibern zum Arduino UNO
Grüne Drähte sind die RX- und TX-Anschlüsse
Schwarze Drähte sind geerdet.
Rote Drähte sind 5V.
Schritt 6: Code
Unten ist der Code für dieses Projekt.
Die Erklärung des Codes folgt hier.
CheapStepper-Stepper (8, 9, 10, 11); CheapStepper stepper_2 (4, 5, 6, 7);
boolean moveClockwise = true;
//37,5 min = 4096;
// 1 Minute = 106,7;
///5 min = 533,3;
//15 Minuten = 1603;
//30 Minuten = 3206;
//60 Minuten = 6412;
int voll = 4096;
int halb = voll/2; //2048
float full_time = 6412; // 1 Stunde
float half_time = full_time/2; // 30 Minuten 3026
float fif_time = half_time/2; // 15 Minuten 1603
float one_time = full_time/60; // 1 Minute 106
float five_time = one_time*5; // 5 Minuten 534,3
float one_sec = one_time/60; // 1 Sek. 1,78
// Wir können jeweils 30 Minuten machen, indem wir den Motor 3206 drehen und zurücksetzen
Dies ist die Hauptberechnung für dieses Projekt. Der Stepper würde 4096 Schritte benötigen, um sich um volle 360 Grad zu drehen, aber da die Stirnräder größer sind als die am Stepper angebrachten Zahnräder, sind für eine volle Drehung mehr Schritte erforderlich. Da das Stirnrad die Hauptkomponente ist, die die Hände dreht. Ich muss verschiedene Tests durchführen, um sicherzustellen, dass die Werte korrekt sind.
full_time ist die Variable, die ich für eine volle Drehung der Hand zugewiesen habe. Dies ist ziemlich konsistent, aber wenn die Schritte durch 2 geteilt werden, um eine bestimmte Bewegung zu erhalten, wird der Float-Wert kleiner, was es für den Fahrer schwieriger macht, seine Arbeit zu erledigen.
Die Bewegung im Uhrzeigersinn = true; besteht darin, den Schrittmotor im Uhrzeigersinn zu bewegen, aber da er das Stirnrad gegen den Uhrzeigersinn dreht, müssen wir den booleschen Wert im Setup falsch machen. Sie können es auch zu Beginn als falsch deklarieren, aber dies soll erklären, wie es funktioniert.
Void setup () {Serial.begin (9600);
Serial.println ("Bereit zum Umzug!");
pos = einmalig; del = 900; Verhältnis = 60;
moveClockwise = false; }
Hier deklariere ich den booleschen moveClockwise-Boolean falsch. pos ist die Anzahl der Schritte, del ist die Verzögerung und das Verhältnis ist entweder für Minute/Sek = 60 oder Stunde/Min = 12
Wir steuern die Hände mit dem Bluetooth-Modul. Zunächst benötigen Sie ein serielles Bluetooth-Terminal von Ihrem Android-Gerät. Verbinden Sie sich mit der PIN 0000 oder 1234 mit dem Hc-05. Sie können einen Beispielcode von Arduino IDE verwenden, um zu sehen, ob er richtig funktioniert. Wenn es verbunden ist, sollte es sehr langsam blinken anstatt schnell, wenn es nicht verbunden ist.
Leere Schleife () {Zustand = 0;
if(Seriell.verfügbar() > 0) {
Zustand = Serial.read (); }
für (float s=0; s<(pos); s++){
stepper.step (moveClockwise); }
für (float s=0; s<(pos/ratio); s++){
stepper_2.step(moveClockwise); }
Verzögerung(del);
Serial.available () > 0 ist wichtig, da Ihr Bluetooth-Modul so funktioniert. Diese if-Anweisung ist wahr, wenn eine Kommunikation zwischen dem Arduino und Ihrem Gerät stattfindet. Die Zustandsvariable bestimmt die 3 anderen Variablen, die ich oben in setup() deklariert habe, und gibt auch aus, welche Operation der Code ausführt. Die Zwei-für-Schleife ist die Hauptfunktion, die steuert, wie sich der Schrittmotor bewegt.
if (Zustand == '1') {
pos = einmalig; del = 0; Verhältnis = 12;
Serial.println ("Operation 1: Keine Verzögerung"); }
Dies ist ein Beispiel für die Verwendung der Eingabe von Ihrem Bluetooth-Gerät, um die Funktionsweise des Systems zu ändern. Sie können diese Variablen nach Belieben bearbeiten, um die Hände zu steuern.
Schritt 7: Demo und Fazit
Dies ist eine Demo des Systems, die zeigt, wie es funktioniert. Für das Gehäuse können Sie alles verwenden, was zu allen Komponenten im Inneren passt. Dieses Projekt war einfach und hat Spaß gemacht, da es das erste Mal ist, dass ich 3D gedruckt habe. Es hat Spaß gemacht, das Bluetooth-Modul herauszufinden und zu verwenden. Es gibt ein paar Fehler, die ich gemacht habe, die zu spät waren, um sie zu ändern, aber das Endprodukt ist in Ordnung.