INHOUDSOPGAWE:

Stepper Pomodoro Timer: 3 stappe (met foto's)
Stepper Pomodoro Timer: 3 stappe (met foto's)

Video: Stepper Pomodoro Timer: 3 stappe (met foto's)

Video: Stepper Pomodoro Timer: 3 stappe (met foto's)
Video: Pomodoro Technique 6 x 25 min - Study Timer 3h 2024, Julie
Anonim
Image
Image
Stap 1: Soldeer en verbind die stroombaan buite die houer
Stap 1: Soldeer en verbind die stroombaan buite die houer

Die Stepper Pomodoro is 'n lessenaar -timer om u te help om hul daaglikse taaklys te bestuur deur elke werkperiode in segmente van 30 minute op te deel. Anders as 'n gewone Pomodoro -timer, maak dit u egter nie angstig deur die hoeveelheid tyd wat u oor het te wys nie. Dit wys in plaas daarvan die tyd van ongeveer watter tyd van die drie draaiknoppies tik. Deur nie die presiese tyd aan te dui nie, kan u eintlik op die taak fokus, eerder as om voortdurend u tyd na te gaan. Hierdie Pomodoro is ideaal vir diegene wat 'n ligte en onopvallende struktuur vir hul taakbestuur benodig.

Gereedskap

• Soldeerbout

• Draadstroppers

• Lasersnyer (of skuurmasjien, afhangende van hoe u die draaiknoppies van die timer wil maak)

• Boor (ek het 'n boorpers gebruik om gate groot genoeg te maak vir die draaiknoppe)

Materiaal

• 1 Arduino Uno

• 1 halfgrootte broodbord

• 3 H brûe (ek het DRV8833 gebruik, 'n motorskerm het my tyd en hoofpyn bespaar)

• 3 Stepper motors (ek het NEMA 17 steppers gebruik)

• 1 knoppie

• 1 220-1K ohm weerstand (enige binne bereik is goed)

• AC/DC adapter (ek het 'n 12V gebruik, waarskynlik te groot vir hierdie hoeveelheid steppers)

• Kragverdeler

• USB A-B draad

• Broodborddrade

• Soldeer

• Materiaal vir houer met timer

• Akriel vir skyfies

• Spykers of metaalpenne om as stilstaande arm van die timer te dien

Stap 1: Stap 1: Soldeer- en aansluitkring buite die houer

Vir hierdie stap het ek begin deur al my H -brûe saam te soldeer (as u 'n motorskerm koop, hoef u dit nie te soldeer nie. Sodra u 'n H -brug vir elke stepper het, kan u kyk hoe u steppers bedraad is.

Die NEMA 17's staan bekend as bipolêre stapmotors, wat beteken dat hulle twee (eerder as een) spoele in die motor het wat die polariteit verander om presiese beweging van die motor moontlik te maak. Bipolêre steppers het gewoonlik vier drade en Polar steppers het gewoonlik ses, dit het die instruksies 'n bietjie ingewikkeld gemaak. U kan egter 'n multimeter aan twee drade koppel en kyk of hulle verbind is of nie. Die NEMA 17 steppers het hul draadorde in ROOI, GEEL, Grys, GROEN kleurorde, met die rooi en grys die eerste poolpaar en die geel en groen die tweede poolpaar. As die stepper op 'n stadium begin ruk eerder as om die verwagte beweging te voltooi, is die kans goed dat u drade op een of ander manier nie korrek gepolariseer is met hul tweeling nie, of dat een ontkoppel is. Elke stepper word beheer via vier uitsetpenne wat aansluit by die DRV8833 H -brûe. Die bedradingbestelling vir die invoer na die DRV8833 is: IN1, IN2, Power, Ground, IN3, IN4. Vir uitsetdoeleindes sluit die NEMA net aan by die middelste vier van die ses penne in die volgorde: ROOI, Grys, GEEL, GROEN. Nou kan ons krag aansluit. Ek het my NEMA's op digitale poorte 2–13.

Om dit aan te dryf, het ek 'n 12V AC/DC -adapter met splitter aangeskaf om die Arduino en al die steppers te kan voed. WAARSKUWING: Moet nie u krag- en aarddrade van die Arduino wat reeds van die poort ontvang het, aansluit op die broodbord wat direkte krag van die AC/DC ontvang nie. Dit sal jou bord braai. Van die 12V -adapter wat aan die muur gekoppel is, is die een deel van die splitter reguit na die Arduino -poort en die ander na die positiewe en negatiewe van die broodbord.

Laastens is dit tyd om die knoppie aan te sluit. Die een kant van die knoppie benodig beide krag (met ons weerstand ingesluit) sowel as die uitvoerpen wat gesoldeer is (dit kan ook vanaf die broodbord gedoen word). Die ander pen sal ons grond wees. Hierdie drie drade moet aangesluit word: Krag met weerstand tot 5V, uitset na A0, en grond tot aard op die Arduino Uno -bord self.

Van hier af moet ons probeer om die steppers te beheer met behulp van hierdie basiese stepper -toetskode wat hier gevind word. Hierdie verduideliking op Arduino.cc gee ook 'n meer deeglike uiteensetting van bi/unipolêre steppers as u dit nodig het. Laat ons dan die kode vir die Pomodoro binnegaan!

Stap 2: Stap 2: Laai kode op en pas dit aan by u behoeftes

Stap 2: Laai kode op en pas dit aan by u behoeftes
Stap 2: Laai kode op en pas dit aan by u behoeftes

Hieronder is die kode vir my Pomodoro met knoppie, om hierdie aan te pas by u opstelling, volg die volgende stappe:

1. Stel hoeveel stappe per omwenteling u persoonlike stepper -tipe het (NEMA 17's het 200 en dit word gelys in die konstante heelgetal, stappenPerRevolution genoem).

2. Stel in waar die knoppie ingevoer word in die konstante heelgetal beller -knoppie.

3. Stel van waar u arduino moet afstuur om die steppers te beheer (hierdie dele kan die meeste wissel tussen tipes H -brug, aangesien baie verskillende biblioteke het).

4. Stel die stapsnelheid in RPM's in die.setSpeed in (ek het myne ingestel op 1 rpm wanneer dit met die kloksgewys draai en 30 rpm as dit teen die kloksgewys draai).

5. Stel hoeveel keer jy wil hê elkeen van jou steppers moet draai voordat dit aangaan (my steppers tel tien minute, sodat hulle tien keer met 1 RPM draai).

6 Stel in hoe lank u wil agteruit draai.

#insluit

const int stepsPerRevolution = 200; // konstante stel hoeveel stappe in elke volle omwenteling van my stepper motors is

const int buttonPin = A0; // die konstante instelling van my knoppie -invoer

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // initialiseer die stepper -biblioteek op sekere penne

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // herbegin die stepper -biblioteek op hierdie penne om die toerusting te herlaai vir die waarskuwing dat die tyd verstryk het Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minuteTeller = 0; // int tel volle omwentelinge van steppers

int timerState = LAAG; // die huidige toestand van die pomodoro timer (HIGH = aan, LOW = af/reset) int buttonState; // die huidige lesing vanaf die invoerpen int lastButtonState = HOOG; // die vorige lesing van die invoerpen

// die volgende veranderlikes is ongetekende langes omdat die tyd, gemeet in milisekondes, // word vinnig 'n groter getal as wat in 'n int gestoor kan word. ongetekende lang lastDebounceTime = 0; // die laaste keer dat die uitvoerpen ongesigneer is, lang debounceDelay = 50; // die ontstoringstyd; verhoog as die uitset flikker

ongeldige opstelling () {

pinMode (buttonPin, INPUT_PULLUP); // stel die konstante van die knoppie as 'n invoer in

firstStepper.setSpeed (1); // stel die spoed op 1 rpm vir die tel van 10 minute per stepper secondStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // stel die snelheid op 30 rpm in om te waarsku dat die tyd verstryk het nadat Pomodoro secondStepperBack.setSpeed (30) voltooi het; thirdStepperBack.setSpeed (30);

Serial.begin (9600); // begin die seriële monitor met 'n 9600 baud -tempo

}

leemte -lus () {

// lees die toestand van die skakelaar na 'n plaaslike veranderlike: int reading = digitalRead (buttonPin);

// kyk of u net op die knoppie gedruk het

// (d.w.s. die invoer het van LAAG na HOOG gegaan), en jy het sedert die laaste druk // lank genoeg gewag om enige geraas te ignoreer:

// As die skakelaar verander word as gevolg van geraas of druk:

as (lees! = lastButtonState) {// herstel die ontbindingsteller laastDebounceTime = millis (); } as ((millis () - lastDebounceTime)> debounceDelay) {// wat die lesing ook al is, dit langer daar was // as die vertraging van die terugslag, dus beskou dit as die werklike huidige toestand:

// as die knoppie se toestand verander het:

as (lees! = buttonState) {buttonState = lees;

// Skakel slegs die timeraktivering as die toestand van die nuwe knoppie aandui dat dit ingedruk is

// druk een keer om aan te skakel, druk weer om uit te skakel as (buttonState == LOW) {timerState =! timerState; Serial.print ("Tydtoestand is"); Serial.println (timerState); }}}

if (timerState == HOOG) {

Serial.println ("Pomodoro -timer het begin"); if (minutesCounter <11) {// as die huidige tweede waarde anders is as die vorige waarde, dan firstStepper.step (stepsPerRevolution); // draai stepper 200 trappies/1 omwenteling minuteTeller ++; Serial.print ("minuteTeller is"); Serial.println (minuteTeller); }

if (11 <= minutesCounter && minutesCounter <21) {// as die huidige tweede waarde anders is as die vorige waarde, dan secondStepper.step (stepsPerRevolution); // draai stepper 200 stappe/1 omwenteling minuteTeller ++; Serial.print ("minuteTeller is"); Serial.println (minuteTeller); }

if (21 <= minutesCounter && minutesCounter <31) {// as die huidige tweede waarde anders is as die vorige waarde, dan thirdStepper.step (stepsPerRevolution); // draai stepper 200 trappies/1 omwenteling minuteTeller ++; Serial.print ("minuteTeller is"); Serial.println (minuteTeller); }

if (31 <= minutesCounter && minutesCounter <1031) {// as die huidige tweede waarde anders is as die vorige waarde, dan firstStepperBack.step (-1); // draai stepper terug 1 stap in volgorde om te lyk asof almal gelyktydig loop secondStepperBack.step (-1); thirdStepperBack.step (-1); minuteTeller ++; Serial.print ("minuteTeller is"); Serial.println (minuteTeller); }} else {Serial.println ("Pomodoro -timer is af"); } // stoor die lesing. Volgende keer deur die lus, // dit is die lastButtonState: lastButtonState = reading; }

Stap 3: Stap 3: Bevat die Steppers en Arduino as u wil

Stap 3: Bevat die Steppers en Arduino as u wil
Stap 3: Bevat die Steppers en Arduino as u wil
Stap 3: Bevat die Steppers en Arduino as u wil
Stap 3: Bevat die Steppers en Arduino as u wil
Stap 3: Bevat die Steppers en Arduino as u wil
Stap 3: Bevat die Steppers en Arduino as u wil

Ek het gekies om 'n parallelogramvorm vir my horlosie te skep. Hierdie vorm en die materiaalkeuses van rooi eikebome is geïnspireer deur moderne meubels in die middel van die eeu. Een deel waarmee ek die moeilikste was, was om die steppers met draaiknoppe deur hul gate te pas om van te sien.

Aanbeveel: