Sadržaj:

Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)
Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)

Video: Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)

Video: Steper Pomodoro mjerač vremena: 3 koraka (sa slikama)
Video: Kako se mjere i označavaju vijci ? / Ključ 13 2024, Juli
Anonim
Image
Image
Korak 1: Lemljenje i spojni krug izvan spremnika
Korak 1: Lemljenje i spojni krug izvan spremnika

Stepper Pomodoro je stolni mjerač vremena koji pomaže u upravljanju listom dnevnih zadataka razbijanjem svakog perioda rada u segmente od 30 minuta. Međutim, za razliku od uobičajenog Pomodoro mjerača vremena, ne čini vas uznemirenim pokazujući preostalo vrijeme. Umjesto toga, prikazuje vrijeme otprilike kroz koji od tri brojača otkucava. Ne pokazujući točno vrijeme, omogućava vam da se zapravo usredotočite na zadatak koji obavljate, umjesto da stalno provjeravate preostalo vrijeme. Ovaj Pomodoro savršen je za one kojima je potrebna lagana i nenametljiva struktura za upravljanje zadacima.

Alati

• Lemilica

• Skidači žica

• Laserski rezač (ili brusilica, ovisno o tome kako želite stvoriti brojčanike tajmera)

• Bušilica (upotrijebio sam bušilicu za bušenje rupa dovoljno velikih za brojčanike)

Materijali

• 1 Arduino Uno

• 1 ploča veličine pola

• 3 H mosta (koristio sam DRV8833, štitnik motora bi mi uštedio neko vrijeme i glavobolje)

• 3 koračna motora (koristio sam stepere NEMA 17)

• 1 dugme

• 1 220-1K ohmski otpornik (sve unutar dometa je dobro)

• AC/DC adapter (koristio sam 12V, vjerovatno prevelik za ovu količinu stepera)

• Razdjelnik snage

• USB A-B žica

• Žice za matičnu ploču

• Lemljenje

• Materijali za kontejner tajmera

• Akril za biranje

• Čavli ili metalne igle služe kao nepomični krak tajmera

Korak 1: Korak 1: Lemljenje i povezivanje kruga izvan spremnika

Za ovaj korak sam započeo lemljenjem svih mojih H mostova (ako kupite štitnik motora, ne morate ih lemiti. Nakon što za svaki steper imate H most, možete provjeriti kako su ožičeni vaši steperi.

NEMA 17 su poznati kao bipolarni koračni motori, što znači da imaju dva (umjesto jednog) skupa zavojnica unutar motora koji mijenjaju polaritet kako bi omogućili precizno kretanje motora. Bipolarni steperi obično imaju četiri žice, a Polarni stepenici obično šest, što je malo zakompliciralo upute na mreži. Međutim, možete priključiti višemetarski mjerač na dvije žice i vidjeti jesu li spojeni ili nisu. Steperi NEMA 17 imaju redoslijed žica u CRVENOJ, ŽUTOJ, SIVOJ, ZELENOJ boji, pri čemu su crvena i siva prvi polarni par, a žuta i zelena drugi polarni par. Ako steper u bilo kojem trenutku počne trzati, a ne dovršiti očekivano kretanje, velika je vjerojatnost da vaše žice na neki način nisu pravilno polarizirane na svog blizanca ili je jedna od njih isključena. Svakim korakom upravlja se putem četiri izlazna pina koji se spajaju na mostove DRV8833 H. Redoslijed ožičenja za ulaz na DRV8833 je: IN1, IN2, Napajanje, Uzemljenje, IN3, IN4. Za potrebe izlaza, NEMA se samo povezuje na srednja četiri od šest pinova po redoslijedu: CRVENA, SIVA, ŽUTA, ZELENA. Sada priključimo napajanje. Imam svoje NEMA -e na digitalnim portovima 2–13.

Za napajanje sam kupio 12V AC/DC adapter sa razdjelnikom kako bih mogao napajati i Arduino i sve stepere. UPOZORENJE: Nemojte spajati žice za napajanje i uzemljenje s Arduina koji već prima napajanje s priključka na matičnu ploču koja prima izravno napajanje iz AC/DC -a. Pržiće vam dasku. Iz adaptera od 12 V koji je priključen na zid jedan dio razdjelnika išao je ravno do Arduino porta, a drugi do pozitivnog i negativnog dijela ploče za kruh.

Na kraju, vrijeme je da spojite dugme. S jedne strane gumba trebat će i napajanje (s ugrađenim otpornikom), kao i izlazni pin zalemljen (ovo se može učiniti i s matične ploče). Drugi pin će biti naše tlo. Ove tri žice trebaju biti priključene na: Napajanje s otpornikom do 5V, izlaz na A0 i uzemljenje sve na samoj ploči Arduino Uno.

Odavde bismo mogli pokušati kontrolirati stepere pomoću ovog osnovnog koda koračnog testa koji se ovdje nalazi. Ovo objašnjenje na Arduino.cc također daje detaljnije objašnjenje bi/unipolarnih stepera ako vam zatreba. Slijedi ulaz u kod za Pomodoro!

Korak 2: Korak 2: Otpremanje koda i prilagođavanje vašim potrebama

Korak 2: Učitajte kôd i prilagodite ga svojim potrebama
Korak 2: Učitajte kôd i prilagodite ga svojim potrebama

Ispod je kôd za moj Pomodoro s gumbom, kako biste ga prilagodili vašim postavkama, slijedite ove korake:

1. Postavite koliko koraka po okretaju ima vaš lični tip koraka (NEMA 17 ima 200 i navedeno je u konstantnom cijelom broju koji se naziva stepsPerRevolution).

2. Podesite gde vaše dugme unosi u konstantnom celom broju buttonPin.

3. Postavite odakle bi vaš arduino trebao izlaziti da zapovijeda steperima (ti se dijelovi mogu najviše razlikovati između tipova H mostova jer mnogi imaju različite biblioteke koje koriste).

4. Podesite koračnu brzinu u RPM -ovima u.setSpeed (moja je postavljena na 1 o / min pri okretanju u smjeru kazaljke na satu i 30 o / min pri okretanju u smjeru suprotnom od kazaljke na satu).

5. Podesite koliko puta želite da se svaki vaš steper okrene prije nego što krene dalje (moji steperi broje deset minuta pa se okreću deset puta pri 1 RPM).

6 Podesite koliko dugo želite da se rotira unazad.

#include

const int stepsPerRevolution = 200; // postavljanje konstante koliko koraka ima u svakom punom okretu mojih koračnih motora

const int buttonPin = A0; // postavljanje konstante unosa na mom dugmetu

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // inicijaliziranje stepper biblioteke na određenim pinovima

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // ponovno inicijaliziranje stepper biblioteke na ovim pinovima kako bi mogli resetirati rpm za vrijeme upozorenja da je vrijeme isteklo Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int brojanje punih okretaja steperača

int timerState = LOW; // trenutno stanje pomodoro tajmera (HIGH = on, LOW = off/reset) int buttonState; // trenutno očitavanje sa ulaznog pina int lastButtonState = HIGH; // prethodno očitavanje sa ulaznog pina

// sljedeće varijable su bez znakova bez znakova jer je vrijeme, mjereno u milisekundama, // brzo će postati veći broj nego što se može pohraniti u int. unsigned long lastDebounceTime = 0; // zadnji put kada je izlazni pin preklopljen unsigned long debounceDelay = 50; // vrijeme debounce; povećati ako izlaz treperi

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // postavlja konstantu dugmeta kao ulaz

firstStepper.setSpeed (1); // postavimo brzinu na 1 o/ min za brojanje 10 minuta po steperu secondStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // postavite brzinu na 30 o/ min radi upozorenja da je vrijeme isteklo nakon što je Pomodoro dovršio secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // pokretanje serijskog monitora sa 9600 baud rate

}

void loop () {{100} {101}

// čita stanje prekidača u lokalnu varijablu: int reading = digitalRead (buttonPin);

// provjerite jeste li samo pritisnuli dugme

// (tj. unos je prešao s LOW na HIGH), a vi ste čekali // dovoljno dugo od zadnjeg pritiska da zanemarite bilo kakvu buku:

// Ako se prekidač promijenio zbog buke ili pritiska:

if (čitanje! = lastButtonState) {// resetiranje tajmera debouncing lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// šta god da je očitano, tamo je bilo duže // od kašnjenja debounce, pa ga uzmite kao stvarno trenutno stanje:

// ako se stanje dugmeta promijenilo:

if (čitanje! = buttonState) {buttonState = čitanje;

// prebacuje samo aktivaciju tajmera ako novo stanje dugmeta pokazuje da je pritisnuto

// pritisnite jednom za uključivanje, ponovo pritisnite da isključite if (buttonState == LOW) {timerState =! timerState; Serial.print ("Stanje tajmera je"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println ("Pomodoro timer je počeo"); if (minutesCounter <11) {// ako je trenutna druga vrijednost drugačija od prethodne vrijednosti tada firstStepper.step (stepsPerRevolution); // okrenite steper 200 koraka/1 okr. minutaCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }

if (11 <= minutesCounter && minutesCounter <21) {// ako se trenutna druga vrijednost razlikuje od prethodne vrijednosti onda secondStepper.step (stepsPerRevolution); // okrenite steper 200 koraka/1 okr. minutaCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }

if (21 <= minutesCounter && minutesCounter <31) {// ako je trenutna druga vrijednost različita od prethodne vrijednosti, onda thirdStepper.step (stepsPerRevolution); // okrenite steper 200 koraka/1 okr. minutaCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }

if (31 <= minutesCounter && minutesCounter <1031) {// ako je trenutna druga vrijednost drugačija od prethodne vrijednosti firstStepperBack.step (-1); // okrenite steper unatrag 1 korak u nizu da biste izgledali kao da svi rade istovremeno secondStepperBack.step (-1); thirdStepperBack.step (-1); minutesCounter ++; Serial.print ("brojač minuta je"); Serial.println (brojač minuta); }} else {Serial.println ("Pomodoro timer je isključen"); } // sačuvaj čitanje. Sljedeći put kroz petlju, // to će biti lastButtonState: lastButtonState = reading; }

Korak 3: Korak 3: Po želji zadržite Steppere i Arduino

Korak 3: Po želji zadržite Steppere i Arduino
Korak 3: Po želji zadržite Steppere i Arduino
Korak 3: Po želji zadržite Steppere i Arduino
Korak 3: Po želji zadržite Steppere i Arduino
Korak 3: Ako želite, ograničite stepere i Arduino
Korak 3: Ako želite, ograničite stepere i Arduino

Odlučio sam stvoriti paralelogramičku formu za svoj sat. Ova forma i odabir materijala crvenog hrasta inspirirani su modernim namještajem srednjih stoljeća. Jedan dio s kojim sam imao najvećih poteškoća bio je postavljanje stepera sa brojčanicima kroz njihove prozore kako bi se mogli vidjeti.

Preporučuje se: