Mündəricat:
- Addım 1: Adım 1: Konteynerdən kənarda Lehimləmə və Bağlama Devresi
- Addım 2: Adım 2: Kod yükləmək və ehtiyaclarınıza uyğunlaşdırmaq
- Addım 3: Adım 3: İstəsəniz Stepper və Arduino ehtiva edin
Video: Step Pomodoro Timer: 3 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
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
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
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ə:
Mikrodenetleyici Olmayan Step Motoru Nəzarətli Step Motor (V2): 9 Addım (Şəkillərlə)
Mikrodenetleyici Olmayan Step Motoru İdarə Edilən Step Motoru (V2): Əvvəlki Təlimatlarımdan birində, bir mikro nəzarətçi olmadan bir step motoru istifadə edərək bir step motorunu necə idarə edəcəyinizi göstərdim. Tez və əyləncəli bir layihə idi, amma bu Təlimat kitabında həll ediləcək iki problemlə gəldi. Beləliklə, ağılla
Step Lokomotivi İdarə Edilən Model - Döner kodlayıcı olaraq Step Motor: 11 addım (şəkillərlə birlikdə)
Step Lokomotivi İdarə Edilən Model | Bir Döner Enkoder Olaraq Step Motoru: Əvvəlki Təlimatlardan birində, bir step motorunun fırlanan bir kodlayıcı olaraq necə istifadə ediləcəyini öyrəndik. Bu layihədə, indi bir Arduino mikrokontrolöründən istifadə edərək bir model lokomotivini idarə etmək üçün o step motoru fırlanan enkoderdən istifadə edəcəyik. Beləliklə, fu olmadan
Step Motor Nəzarətli Step Motor - Döner kodlayıcı olaraq Step Motor: 11 addım (şəkillərlə birlikdə)
Step Motor Nəzarətli Step Motor | Bir Döner Enkoder Olaraq Step Motor: Ətrafında yatan və bir şey etmək istəyən bir neçə step motoru varmı? Bu Təlimat kitabında, bir Arduino mikro nəzarətçisindən istifadə edərək başqa bir step motorun mövqeyini idarə etmək üçün dönər kodlayıcı olaraq bir step motor istifadə edək. Elə isə çox uzatmadan, gəlin
Pomodoro Timer LED Üzüklə Görüşdü: 5 addım
Pomodoro Timer LED Üzüklə Görüşdü: ITTT layihəsi, Pomodoro taymeri ilə ən yaxşı seçimdir. De Pomodoro " texnika " gebruikers -dən istifadə etmək üçün ən yaxşı metodlardan biridir, çünki bu, ən yaxşı proqramdır. Hierbij
POMODORO TECHNIQUE TIMER - ZAMANIN İDARƏ EDİLMƏSİ ÜÇÜN DONANIM CİHAZINI İSTİFADƏ EDİN: 4 Addım
POMODORO TECHNIQUE TIMER - ZAMANIN İDARƏ EDİLMƏSİ ÜÇÜN DONANIM CİHAZINI İSTİFADƏ EDİN: 1.Bu nədir? təfərrüatları aşağıdakı kimi: https: //francescocirillo.com/pages/pomodoro-techni… Bu taymeri istifadə etmək çox asandır