Mündəricat:

Step Pomodoro Timer: 3 addım (şəkillərlə)
Step Pomodoro Timer: 3 addım (şəkillərlə)

Video: Step Pomodoro Timer: 3 addım (şəkillərlə)

Video: Step Pomodoro Timer: 3 addım (şəkillərlə)
Video: КАК ПОХУДЕТЬ БЫСТРО И ПРОСТО! - 5 КГ ЗА НЕДЕЛЮ! ГРЕЧНЕВАЯ ДИЕТА. 2024, Iyul
Anonim
Image
Image
Addım 1: Konteynerdən kənarda Lehimləmə və Bağlama Devresi
Addım 1: Konteynerdən kənarda Lehimləmə və Bağlama Devresi

Stepper Pomodoro, hər bir iş müddətini 30 dəqiqəlik seqmentlərə bölməklə gündəlik vəzifə siyahısını idarə etməyə kömək edən bir masa taymeridir. Ancaq normal bir Pomodoro taymerindən fərqli olaraq, qalan vaxtı göstərərək sizi narahat etmir. Bunun əvəzinə təxminən üç yığımdan hansının keçdiyini göstərir. Vaxtı dəqiq göstərməməklə, əslində əlinizdəki işə diqqət yetirməyə imkan verir, daha çox vaxtınızı yoxlayırsınız. Bu Pomodoro, vəzifələrini idarə etmək üçün yüngül və gözəgörünməz bir quruluşa ehtiyacı olanlar üçün idealdır.

Alətlər

• Lehimleme dəmir

• Tel çıxarıcılar

• Lazer kəsici (və ya taymerin yığımlarını necə yaratmaq istədiyinizə görə zımpara)

• Qazma (kadrlar üçün kifayət qədər böyük deliklər açmaq üçün bir qazma maşını istifadə etdim)

Materiallar

• 1 Arduino Uno

• 1 ədəd yarım ölçülü çörək taxtası

• 3 H körpüsü (DRV8833 istifadə etdim, bir motor qalxanı məni bir az vaxta və baş ağrısına qənaət etdi)

• 3 Step motoru (NEMA 17 stepper istifadə etdim)

• 1 Düymə

• 1 220-1K ohm müqavimət (hər hansı bir diapazonda yaxşıdır)

• AC/DC adapteri (12V istifadə etdim, yəqin ki, bu qədər stepper üçün çox böyükdür)

• Güc ayırıcı

• USB A-B teli

• Breadboard telləri

• Lehim

• Zamanlayıcı konteyner üçün materiallar

• Zənglər üçün akril

• Taymerin sabit qolu kimi çıxış etmək üçün çivilər və ya metal sancaqlar

Addım 1: Adım 1: Konteynerdən kənarda Lehimləmə və Bağlama Devresi

Bu addımı atmaq üçün bütün H körpülərimi birlikdə lehimləməklə başladım (motor qalxanı satın alsanız, bunları lehimləməyinizə ehtiyac yoxdur. Hər bir addım üçün bir H körpüsünə sahib olduğunuzda, stepperlərinizin necə bağlandığını yoxlaya bilərsiniz.

NEMA 17 -lər, bipolyar pilləli mühərriklər olaraq bilinir, yəni motorun dəqiq hərəkət etməsi üçün polariteyi dəyişən iki (birdən çox) rulon dəstinə malikdir. Bipolyar stepperlərdə ümumiyyətlə dörd tel, Polar steplərdə isə altı tel var, bu da onlayn təlimatları bir qədər çətinləşdirdi. Bununla birlikdə iki telə bir çox sayğac bağlaya bilərsiniz və əlaqəli olub olmadığını görə bilərsiniz. NEMA 17 pilləkənlərinin tel sırası QIRMIZI, SARI, GREY, YAŞIL rəng sırasına malikdir, qırmızı və boz birinci qütb cütü, sarı və yaşıl ikinci qütb cütüdür. Hər hansı bir anda stepper gözlənilən hərəkəti tamamlamaq əvəzinə seğirməyə başlayırsa, ehtimal ki, telləriniz bir şəkildə öz əkizlərinə düzgün qütbləşməyib və ya biri kəsilib. Hər bir addım DRV8833 H körpülərinə qoşulan dörd çıxış pinindən idarə olunur. DRV8833 -ə giriş üçün kabel sırası belədir: IN1, IN2, Güc, Ground, IN3, IN4. Çıxış məqsədləri üçün NEMA sırasıyla altı sancağın orta dördünə bağlanır: QIRMIZI, GRİ, SARI, YAŞIL. İndi gücü bağlayaq. NEMA'larım 2-13 rəqəmsal portlarda var.

Bunu gücləndirmək üçün həm Arduinoya, həm də bütün addımlara güc verə bilmək üçün bölücü ilə 12V AC/DC adapter aldım. XƏBƏRDARLIQ: Güc və torpaq tellərini artıq limandan enerji alan Arduino -dan AC/DC -dən birbaşa enerji alan çörək taxtasına bağlamayın. Lövhənizi qızardacaq. Divara qoşulmuş 12V adapterdən ayırıcının bir hissəsi birbaşa Arduino limanına, digəri isə çörək lövhəsinin müsbət və mənfi tərəfinə getdi.

Nəhayət, düyməni bağlamağın vaxtı gəldi. Düymənin bir tərəfi həm gücə (müqavimətçimizi bağladıqda), həm də lehimlənmiş çıxış pininə ehtiyac duyacaq (bu da çörək taxtasından edilə bilər). Digər pin bizim yerimiz olacaq. Bu üç telə qoşulmalıdır: 5V -ə qədər rezistorlu güc, A0 -a çıxış və Arduino Uno lövhəsinin özündə topraklama.

Buradan burada tapılan bu əsas stepper test kodunu istifadə edərək stepperləri idarə etməyə çalışmalıyıq. Arduino.cc -dəki bu izahat, ehtiyacınız olarsa bi/təkqütblü stepperlərin daha ətraflı izahını verir. Sonrakı Pomodoro koduna daxil olaq!

Addım 2: Adım 2: Kod yükləmək və ehtiyaclarınıza uyğunlaşdırmaq

Addım 2: Kodu yükləyin və ehtiyaclarınıza uyğunlaşdırın
Addım 2: Kodu yükləyin və ehtiyaclarınıza uyğunlaşdırın

Aşağıda Pomodoro düyməli kodum var, onu quruluşunuza uyğunlaşdırmaq üçün bu addımları izləyin:

1. Şəxsi addım tipinizin inqilab başına neçə addımı təyin edin (NEMA 17 -lərin 200 -ü var və bu addımlarPerRevolution adlı daimi tam ədəddə verilmişdir).

2. Daimi tamsayı çağıran buttonPin -də düymənizin daxil olduğu yeri təyin edin.

3. Arduino -nun stepperlərə əmr vermək üçün çıxış etməli olduğu yeri təyin edin (bu hissələr H körpü növləri arasında ən çox fərqli ola bilər, çünki çoxlarının istifadə etdiyi fərqli kitabxanalar var).

4. StepSpeed -də addım sürətini RPM -də təyin edin (saat yönünde dönərkən 1 rpm və saat yönünün əksinə dönərkən 30 rpm üçün mina dəsti var).

5. Addım atan hər bir hərəkət etməzdən əvvəl neçə dəfə dönməsini istədiyinizi təyin edin (mənim addımçılarım on dəqiqə sayır, buna görə də 1 RPM -də on dəfə fırlanır).

6 Geriyə dönməsini nə qədər istədiyinizi təyin edin.

#daxil edin

const int stepsPerRevolution = 200; // step motorlarımın hər tam inqilabında neçə addımın sabit olduğunu təyin etmək

const int buttonPin = A0; // düymə girişimin sabitini təyin etmək

Stepper firstStepper (adımlarPerRevolution, 2, 3, 4, 5); // müəyyən kitabçalarda step kitabxanasını işə salın

Stepper SecondStepper (adımlarPerRevolution, 6, 7, 8, 9); Stepper StepStepper (StepPerRevolution, 10, 11, 12, 13); Stepper FirstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // vaxtın sona çatdığını bildirərkən Step/ SecondStepperBack (StepPerRevolution, 6, 7, 8, 9) üçün rpm -ni sıfırlaya bilmək üçün bu pinlərdəki step kitabxanasını yenidən başladın; Stepper StepStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int step addımların tam inqilablarını saymaq

int timerState = LOW; // pomodoro taymerinin indiki vəziyyəti (YÜKSEK = açıq, DÜŞÜK = söndür/sıfırla) int buttonState; // giriş pinindən cari oxuma int lastButtonState = HIGH; // giriş pinindən əvvəlki oxu

// aşağıdakı dəyişənlər uzun işarəsizdir, çünki milisaniyələrlə ölçülmüş vaxt, // tez bir intdə saxlanıla biləcəyindən daha böyük bir rəqəmə çevriləcək. imzasız uzun lastDebounceTime = 0; // çıxış pininin sonuncu dəfə imzasız uzun debounceDelay = 50; // çıxma vaxtı; çıxış titrəyirsə artırın

boş quraşdırma () {

pinMode (buttonPin, INPUT_PULLUP); // düymənin sabitini giriş olaraq təyin edin

firstStepper.setSpeed (1); // saniyədə 10 dəqiqə saymaq üçün sürəti 1 rpm -də təyin edinStepper.setSpeed (1); üçüncüStepper.setSpeed (1); firstStepperBack.setSpeed (30); // Pomodoro secondStepperBack.setSpeed (30) işini bitirdikdən sonra vaxtın bitdiyini bildirmək üçün sürəti 30 rpm -də təyin edin; üçüncüStepperBack.setSpeed (30);

Serial.begin (9600); // 9600 baud dərəcəsi ilə seriyalı monitoru işə salın

}

boşluq döngəsi () {

// keçidin vəziyyətini yerli dəyişənə oxuyun: int reading = digitalRead (buttonPin);

// yalnız düyməni basdığınızı yoxlayın

// (yəni giriş LOW -dan YÜKSƏ keçdi) və son basışdan bəri hər hansı bir səs -küyə məhəl qoymamaq üçün // kifayət qədər uzun müddət gözləmisiniz:

// Səs -küy və ya basma səbəbiylə keçid dəyişdirilərsə:

if (oxu! = lastButtonState) {// debDeunksiya sayğacını sıfırlayın lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// oxunuş nə olursa olsun, geri çəkilmə gecikməsindən daha uzun müddətdir // var, buna görə də faktiki cari vəziyyət kimi qəbul edin:

// düymə vəziyyəti dəyişibsə:

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

// yalnız yeni düymə vəziyyəti basıldığını göstərirsə, taymer aktivləşdirməsini dəyişdirin

// açmaq üçün bir dəfə basın, söndürmək üçün yenidən basın (buttonState == LOW) {timerState =! timerState; Serial.print ("Taymer vəziyyəti"); Serial.println (timerState); }}}

əgər (timerState == HIGH) {

Serial.println ("Pomodoro taymeri başladı"); if (minutesCounter <11) {// cari ikinci dəyər əvvəlki dəyərdən fərqlidirsə, əvvəlcəStepper.step (stepsPerRevolution); // addımı 200 addım/1 dövr dəqiqəyə çevirin Counter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// cari ikinci dəyər əvvəlki dəyərdən fərqlidirsə, secondStepper.step (stepsPerRevolution); // addımı 200 addım/1 dövr dəqiqəyə çevirin Counter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// cari ikinci dəyər əvvəlki dəyərdən fərqlidirsə, üçüncüStepper.step (stepsPerRevolution); // addımı 200 addım/1 dövr dəqiqəyə çevirin Counter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// cari ikinci dəyər əvvəlki dəyərdən fərqlidirsə, əvvəlcəStepperBack.step (-1); // stepperi 1 addım arxaya çevirin, hamısı eyni anda çalışır kimi görünmək üçün secondStepperBack.step (-1); üçüncüStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} başqa {Serial.println ("Pomodoro taymeri deaktivdir"); } // oxumağı yadda saxla. Növbəti dəfə döngədə // bu sonButtonState olacaq: lastButtonState = oxu; }

Addım 3: Adım 3: İstəsəniz Stepper və Arduino ehtiva edin

Addım 3: İstəsəniz Steppers və Arduino ehtiva edin
Addım 3: İstəsəniz Steppers və Arduino ehtiva edin
Addım 3: İstəsəniz Steppers və Arduino ehtiva edin
Addım 3: İstəsəniz Steppers və Arduino ehtiva edin
Addım 3: İstəsəniz Steppers və Arduino ehtiva edin
Addım 3: İstəsəniz Steppers və Arduino ehtiva edin

Saatım üçün paralelloqramik bir forma yaratmağı seçdim. Qırmızı palıdın bu forması və material seçimləri orta əsrlərin müasir mebellərindən ilham almışdır. Ən çox çətinlik çəkdiyim bir hissə, addımbaşıların görüləcəkləri çuxurların arasından kadrlar taxması idi.

Tövsiyə: