Satura rādītājs:

Stepper Pomodoro taimeris: 3 soļi (ar attēliem)
Stepper Pomodoro taimeris: 3 soļi (ar attēliem)

Video: Stepper Pomodoro taimeris: 3 soļi (ar attēliem)

Video: Stepper Pomodoro taimeris: 3 soļi (ar attēliem)
Video: Самый Вкусный Рецепт САЛА Прямо с Базара. Сало в пакете 2024, Novembris
Anonim
Image
Image
1. solis: lodēšanas un savienošanas ķēde ārpus konteinera
1. solis: lodēšanas un savienošanas ķēde ārpus konteinera

Stepper Pomodoro ir galda taimeris, kas palīdz pārvaldīt ikdienas uzdevumu sarakstu, sadalot katru darba periodu 30 minūšu segmentos. Tomēr atšķirībā no parastā Pomodoro taimera tas nerada bažas, parādot atlikušo laiku. Tā vietā tas aptuveni parāda laiku, pa kuru no trim ciparripām tiek atzīmēta. Nerādot precīzu laiku, tas ļauj faktiski koncentrēties uz uzdevumu, nevis pastāvīgi pārbaudīt atlikušo laiku. Šis Pomodoro ir lieliski piemērots tiem, kam uzdevumu pārvaldībā nepieciešama viegla un neuzkrītoša struktūra.

Rīki

• Lodāmurs

• Stiepļu noņēmēji

• Lāzera griezējs (vai slīpmašīna atkarībā no tā, kā vēlaties izveidot taimera ciparnīcas)

• Urbis (es izmantoju urbšanas presi, lai izurbtu pietiekami lielus caurumus ciparnīcām)

Materiāli

• 1 Arduino Uno

• 1 pusmēra maizes dēlis

• 3 H tilti (es izmantoju DRV8833, motora vairoga stiprinājums man ir ietaupījis laiku un galvassāpes)

• 3 pakāpju motori (es izmantoju NEMA 17 pakāpienus)

• 1 poga

• 1 220-1K omu rezistors (jebkurš diapazonā ir labs)

• Maiņstrāvas/līdzstrāvas adapteris (es izmantoju 12 V, iespējams, pārāk liels šim steperu daudzumam)

• Strāvas sadalītājs

• USB A-B vads

• Maizes dēļa vadi

• lodēt

• Materiāli taimera tvertnei

• Akrils ciparnīcām

• Nagi vai metāla tapas, kas darbojas kā stacionāra taimera roka

1. darbība: 1. darbība: lodēšanas un savienošanas ķēde ārpus konteinera

Šim solim es sāku ar visu manu H tiltu lodēšanu (ja iegādājaties motora vairogu, jums tas nav jālodē. Kad katram solim ir H tilts, varat pārbaudīt, kā ir pieslēgti steperi.

NEMA 17 ir tie, kas pazīstami kā bipolāri pakāpju motori, kas nozīmē, ka tiem ir divi (nevis viens) spoļu komplekts motorā, kas maina polaritāti, lai nodrošinātu precīzu motora kustību. Bipolāriem soļiem parasti ir četri vadi, bet polāriem - seši, tas nedaudz sarežģī norādījumus tiešsaistē. Tomēr diviem vadiem varat pievienot multimetru un pārbaudīt, vai tie ir savienoti vai nav. NEMA 17 pakāpienu vadu secība ir SARKANA, DZELTENA, PELĒKA, ZAĻA krāsu secībā, un sarkanais un pelēkais ir pirmais polārais pāris, bet dzeltenais un zaļais ir otrais polārais pāris. Ja kādā brīdī solis sāk raustīties, nevis pabeidz gaidīto kustību, pastāv liela varbūtība, ka jūsu vadi kaut kā nav pareizi polarizēti pret savu dvīni vai viens ir atvienots. Katru soli kontrolē četras izejas tapas, kas savienojas ar tiltiem DRV8833 H. Elektroinstalācijas secība ievadam DRV8833 ir šāda: IN1, IN2, Power, Ground, IN3, IN4. Izvades nolūkos NEMA vienkārši savienojas ar sešu kontaktu četriem vidējiem šādā secībā: SARKANS, PELĒKS, DZELTENS, ZAĻS. Tagad pievienosim strāvu. Man ir NEMA digitālajos portos 2–13.

Lai to darbinātu, es iegādājos 12V maiņstrāvas/līdzstrāvas adapteri ar sadalītāju, lai varētu darbināt gan Arduino, gan visus pakāpienus. BRĪDINĀJUMS: Nepievienojiet strāvas un zemējuma vadus no Arduino, kas jau saņem strāvu no ostas, uz maizes dēli, kas saņem tiešu barošanu no maiņstrāvas/līdzstrāvas. Tas apcep jūsu dēli. No 12 V adaptera, kas pievienots sienai, viena sadalītāja daļa devās tieši uz Arduino portu, bet otra - uz maizes dēļa pozitīvo un negatīvo.

Visbeidzot, ir pienācis laiks pieslēgt pogu. Vienai pogas pusei būs nepieciešama gan jauda (ar mūsu rezistoru, kas savienota), gan izejas tapa pielodēta (to var izdarīt arī no maizes dēļa). Otra tapa būs mūsu zeme. Šie trīs vadi ir jāpievieno: barošana ar rezistoru līdz 5 V, izeja uz A0 un zemējums, lai viss zemētu uz pašas Arduino Uno plates.

No šejienes mums vajadzētu būt iespējai mēģināt kontrolēt pakāpienus, izmantojot šo šeit atrodamo pamata stepper testa kodu. Šis paskaidrojums vietnē Arduino.cc sniedz arī rūpīgāku bi/unipolar stepperu skaidrojumu, ja tas jums nepieciešams. Tālāk ļaujiet iekļūt Pomodoro kodā!

2. darbība: 2. darbība: koda augšupielāde un pielāgošana savām vajadzībām

2. darbība: koda augšupielāde un pielāgošana savām vajadzībām
2. darbība: koda augšupielāde un pielāgošana savām vajadzībām

Zemāk ir kods manam Pomodoro ar pogu, lai to pielāgotu jūsu iestatījumiem, veiciet tālāk norādītās darbības.

1. Iestatiet, cik soļu vienā apgriezienā ir jūsu personīgajam pakāpju tipam (NEMA 17s ir 200, un tas ir norādīts nemainīgā veselā skaitlī, ko sauc par stepsPerRevolution).

2. Iestatiet, kur jūsu poga tiek ievadīta nemainīgā vesela skaitļa zvanītāja pogā.

3. Iestatiet, no kurienes jūsu arduino vajadzētu izvadīt, lai komandētu stepperus (šīs daļas var visvairāk atšķirties starp H tiltu veidiem, jo daudziem ir dažādas bibliotēkas, kuras tās izmanto).

4. Iestatiet pakāpju ātrumu RPM minūtē.

5. Iestatiet, cik reizes vēlaties, lai katrs no jūsu steperiem pagrieztos, pirms tas virzās tālāk (mani steperi skaita desmit minūtes, tāpēc tie rotē desmit reizes ar 1 apgriezienu minūtē).

6 Iestatiet, cik ilgi vēlaties griezties atpakaļ.

#iekļaut

const int soļiPerRevolution = 200; // iestatīšanas konstante, cik soļu ir katrā manu soļu dzinēju pilnajā apgriezienā

const int pogaPin = A0; // manu pogu ievades konstante

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // inicializējiet stepper bibliotēku noteiktās tapās

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // atkārtoti inicializēt stepper bibliotēku uz šīm tapām, lai varētu atiestatīt apgriezienus minūtē, brīdinot, ka laiks ir beidzies Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Step trešaisStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int, skaitot pilnus stepperu apgriezienus

int timerState = LOW; // pomodoro taimera pašreizējais stāvoklis (HIGH = ieslēgts, LOW = izslēgts/atiestatīts) int buttonState; // pašreizējais nolasījums no ievades tapas int lastButtonState = HIGH; // iepriekšējais nolasījums no ievades tapas

// tālāk norādītie mainīgie nav parakstīti, jo laiks tiek mērīts milisekundēs, // ātri kļūs par lielāku skaitli, nekā to var saglabāt int. neparakstīts ilgi lastDebounceTime = 0; // pēdējo reizi, kad izvades tapa tika pārslēgta neparakstīta ilga debounceDelay = 50; // debounce time; palielināt, ja izeja mirgo

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // iestatiet pogas konstanti kā ievadi

firstStepper.setSpeed (1); // iestatiet ātrumu 1 apgr./min, lai skaitītu 10 minūtes sekundēStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // iestatiet ātrumu 30 apgr./min, lai brīdinātu, ka laiks ir beidzies pēc tam, kad Pomodoro ir pabeidzis secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Sērijas sākums (9600); // sākt sērijveida monitoru ar 9600 batu pārraides ātrumu

}

void loop () {

// nolasīt slēdža stāvokli vietējā mainīgajā: int reading = digitalRead (buttonPin);

// pārbaudiet, vai tikko nospiedāt pogu

// (t.i., ievade mainījās no LOW uz HIGH), un jūs esat gaidījis // pietiekami ilgi kopš pēdējās nospiešanas, lai ignorētu troksni:

// Ja slēdzis ir mainīts trokšņa vai nospiešanas dēļ:

if (lasot! = lastButtonState) {// atiestatīt debouncing taimeri lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// neatkarīgi no rādījuma, tas ir tur bijis ilgāk // nekā atkāpšanās kavēšanās, tāpēc ņemiet to par faktisko pašreizējo stāvokli:

// ja pogas stāvoklis ir mainījies:

if (lasot! = buttonState) {buttonState = lasīšana;

// pārslēdz taimera aktivizēšanu tikai tad, ja jaunais pogas stāvoklis norāda, ka tas ir nospiests

// nospiediet vienreiz, lai ieslēgtu, vēlreiz nospiediet, lai izslēgtu, ja (buttonState == LOW) {timerState =! timerState; Serial.print ("Taimera stāvoklis ir"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("Pomodoro taimeris ir sācies"); if (minutesCounter <11) {// ja pašreizējā otrā vērtība atšķiras no iepriekšējās vērtības, tad firstStepper.step (stepsPerRevolution); // pagriezt soli 200 soļi/1 apgriezienu minūtesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// ja pašreizējā otrā vērtība atšķiras no iepriekšējās vērtības, tad secondStepper.step (stepsPerRevolution); // pagriezt soli 200 soļi/1 apgriezienu minūtesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// ja pašreizējā otrā vērtība atšķiras no iepriekšējās vērtības, tad thirdStepper.step (stepsPerRevolution); // pagriezt soli 200 soļi/1 apgriezienu minūtesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// ja pašreizējā otrā vērtība atšķiras no iepriekšējās vērtības, tad firstStepperBack.step (-1); // pagrieziet soli atpakaļ 1 soli, lai parādītos tā, it kā visi vienlaikus darbotos secondStepperBack.step (-1); trešaisStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} else {Serial.println ("Pomodoro taimeris ir izslēgts"); } // saglabāt lasījumu. Nākamreiz, izmantojot cilpu, // tas būs lastButtonState: lastButtonState = lasījums; }

3. solis: 3. solis: Ja vēlaties, satveriet steperus un Arduino

3. solis: Ja vēlaties, saturiet stepes un Arduino
3. solis: Ja vēlaties, saturiet stepes un Arduino
3. solis: Ja vēlaties, saturiet stepes un Arduino
3. solis: Ja vēlaties, saturiet stepes un Arduino
3. solis: Ja vēlaties, saturiet stepes un Arduino
3. solis: Ja vēlaties, saturiet stepes un Arduino

Es izvēlējos savam pulkstenim izveidot paralelogrammas formu. Šo formu un sarkanā ozola materiālu izvēli iedvesmoja viduslaiku modernās mēbeles. Viena daļa, kas man sagādāja vislielākās grūtības, bija stepperu uzstādīšana ar ciparnīcām caur to iluminatoriem, lai būtu redzams.

Ieteicams: