Inhoudsopgave:

Uurwerk: 7 stappen
Uurwerk: 7 stappen

Video: Uurwerk: 7 stappen

Video: Uurwerk: 7 stappen
Video: Uurwerk Online in 7 minuten 2024, Juni-
Anonim
Uurwerk
Uurwerk

Deze instructable is gemaakt om te voldoen aan de projectvereiste van de Makecourse aan de University of South Florida (www.makecourse.com).

Stap 1: Concept

Terwijl ik probeer te brainstormen voor een idee voor dit project, besloot ik iets te maken dat bruikbaar en nuttig is voor mijn dagelijks leven. Niet veel van dat soort dingen kunnen een vereiste van twee vrijheidsgraden hebben, dus besloot ik een eenvoudige klok te maken om aan de vereiste te voldoen en deze ook op mijn bureau te laten weergeven om de tijd weer te geven. Oorspronkelijk was het idee om een polshorloge te maken, maar het 3D-geprinte deel zou te klein zijn en de motoren die het horloge aandrijven zouden nog steeds te groot zijn voor een polshorloge.

Vandaar dit project, ik vond reserveonderdelen in mijn appartement en besloot hieraan te werken.

Stap 2: Onderdelen

- 3D-geprinte onderdelen

- 2 28BYJ-48 5V DC stappenmotor

- 2 ULN2003 Stappenmotor Driver Board

- Arduino Uno

- HC-05 Bluetooth-module

Al deze onderdelen zijn door mij gemaakt, behalve de wijzers van de klok. Ik ben niet erg creatief. Hieronder de link naar de maker ervan.

www.thingiverse.com/thing:1441809

Stap 3: Montage van onderdelen

Montage van onderdelen
Montage van onderdelen

(1)- Je moet Gear_1 en 2 op de stappenmotoren plaatsen. Ze zullen nauw aansluiten, dus er is een beetje kracht nodig om ze op hun plaats te houden.

(2)- Base_0 blijft onderaan de assembly.

(3)- Base_1 wordt bovenop SpurGear_1 geplaatst, dit is het belangrijkste onderdeel voor de minutenwijzer. Je kunt deze twee componenten aan elkaar lijmen, zorg ervoor dat de basis bovenop het tandwiel zit.

(4)- Base_2 wordt bovenop SpurGears_2 geplaatst, dit is het belangrijkste onderdeel voor de uurwijzer. Voor dit onderdeel geldt hetzelfde als bij stap (3)

(5)- De wijzers van de klokken kunnen op Base_1 en Base_2 worden gelijmd, of je kunt een klein gaatje boren om ze op hun plaats te laten passen.

(6)- Om het tandwiel van de minutenwijzer te laten matchen met het tandwiel, heb je een platform van 1 cm nodig om het hele samenstel bovenop te plaatsen met een van de stappenmotoren.

De reden hiervoor is dat de hoofdbasis niet hoog kan zijn, omdat de andere stappenmotor de hoge versnelling niet zou kunnen bereiken. Hoe dan ook, er is een platform nodig voor een van de stappenmotoren.

Stap 4: Bibliotheek voor Arduino IDE

De code voor dit project is gebaseerd op een bibliotheek van tyhenry genaamd CheapStepper.h

github.com/tyhenry/CheapStepper

Om deze bibliotheek voor je arduino te installeren. Klik op kloon of download op de link hierboven en download het als een zip-bestand.

In de Arduino-IDE. Schets -> Bibliotheek opnemen ->. ZIP-bibliotheek toevoegen

Van alle bibliotheek die werkt, gebruikte deze de stappenmotor het beste en uiterst gebruiksvriendelijk.

Stap 5: Breadboard instellen

Breadboard instellen
Breadboard instellen
Breadboard instellen
Breadboard instellen

Ik heb een Arduino-schild gebruikt om bij mijn Arduino UNO te passen. Het ziet er schoner uit, maar je kunt een klein breadboard krijgen en het in plaats daarvan op de Arduino UNO plaatsen. Volg de kleur op het schema aangezien sommige draden op elkaar liggen. Pinnen 4-7 zijn voor één stepper en pinnen 8-11 zijn voor de tweede stepper.

De Bluetooth-module moet RX -> TX en TX -> RX worden aangesloten op het Arduino-bord.

Blauwe draden zijn verbindingen van de stuurprogramma's naar de Arduino UNO

Groene draden zijn de RX- en TX-verbindingen

Zwarte draden zijn geaard.

Rode draden zijn 5V.

Stap 6: Coderen

Hieronder vindt u de code voor dit project.

De uitleg van de code staat hier.

CheapStepper-stepper (8, 9, 10, 11); CheapStepper stepper_2(4, 5, 6, 7);

boolean moveClockwise = waar;

//37,5 min = 4096;

//1 min = 106,7;

//5 min = 533,3;

//15 minuten = 1603;

//30 minuten = 3206;

//60 minuten = 6412;

int vol = 4096;

int half = vol/2; //2048

float full_time = 6412; // 1 uur

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 minuut 106

float five_time = one_time*5; // 5 minuten 534,3

float one_sec = one_time/60; // 1 sec 1.78

// we kunnen elk 30 minuten doen door de motor 3206 te draaien en te resetten

Dit is de hoofdberekening voor dit project. De stepper zou 4096 stappen nemen om 360 graden te draaien, maar omdat de tandwielen groter zijn dan de tandwielen die aan de stepper zijn bevestigd, zijn er meer stappen nodig voor een volledige rotatie. Omdat het tandwiel het belangrijkste onderdeel is dat de handen laat draaien. Ik moet verschillende testen doen om er zeker van te zijn dat de waarden correct zijn.

full_time is de variabele die ik heb toegewezen voor een volledige rotatie van de hand. Dit is redelijk consistent, maar naarmate de stappen worden gedeeld door 2 om specifieke beweging te krijgen, wordt de float-waarde kleiner, waardoor het voor de bestuurder moeilijker wordt om zijn werk te doen.

De bewegingMet de klok mee = waar; is om de stappenmotor met de klok mee te laten bewegen, maar omdat het tandwiel tegen de klok in draait, moeten we de boolean false maken in de setup. Je kunt het in het begin ook als onwaar verklaren, maar dit is om uit te leggen hoe het werkt.

void setup() {Serial.begin(9600);

Serial.println("Klaar om te gaan verhuizen!");

pos = eenmalige_tijd; del = 900; verhouding = 60;

moveClockwise = onwaar; }

Hier verklaar ik de moveClockwise boolean false. pos is het aantal stappen, del is de vertraging en de verhouding is ofwel voor minuut/sec = 60 of uur/min = 12

We bedienen de handen met de Bluetooth-module. Ten eerste hebt u een seriële Bluetooth-terminal nodig van uw Android-apparaat. Maak verbinding met de HC-05 met de pincode 0000 of 1234. U kunt een voorbeeldcode van Arduino IDE gebruiken om te zien of deze correct werkt. Als het is aangesloten, moet het heel langzaam knipperen in plaats van snel als het niet is aangesloten.

void loop() {status = 0;

if(Serial.available() > 0) {

staat = Serieel.lezen(); }

for (float s=0; s<(pos); s++){

stepper.step (verplaats met de klok mee); }

for (float s=0; s<(pos/ratio); s++){

stepper_2.step (verplaats met de klok mee); }

vertraging (del);

Serial.available() > 0 is belangrijk omdat het is hoe uw Bluetooth-module gaat werken. Deze if-instructie is waar wanneer er communicatie is tussen de Arduino en uw apparaat. De toestandsvariabele bepaalt de 3 andere variabelen die ik bovenaan setup () heb gedeclareerd, het zal ook afdrukken welke bewerking de code uitvoert. De twee-voor-lus is de belangrijkste functie die bepaalt hoe de stappenmotor zal bewegen.

if (status == '1') {

pos = eenmalige_tijd; del = 0; verhouding = 12;

Serial.println ("Operatie 1: Geen vertraging"); }

Dit is een voorbeeld van het gebruik van de invoer van uw Bluetooth-apparaat om de werking van het systeem te wijzigen. U kunt deze variabelen bewerken zoals u de handen wilt besturen.

Stap 7: Demo en conclusie

Image
Image
Demo en conclusie
Demo en conclusie

Dit is een demo van het systeem, die laat zien hoe het werkt. Voor de behuizing kunt u alles gebruiken dat in alle componenten past. Dit project was eenvoudig en leuk om te maken omdat het de eerste keer is dat ik 3D print. De Bluetooth-module was leuk om uit te zoeken en te gebruiken. Er zijn een paar fouten die ik heb gemaakt die te laat waren om te veranderen, maar het eindproduct is in orde.

Aanbevolen: