Sisukord:

Stepper Pomodoro taimer: 3 sammu (piltidega)
Stepper Pomodoro taimer: 3 sammu (piltidega)

Video: Stepper Pomodoro taimer: 3 sammu (piltidega)

Video: Stepper Pomodoro taimer: 3 sammu (piltidega)
Video: ТОП КОМФОРТ за недорого. Redmi Watch 3 Active. Полный обзор со всеми тестами Разбор минусов и плюсов 2024, Juuli
Anonim
Image
Image
Samm: jootmine ja ühendusahel väljaspool konteinerit
Samm: jootmine ja ühendusahel väljaspool konteinerit

Stepper Pomodoro on laua taimer, mis aitab hallata oma igapäevaste ülesannete loendit, jagades iga tööperioodi 30 -minutilisteks segmentideks. Kuid erinevalt tavalisest Pomodoro taimerist ei muuda see teid ärevaks, näidates järelejäänud aega. Selle asemel kuvatakse see aeg, mille jooksul kolm valijat valib. Kui täpset aega ei näidata, võimaldab see tegelikult keskenduda käsil olevale ülesandele, selle asemel et pidevalt oma aega kontrollida. See Pomodoro on ideaalne neile, kes vajavad oma ülesannete haldamisel kerget ja märkamatut struktuuri.

Tööriistad

• Jootekolb

• Traadi eemaldajad

• Laserlõikur (või lihvimismasin, sõltuvalt sellest, kuidas soovite taimeri kettaid luua)

• Puur (ma kasutasin puuripressi, et teha valimisklappide jaoks piisavalt suured augud)

Materjalid

• 1 Arduino Uno

• 1 poolsuurune leivalaud

• 3 H silda (kasutasin DRV8833, mootorikaitseklaas on säästnud aega ja peavalu)

• 3 samm -mootorit (kasutasin NEMA 17 astmeid)

• 1 nupp

• 1 220-1K oomi takisti (mis tahes vahemikus on hea)

• Vahelduvvoolu/alalisvoolu adapter (ma kasutasin 12 V, ilmselt liiga suur selle astmete jaoks)

• Toitejagur

• USB A-B juhe

• Leivaplaadi juhtmed

• jootma

• Taimeri konteineri materjalid

• Akrüül valimiseks

• Naelad või metallist tihvtid, mis toimivad taimeri statsionaarse käena

1. samm: 1. samm: jootmine ja ühendusahel väljaspool konteinerit

Selle sammu jaoks alustasin kõigi H -sildade jootmisega (kui ostate mootorikilbi, ei pea te neid jootma. Kui teil on iga sammude jaoks H -sild, saate kontrollida, kuidas teie sammud on ühendatud.

NEMA 17 -sid nimetatakse bipolaarseteks samm -mootoriteks, mis tähendab, et neil on mootoris kaks (mitte ühte) mähiste komplekti, mis muudavad polaarsust, et mootor saaks täpselt liikuda. Bipolaarsetel sammudel on tavaliselt neli ja Polaritel kuus juhtmest, see muudab veebis olevad juhised natuke keerulisemaks. Siiski saate mitmele juhtmele ühendada mitme meetri ja vaadata, kas need on ühendatud või mitte. NEMA 17 astmete juhtmete järjekord on PUNANE, KOLLANE, HALL, ROHELINE, kusjuures punane ja hall on esimene polaarpaar ja kollane ja roheline teine polaarpaar. Kui samm -samm hakkab mingil hetkel tõmblema, mitte lõpetama oodatud liikumist, on tõenäoline, et teie juhtmed pole kuidagi õigesti polariseeritud või kaks on lahti ühendatud. Iga astet juhitakse nelja väljundtihvti kaudu, mis ühendatakse DRV8833 H sildadega. DRV8833 sisendi juhtmestik on järgmine: IN1, IN2, toide, maandus, IN3, IN4. Väljundi jaoks ühendub NEMA kuue tihvti keskmise neljaga järgmises järjekorras: PUNANE, HALL, KOLLANE, ROHELINE. Nüüd ühendame toite. Mul on NEMA -d digitaalsetes portides 2–13.

Selle toiteks ostsin 12V vahelduvvoolu/alalisvoolu adapteri koos jaoturiga, et saaksin toita nii Arduino kui ka kõiki astmeid. HOIATUS: Ärge ühendage toite- ja maandusjuhtmeid Arduino'st, mis juba toite saab pordist, leivaplaadiga, mis saab vahelduvvoolu/alalisvoolu toiteallikat. See praadib teie lauda. Seinaga ühendatud 12 V adapterist läks üks jaoturi osa otse Arduino porti ja teine leivalaua positiivse ja negatiivse poole.

Lõpuks on aeg nupp haakida. Nupu ühel küljel on vaja nii voolu (meie takisti sisse lülitatud) kui ka joodetud väljundnõela (seda saab teha ka leivaplaadilt). Teine tihvt on meie maapind. Need kolm juhet tuleks ühendada: Toide koos takistiga 5 V -ni, väljund A0 -le ja maandatud maandamiseks kõik Arduino Uno plaadil.

Siit peaksime saama proovida stepereid juhtida, kasutades seda siin leitud põhilist samm -testikoodi. See selgitus saidil Arduino.cc selgitab vajadusel ka bi/unipolaarsete sammude põhjalikumat selgitust. Järgmisena tutvume Pomodoro koodiga!

2. samm: 2. samm: koodi üleslaadimine ja kohandamine vastavalt teie vajadustele

Samm: koodi üleslaadimine ja kohandamine vastavalt teie vajadustele
Samm: koodi üleslaadimine ja kohandamine vastavalt teie vajadustele

Allpool on minu Pomodoro koos nupuga kood, et kohandada seda oma seadistusega, järgige neid samme:

1. Määrake, mitu sammu pöörde kohta teie isiklikul sammutüübil on (NEMA 17 -l on 200 ja see on loetletud konstantses täisarvus, mida nimetatakse stepsPerRevolution).

2. Määrake, kuhu teie nupp sisestab püsiva täisarvulise helistaja nupuga Pin.

3. Määrake, kust teie arduino peaks väljujaid käsutama (need osad võivad H -silla tüüpide vahel kõige rohkem erineda, kuna paljudel on erinevad teegid, mida nad kasutavad).

4. Seadistage samm -kiirus RPM -ides.setSpeed (mul on seatud 1 pööret minutis päripäeva keerates ja 30 pööret minutis vastupäeva).

5. Määrake, mitu korda soovite, et iga sammur pööraks enne edasiliikumist (minu sammud loevad kümme minutit, nii et nad pöörlevad kümme korda 1 pööret minutis).

6 Määrake, kui kaua soovite tagurpidi pöörata.

#kaasake

const int stepsPerRevolution = 200; // seadistuskonstant, kui palju samme on minu samm -mootorite iga täispöörde ajal

const int nuppPin = A0; // minu nupu sisendi konstant

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // initsialiseeri stepper -raamatukogu teatud tihvtidel

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Samm kolmasStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // taasalustage nende tihvtide stepper -teek, et saaksite pöördeid lähtestada, kui hoiatatakse, et aeg on aegunud Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Samm kolmasStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int loendurite täispöörete arvestamine

int timerState = LOW; // pomodoro taimer (HIGH = on, LOW = off/reset) int nuppState; // praegune näit sisendpoldilt int lastButtonState = HIGH; // eelmine näit sisendpoldist

// järgmised muutujad ei ole pikad, kuna aeg, mõõdetuna millisekundites, // muutub kiiresti suuremaks arvuks, kui seda saab int. allkirjastamata pikk lastDebounceTime = 0; // viimane kord, kui väljundnööpi lülitati allkirjastamata pika debounceDelay = 50; // tagasilöögi aeg; suureneb, kui väljund vilgub

tühine seadistus () {

pinMode (buttonPin, INPUT_PULLUP); // sisestage nupu konstant

firstStepper.setSpeed (1); // määrake kiiruseks 1 p/ min, et lugeda 10 minutit samm -sekundi kohtaStepper.setSpeed (1); ThirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // määrake kiiruseks 30 p/ min, et hoiatada, et aeg on lõppenud pärast seda, kui Pomodoro on lõpetanud secondStepperBack.setSpeed (30); ThirdStepperBack.setSpeed (30);

Seriaalne algus (9600); // käivitage jadamonitor 9600 baudikiirusega

}

void loop () {

// lüliti oleku lugemine kohalikuks muutujaks: int reading = digitalRead (buttonPin);

// kontrollige, kas olete just nuppu vajutanud

// (st sisend läks LOW -lt kõrgele) ja olete oodanud // viimast vajutust piisavalt kaua, et müra ignoreerida:

// Kui lüliti vahetati müra või vajutamise tõttu:

if (lugemine! = lastButtonState) {// lähtestamise taimer lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// olenemata näidust, on see seal olnud kauem // kui tagasilükkamise viivitus, seega võtke seda tegeliku hetkeseisuna:

// kui nuppude olek on muutunud:

if (lugemine! = buttonState) {buttonState = lugemine;

// lülitage taimeri aktiveerimine sisse ainult siis, kui nupu uus olek näitab, et seda on vajutatud

// sisselülitamiseks vajutage üks kord, väljalülitamiseks uuesti, kui (buttonState == LOW) {timerState =! timerState; Serial.print ("Taimeri olek on"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("Pomodoro taimer on alanud"); if (minutesCounter <11) {// kui praegune teine väärtus erineb eelmisest, siis firstStepper.step (stepsPerRevolution); // pööra stepperit 200 sammu/1 pöörleminutitCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// kui praegune teine väärtus erineb eelmisest, siis secondStepper.step (stepsPerRevolution); // pööra stepperit 200 sammu/1 pöörleminutitCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// kui praegune teine väärtus erineb eelmisest, siis kolmasStepper.step (stepsPerRevolution); // pööra stepperit 200 sammu/1 pöörleminutitCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// kui praegune teine väärtus erineb eelmisest, siis firstStepperBack.step (-1); // keera stepper 1 samm järjest tagasi, et tunduda, nagu kõik töötaksid samaaegselt secondStepperBack.step (-1); kolmasStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} else {Serial.println ("Pomodoro taimer on välja lülitatud"); } // salvestada näit. Järgmisel korral läbi tsükli // saab see olema viimaneButtonState: lastButtonState = lugemine; }

3. samm: 3. samm: soovi korral sisestage stepperid ja Arduino

3. samm: soovi korral sisestage sammud ja Arduino
3. samm: soovi korral sisestage sammud ja Arduino
3. samm: soovi korral sisestage sammud ja Arduino
3. samm: soovi korral sisestage sammud ja Arduino
3. samm: soovi korral sisestage sammud ja Arduino
3. samm: soovi korral sisestage sammud ja Arduino

Valisin oma kellale rööpkülikuvormi loomise. See vorm ja punase tamme materjalivalikud on inspireeritud sajandi keskpaiga kaasaegsest mööblist. Üks osa, millega mul oli kõige rohkem raskusi, oli steppide valimine dialoogidega läbi nende luukide, et neid näha oleks.

Soovitan: