Obsah:

Časovač Stepper Pomodoro: 3 kroky (s obrázkami)
Časovač Stepper Pomodoro: 3 kroky (s obrázkami)

Video: Časovač Stepper Pomodoro: 3 kroky (s obrázkami)

Video: Časovač Stepper Pomodoro: 3 kroky (s obrázkami)
Video: कबड्डी टाइमर। 30 Sec Kabaddi Timer & Raid Timer with Hooter, Timer Device for Sports #shortfeed 2024, November
Anonim
Image
Image
Krok 1: Spájkovací a spojovací obvod mimo nádoby
Krok 1: Spájkovací a spojovací obvod mimo nádoby

Stepper Pomodoro je stolový časovač, ktorý vám pomôže so správou denného zoznamu úloh tým, že rozdelí každú dobu práce na 30 -minútové segmenty. Na rozdiel od bežného časovača Pomodoro vás však nemusí znepokojovať tým, že vám ukáže zostávajúci čas. Namiesto toho zobrazuje čas, približne počas ktorého z troch ciferníkov tiká. Ak neukážete presný čas, umožní vám to skutočne sa sústrediť na úlohu, ktorú máte, skôr ako by ste mali neustále kontrolovať svoj čas. Toto Pomodoro je ideálne pre tých, ktorí potrebujú ľahkú a nenápadnú štruktúru na riadenie svojich úloh.

Nástroje

• Spájkovačka

• Odizolovače drôtov

• Laserová rezačka (alebo brúska podľa toho, ako chcete vytvoriť číselníky časovača)

• Vŕtačka (vŕtačku som použil na dierovanie dostatočne veľkých otvorov pre číselníky)

Materiály

• 1 Arduino Uno

• 1 polovičný pekáč

• 3 H mosty (použil som DRV8833, ochranný kryt motora mi ušetril čas a bolesti hlavy)

• 3 krokové motory (použil som krokové motory NEMA 17)

• 1 tlačidlo

• 1 220-1K ohmový odpor (akýkoľvek v rozsahu je dobrý)

• AC/DC adaptér (použil som 12V, asi príliš veľký na toto množstvo stepperov)

• Rozdeľovač výkonu

• USB A-B drôt

• Drôty na chlieb

• Spájka

• Materiály pre nádobu časovača

• Akryl na číselníky

• Klince alebo kovové kolíky slúžia ako stacionárne rameno časovača

Krok 1: Krok 1: Spájkovací a spojovací obvod mimo nádoby

V tomto kroku som začal spájkovaním všetkých mojich mostíkov H (ak si kúpite kryt motora, tieto by ste nemali spájkovať. Keď budete mať pre každý krokomer mostík H, môžete skontrolovať, ako sú vaše steppery zapojené.

NEMA 17 sú známe ako bipolárne krokové motory, čo znamená, že majú v motore dve (nie jednu) sadu cievok, ktoré menia polaritu, aby umožnili presný pohyb motora. Bipolárne steppery majú bežne štyri drôty a polárne stepery majú bežne šesť, čo skomplikovalo online pokyny. K dvom vodičom však môžete pripojiť multimeter a zistiť, či sú prepojené alebo nie. Steppery NEMA 17 majú poradie drôtov v RED, YELLOW, GREY, GREEN farebnom poradí, pričom červená a šedá sú prvým polárnym párom a žltá a zelená sú druhým polárnym párom. Ak sa v každom mieste začne stepper šklbať, než aby dokončil očakávaný pohyb, je pravdepodobné, že vaše vodiče nie sú správne polarizované na svoje dvojča alebo je jeden odpojený. Každý stepper je ovládaný štyrmi výstupnými pinmi, ktoré sú prepojené s mostíkmi DRV8833 H. Poradie zapojenia pre vstup do DRV8833 je: IN1, IN2, napájanie, uzemnenie, IN3, IN4. Na účely výstupu sa NEMA jednoducho pripája k prostredným štyrom zo šiestich kolíkov v poradí: ČERVENÁ, SIVÁ, ŽLTÁ, ZELENÁ. Teraz pripojte napájanie. Mám svoje NEMA na digitálnych portoch 2–13.

Aby som to napájal, kúpil som si 12 V AC/DC adaptér s rozdeľovačom, aby bolo možné napájať Arduino aj všetky steppery. VAROVANIE: Nepripájajte napájacie a uzemňovacie vodiče z Arduina, ktoré už dostávajú energiu z portu, na nepájivú dosku, ktorá prijíma priame napájanie z AC/DC. Vypraží to vašu dosku. Z 12 V adaptéra zapojeného do steny jedna časť rozdeľovača smerovala priamo do portu Arduina a druhá do kladných a záporných pólov chleba.

Nakoniec je čas pripojiť tlačidlo. Jedna strana tlačidla bude potrebovať ako napájanie (s prepojeným našim odporom), tak aj spájkovaný výstupný kolík (to je možné aj z nepájivej dosky). Druhý kolík bude naša zem. Tieto tri vodiče by mali byť zapojené do: Napájania s odporom 5 V, výstupu do A0 a uzemnenia na doske samotnej dosky Arduino Uno.

Odtiaľ by sme sa mali pokúsiť ovládať steppery pomocou tohto základného kódu krokového testu, ktorý nájdete tu. Toto vysvetlenie na Arduino.cc tiež obsahuje podrobnejšie vysvetlenie dvoj/unipolárnych stepperov, ak to potrebujete. Ďalej sa dostaneme k kódu Pomodoro!

Krok 2: Krok 2: Nahrajte kód a upravte ho podľa svojich potrieb

Krok 2: Nahrajte kód a upravte ho podľa svojich potrieb
Krok 2: Nahrajte kód a upravte ho podľa svojich potrieb

Nasleduje kód pre môj Pomodoro s tlačidlom, aby ste ho mohli prispôsobiť svojmu nastaveniu, postupujte nasledovne:

1. Nastavte, koľko krokov na otáčku má váš typ osobného steppera (NEMA 17 má 200 a je uvedený v konštantnom čísle nazývanom stepsPerRevolution).

2. Nastavte, kde sa má vaše tlačidlo zadávať, v konštantnom celočíselnom tlačidle pinPin.

3. Nastavte, odkiaľ má arduino vystupovať, aby ste mohli ovládať steppery (tieto časti sa môžu medzi typmi mostov H najviac líšiť, pretože mnohé z nich používajú rôzne knižnice).

4. V kroku.setSpeed (krok mám nastavený na 1 otáčku za minútu a 30 otáčok proti smeru hodinových ručičiek) nastavte rýchlosť krokovania v ot / min.

5. Nastavte, koľkokrát chcete, aby sa každý z vašich stepperov otočil, než sa pohne ďalej (moje stepery počítajú desať minút, takže sa desaťkrát otáčajú pri 1 otáčkach za minútu).

6 Nastavte, ako dlho sa má otáčať dozadu.

#zahrnúť

const int stepsPerRevolution = 200; // nastavenie konštanty, koľko krokov je v každej plnej otáčke mojich krokových motorov

tlačidlo const intPin = A0; // nastavenie konštanty môjho tlačidlového vstupu

Stepper firstStepper (krokyPerRevolution, 2, 3, 4, 5); // inicializácia knižnice stepperov na určitých pinoch

Stepper secondStepper (krokyPerRevolution, 6, 7, 8, 9); Kroková tretina Kroková (krokyPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // reinicializácia knižnice stepperov na týchto pinoch, aby bolo možné vynulovať otáčky pri upozornení, že čas uplynul, Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int počítanie plných otáčok stepperov

int timerState = LOW; // aktuálny stav časovača pomodoro (HIGH = zapnutý, LOW = vypnutý/reset) int buttonState; // aktuálne čítanie zo vstupného pinu int lastButtonState = HIGH; // predchádzajúce čítanie zo vstupného pinu

// nasledujúce premenné sú dlhé bez znamienka, pretože čas meraný v milisekundách, // sa rýchlo stane väčším číslom, ako je možné uložiť do int. bez znamienka long lastDebounceTime = 0; // naposledy, keď bol výstupný pin prepínaný bez znamienka long debounceDelay = 50; // čas odskoku; zvýšiť, ak výstup bliká

neplatné nastavenie () {

pinMode (buttonPin, INPUT_PULLUP); // nastavenie konštanty tlačidla ako vstupu

firstStepper.setSpeed (1); // nastavenie rychlosti na 1 ot/ min na pocitanie 10 minut na krokova sekundaStepper.setSpeed (1); thirdStepper.setSpeed (1); firstStepperBack.setSpeed (30); // nastavenie otáčok na 30 ot/ min pre upozornenie, že čas uplynul po tom, ako Pomodoro dokončil secondStepperBack.setSpeed (30); thirdStepperBack.setSpeed (30);

Serial.begin (9600); // spustenie sériového monitora s prenosovou rýchlosťou 9600 baudov

}

prázdna slučka () {

// načítanie stavu prepínača do lokálnej premennej: int reading = digitalRead (buttonPin);

// skontrolujte, či ste práve stlačili tlačidlo

// (t. j. vstup prešiel z NÍZKEHO na VYSOKÝ) a čakali ste // dosť dlho od posledného stlačenia, aby ste ignorovali akýkoľvek hluk:

// Ak sa prepínač zmenil kvôli hluku alebo stlačeniu:

if (reading! = lastButtonState) {// vynulovanie časovača odblokovania lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// nech je čítanie akékoľvek, je tam dlhšie // ako oneskorenie odskoku, takže to ber ako skutočný aktuálny stav:

// ak sa zmenil stav tlačidla:

if (čítanie! = buttonState) {buttonState = čítanie;

// aktiváciu časovača prepínajte iba vtedy, ak nový stav tlačidla naznačuje, že bol stlačený

// jedným stlačením zapnete, ďalším stlačením vypnete if (buttonState == LOW) {timerState =! timerState; Serial.print ("Stav časovača je"); Serial.println (timerState); }}}

if (timerState == HIGH) {

Serial.println („Časovač Pomodoro sa začal“); if (minutesCounter <11) {// ak je aktuálna druhá hodnota odlišná od predchádzajúcej hodnoty, tak firstStepper.step (stepsPerRevolution); // otoč krokovačom 200 krokov/1 otáčka za minútuČítač ++; Serial.print ("minutesCounter is"); Serial.println (minútový počítadlo); }

if (11 <= minutesCounter && minutesCounter <21) {// ak je aktuálna druhá hodnota odlišná od predchádzajúcej hodnoty, tak secondStepper.step (stepsPerRevolution); // otoč krokovačom 200 krokov/1 otáčka za minútuČítač ++; Serial.print ("minutesCounter is"); Serial.println (počítadlo minút); }

if (21 <= minutesCounter && minutesCounter <31) {// ak je aktualna druha hodnota odlisna od predchadzajucej hodnoty, potom thirdStepper.step (stepsPerRevolution); // otoč krokovačom 200 krokov/1 otáčka za minútuČítač ++; Serial.print ("minutesCounter is"); Serial.println (počítadlo minút); }

if (31 <= minutesCounter && minutesCounter <1031) {// ak je aktuálna druhá hodnota odlišná od predchádzajúcej hodnoty, tak firstStepperBack.step (-1); // otoč krokovačom späť o 1 krok v poradí, aby vyzeral, že všetky bežia súčasne secondStepperBack.step (-1); thirdStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (počítadlo minút); }} else {Serial.println ("Časovač Pomodoro je vypnutý"); } // uloženie čítania. Nabudúce cez slučku, // to bude lastButtonState: lastButtonState = čítanie; }

Krok 3: Krok 3: Obsahujte steppery a Arduino, ak si to želáte

Krok 3: Obsahuje steppery a Arduino, ak si budete priať
Krok 3: Obsahuje steppery a Arduino, ak si budete priať
Krok 3: Obsahuje steppery a Arduino, ak si budete priať
Krok 3: Obsahuje steppery a Arduino, ak si budete priať
Krok 3: Obsahuje steppery a Arduino, ak si budete priať
Krok 3: Obsahuje steppery a Arduino, ak si budete priať

Rozhodol som sa vytvoriť rovnobežníkový tvar pre svoje hodiny. Táto forma a výber materiálov z červeného duba boli inšpirované moderným nábytkom v polovici storočia. Jedna časť, s ktorou som mal najväčšie problémy, bolo osadenie stepperov ciferníkmi cez ich okienka, z ktorých bolo vidieť.

Odporúča: