Turinys:

Stepper Pomodoro laikmatis: 3 žingsniai (su nuotraukomis)
Stepper Pomodoro laikmatis: 3 žingsniai (su nuotraukomis)

Video: Stepper Pomodoro laikmatis: 3 žingsniai (su nuotraukomis)

Video: Stepper Pomodoro laikmatis: 3 žingsniai (su nuotraukomis)
Video: Stepper Pomodoro 2024, Liepa
Anonim
Image
Image
1 žingsnis: litavimo ir prijungimo grandinė už konteinerio
1 žingsnis: litavimo ir prijungimo grandinė už konteinerio

„Stepper Pomodoro“yra stalinis laikmatis, padedantis tvarkyti savo kasdienių užduočių sąrašą, suskaidant kiekvieną darbo laikotarpį į 30 minučių segmentus. Tačiau, skirtingai nei įprastas „Pomodoro“laikmatis, jis nerimauja nerodydamas rodomo likusio laiko. Vietoj to, jis rodo laiką, maždaug per kurį iš trijų ratukų yra pažymėtas. Nerodydamas tikslaus laiko, galite iš tikrųjų sutelkti dėmesį į atliekamą užduotį, o ne nuolat tikrinti savo laiką. Šis „Pomodoro“puikiai tinka tiems, kuriems reikia lengvos ir nepastebimos struktūros.

Įrankiai

• Lituoklis

• Vielos nuėmikliai

• Lazerinis pjoviklis (arba šlifuoklis, priklausomai nuo to, kaip norite sukurti laikmačio ratukus)

• Gręžtuvas (aš naudoju gręžimo presą, kad pradurčiau pakankamai dideles skylutes skalėms)

Medžiagos

• 1 „Arduino Uno“

• 1 pusės dydžio kepimo lenta

• 3 H tiltai (aš naudoju DRV8833, variklio skydas man sutaupė šiek tiek laiko ir galvos skausmo)

• 3 žingsniniai varikliai (aš naudoju NEMA 17 žingsnius)

• 1 mygtukas

• 1 220-1K omų rezistorius (bet kuris diapazonas yra geras)

• Kintamosios srovės/nuolatinės srovės adapteris (aš naudojau 12V, tikriausiai per didelis tokiam žingsnių kiekiui)

• Maitinimo skirstytuvas

• USB A-B laidas

• Duonos lentos laidai

• Lituoklis

• Medžiagos laikmačio talpyklai

• Akrilas ciferblatams

• Vinys arba metaliniai smeigtukai, veikiantys kaip stacionari laikmačio svirtis

1 žingsnis: 1 žingsnis: litavimo ir prijungimo grandinė už konteinerio

Šiam žingsniui aš pradėjau lituoti visus savo H tiltus (jei įsigijote variklio skydą, jų nebereikės lituoti. Turėdami kiekvienam žingsniukui H tiltą, galite patikrinti, kaip prijungti žingsneliai.

„NEMA 17“yra vadinami bipoliniais žingsniniais varikliais, o tai reiškia, kad jie turi du (o ne vieną) ritinių komplektą variklyje, kurie keičia poliškumą, kad būtų galima tiksliai judėti. Bipoliniai žingsniai paprastai turi keturis laidus, o „Polar“- šešis laidus, o tai šiek tiek apsunkina instrukcijas internete. Tačiau prie dviejų laidų galite prijungti kelių metrų matuoklį ir pamatyti, ar jie prijungti, ar ne. „NEMA 17“laiptelių vielos tvarka yra RAUDONA, GELTONA, PILKA, ŽALIA, o raudona ir pilka yra pirmoji polinė pora, o geltona ir žalia - antroji. Jei bet kuriuo metu žingsnelis pradeda trūkčioti, o ne užbaigti numatytą judesį, yra tikimybė, kad jūsų laidai kažkaip nėra tinkamai poliarizuoti į jų dvynius arba vienas yra atjungtas. Kiekvienas žingsnis yra valdomas keturiais išvesties kaiščiais, jungiamais prie DRV8833 H tiltų. Įvesties į DRV8833 laidų eilės tvarka: IN1, IN2, Power, Ground, IN3, IN4. Išvesties tikslais NEMA tiesiog jungiasi prie keturių vidurinių šešių kaiščių tokia tvarka: RAUDONA, PILKA, GELTONA, ŽALIA. Dabar leiskite prijungti maitinimą. Turiu NEMA 2–13 skaitmeniniuose prievaduose.

Norėdami tai padaryti, aš nusipirkau 12 V AC/DC adapterį su skirstytuvu, kad galėčiau tiekti tiek „Arduino“, tiek visus žingsnius. ĮSPĖJIMAS: Nejunkite maitinimo ir įžeminimo laidų iš „Arduino“, kuris jau gauna maitinimą iš prievado, prie duonos plokštės, gaunančios tiesioginę maitinimą iš AC/DC. Tai iškeps jūsų lentą. Iš 12 V adapterio, prijungto prie sienos, viena skirstytuvo dalis pateko tiesiai į „Arduino“prievadą, o kita - į duonos lentos teigiamą ir neigiamą pusę.

Galiausiai atėjo laikas prijungti mygtuką. Vienoje mygtuko pusėje reikės tiek maitinimo (kai mūsų rezistorius yra sujungtas), tiek išvesties kaištis, prilituotas (tai taip pat galima padaryti iš duonos lentos). Kitas kaištis bus mūsų žemė. Šie trys laidai turėtų būti prijungti prie: Maitinimas su rezistoriumi iki 5 V, išėjimas į A0 ir įžemintas įžeminimas pačioje „Arduino Uno“plokštėje.

Iš čia turėtume turėti galimybę bandyti valdyti žingsnius naudodami šį čia esantį pagrindinį žingsninio bandymo kodą. Šis „Arduino.cc“paaiškinimas taip pat išsamiau paaiškina bi/vienpolius žingsnius, jei to reikia. Toliau leidžiame įeiti į „Pomodoro“kodą!

2 veiksmas: 2 veiksmas: įkelkite kodą ir pritaikykite jį savo poreikiams

2 veiksmas: įkelkite kodą ir pritaikykite jį savo poreikiams
2 veiksmas: įkelkite kodą ir pritaikykite jį savo poreikiams

Žemiau yra mano „Pomodoro“su mygtuku kodas, kad jį pritaikytumėte savo sąrankai, atlikite šiuos veiksmus:

1. Nustatykite, kiek žingsnių per apsisukimą turi jūsų asmeninis žingsninis tipas (NEMA 17 turi 200 ir jis nurodytas pastovaus sveiko skaičiaus, vadinamo stepsPerRevolution).

2. Nustatykite, kur įvedamas jūsų mygtukas nuolatinio sveikojo skaičiaus skambintojo mygtuke.

3. Nustatykite, iš kur jūsų „arduino“turėtų išeiti, kad nurodytų žingsnius (šios dalys gali labiausiai skirtis tarp H tilto tipų, nes daugelis naudoja skirtingas bibliotekas).

4. Nustatykite žingsnio greitį RPM.setSpeed (aš turiu nustatęs 1 aps./min., Sukdamas pagal laikrodžio rodyklę ir 30 aps./min. Sukdamasis prieš laikrodžio rodyklę).

5. Nustatykite, kiek kartų norite, kad kiekvienas jūsų žingsnelis apsisuktų, kol juda toliau (mano žingsneliai skaičiuoja dešimt minučių, taigi jie sukasi dešimt kartų 1 aps./min.).

6 Nustatykite, kiek laiko norite suktis atgal.

#įtraukti

const int stepsPerRevolution = 200; // nustatymo konstanta, kiek žingsnių atliekama per kiekvieną mano žingsninių variklių apsisukimą

const int mygtukasPin = A0; // mano mygtuko įvesties nustatymo konstanta

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // inicijuoti žingsnių biblioteką tam tikruose smeigtukuose

Stepper secondStepper (žingsniaiPerRevolution, 6, 7, 8, 9); Žingsnis trečias Žingsnis (žingsniaiPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // iš naujo inicijuoti stepper biblioteką šiuose kaiščiuose, kad būtų galima iš naujo nustatyti apsisukimų dažnį, kai įspėjama, kad laikas pasibaigė Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Žingsnis trečiasStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int skaičiuojant visas stepių apsukas

int timerState = LOW; // dabartinė pomodoro laikmačio būsena (HIGH = įjungta, LOW = išjungta/atstatoma) int buttonState; // dabartinis skaitymas iš įvesties kaiščio int lastButtonState = HIGH; // ankstesnis skaitymas iš įvesties kaiščio

// šie kintamieji yra nepasirašyti ilgi, nes laikas, matuojamas milisekundėmis, // greitai taps didesniu skaičiumi, nei galima išsaugoti int. unsigned long lastDebounceTime = 0; // paskutinį kartą išvesties kaištis buvo perjungtas be parašo ilgas debounceDelay = 50; // debounce time; padidinti, jei išvestis mirksi

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // nustatykite mygtuko konstantą kaip įvestį

firstStepper.setSpeed (1); // nustatyti greitį 1 aps./min., kad būtų galima skaičiuoti 10 minučių per žingsnio sekundęStepper.setSpeed (1); „ThirdStepper.setSpeed“(1); firstStepperBack.setSpeed (30); // nustatykite greitį 30 aps./min., kad įspėtumėte, jog laikas pasibaigė po to, kai „Pomodoro“užbaigė secondStepperBack.setSpeed (30); ThirdStepperBack.setSpeed (30);

Serial.begin (9600); // paleisti serijinį monitorių su 9600 baudų sparta

}

void loop () {

// perskaityti jungiklio būseną į vietinį kintamąjį: int reading = digitalRead (buttonPin);

// patikrinkite, ar ką tik paspaudėte mygtuką

// (t. y. įvestis perėjo nuo LOW iki HIGH), ir jūs laukėte // pakankamai ilgai nuo paskutinio paspaudimo, kad nepaisytumėte jokio triukšmo:

// Jei jungiklis pasikeitė dėl triukšmo ar paspaudimo:

if (reading! = lastButtonState) {// iš naujo nustatyti debouncing timer lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// kad ir koks būtų rodmuo, jis ten buvo ilgiau // nei perjungimo uždelsimas, todėl laikykite jį faktine dabartine būsena:

// jei pasikeitė mygtuko būsena:

if (skaito! = buttonState) {buttonState = skaitymas;

// tik įjunkite laikmačio aktyvavimą, jei nauja mygtuko būsena rodo, kad jis buvo paspaustas

// vieną kartą paspauskite, kad įjungtumėte, dar kartą paspauskite, kad išjungtumėte, jei (buttonState == LOW) {timerState =! timerState; Serial.print („Laikmačio būsena yra“); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println („Pomodoro laikmatis prasidėjo“); if (minutesCounter <11) {// jei dabartinė antroji vertė skiriasi nuo ankstesnės, tada firstStepper.step (stepsPerRevolution); // pasukti žingsnį 200 žingsnių/1 apsisukimų minučiųCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter &&minutesCounter <21) {// jei dabartinė antroji vertė skiriasi nuo ankstesnės, tada secondStepper.step (stepsPerRevolution); // pasukti žingsnį 200 žingsnių/1 apsisukimų minučiųCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter &&minutesCounter <31) {// jei dabartinė antroji vertė skiriasi nuo ankstesnės, tada thirdStepper.step (stepsPerRevolution); // pasukti žingsnį 200 žingsnių/1 apsisukimų minučiųCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter &&minutesCounter <1031) {// jei dabartinė antroji vertė skiriasi nuo ankstesnės, tada firstStepperBack.step (-1); // pasukite žingsnį atgal 1 žingsniu, kad atrodytų taip, lyg visi veiktų vienu metu secondStepperBack.step (-1); „ThirdStepperBack.step“(-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} else {Serial.println ("Pomodoro laikmatis išjungtas"); } // išsaugoti rodmenis. Kitą kartą per ciklą // tai bus lastButtonState: lastButtonState = reading; }

3 veiksmas: 3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“

3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“
3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“
3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“
3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“
3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“
3 žingsnis: jei norite, laikykite žingsnius ir „Arduino“

Aš nusprendžiau sukurti savo laikrodžio lygiagretainio formą. Šią formą ir raudono ąžuolo pasirinkimą įkvėpė vidurio amžiaus modernūs baldai. Viena dalis, su kuria man buvo sunkiausia, buvo įrengti žingsnius su ratukais per jų iliuminatorius, kad būtų matomi.

Rekomenduojamas: