Isi kandungan:

Pemasa Stepper Pomodoro: 3 Langkah (dengan Gambar)
Pemasa Stepper Pomodoro: 3 Langkah (dengan Gambar)

Video: Pemasa Stepper Pomodoro: 3 Langkah (dengan Gambar)

Video: Pemasa Stepper Pomodoro: 3 Langkah (dengan Gambar)
Video: कबड्डी टाइमर। 30 Sec Kabaddi Timer & Raid Timer with Hooter, Timer Device for Sports #shortfeed 2024, Julai
Anonim
Image
Image
Langkah 1: Memateri dan Menyambungkan Litar Di Luar Bekas
Langkah 1: Memateri dan Menyambungkan Litar Di Luar Bekas

Stepper Pomodoro adalah pemasa meja untuk membantu seseorang menguruskan senarai tugas harian mereka dengan membahagikan setiap tempoh kerja menjadi segmen 30 minit. Namun, tidak seperti pemasa Pomodoro biasa, ia tidak membuat anda cemas dengan menunjukkan jumlah masa yang tersisa. Sebagai gantinya, ia memaparkan waktu kira-kira yang mana satu daripada tiga dail itu berdetik. Dengan tidak menunjukkan waktu yang tepat, ini membolehkan anda benar-benar menumpukan perhatian pada tugas yang ada, dan bukannya terus memeriksa masa anda yang tersisa. Pomodoro ini sangat sesuai untuk mereka yang memerlukan struktur yang ringan dan tidak mengganggu pengurusan tugas mereka.

Alat

• Besi pematerian

• Pelucut wayar

• Pemotong laser (atau sander bergantung pada bagaimana anda ingin membuat panggil pemasa)

• Bor (saya menggunakan gerudi tekan untuk menebuk lubang yang cukup besar untuk dial)

Bahan

• 1 Arduino Uno

• 1 papan roti bersaiz separuh

• Jambatan 3 H (saya menggunakan DRV8833, pelindung perisai motor telah menjimatkan masa dan sakit kepala)

• 3 motor Stepper (saya menggunakan stepper NEMA 17)

• 1 Butang

• 1 perintang 220-1K ohm (mana-mana dalam jarak baik)

• Penyesuai AC / DC (saya menggunakan 12V, mungkin terlalu besar untuk jumlah stepper ini)

• Pembahagi kuasa

• Wayar A-B USB

• Kawat papan roti

• Pateri

• Bahan untuk bekas pemasa

• Akrilik untuk dail

• Paku atau pin logam untuk bertindak sebagai pemasa masa pegun

Langkah 1: Langkah 1: Memateri dan Menyambungkan Litar Di Luar Bekas

Untuk langkah ini saya mulakan dengan menyatukan semua jambatan H saya (jika anda membeli perisai motor, anda tidak perlu menyoldernya. Setelah anda mempunyai jambatan H untuk setiap anak tangga anda, anda dapat memeriksa bagaimana kabel stepper anda.

NEMA 17s adalah apa yang dikenali sebagai motor stepper bipolar, yang bermaksud bahawa mereka mempunyai dua (bukan satu) gegelung di dalam motor yang mengubah polaritas untuk membolehkan pergerakan motor yang tepat. Stepper bipolar biasanya mempunyai empat wayar dan stepper Polar biasanya mempunyai enam, ini sedikit menyulitkan arahan dalam talian. Walau bagaimanapun, anda boleh memasang multi meter ke dua wayar dan melihat sama ada ia bersambung atau tidak. Stepper NEMA 17 mempunyai susunan wayar mereka dalam susunan warna MERAH, KUNING, GREY, HIJAU, dengan merah dan kelabu menjadi pasangan kutub pertama dan kuning dan hijau menjadi pasangan kutub kedua. Sekiranya pada tahap mana stepper mula berkedut daripada menyelesaikan pergerakan yang diharapkan, kemungkinan wayar anda entah bagaimana tidak terpolarisasi dengan betul kepada kembar mereka atau satu terputus. Setiap stepper dikendalikan melalui empat pin output yang menghubungkan ke jambatan DRV8833 H. Urutan pendawaian untuk input ke DRV8833 adalah: IN1, IN2, Power, Ground, IN3, IN4. Untuk tujuan keluaran, NEMA hanya bersambung ke empat tengah dari enam pin dalam urutan: MERAH, GREY, KUNING, HIJAU. Sekarang mari sambungkan kuasa. Saya mempunyai NEMA saya pada port digital 2–13.

Untuk menghidupkannya, saya membeli penyesuai 12V AC / DC dengan splitter untuk dapat menghidupkan Arduino, dan semua stepper. PERINGATAN: Jangan sambungkan kabel kuasa dan kabel tanah dari Arduino yang sudah menerima kuasa dari port ke papan roti yang menerima kuasa langsung dari AC / DC. Ini akan menggoreng papan anda. Dari penyesuai 12V yang dipasang ke dinding, satu bahagian pemisah terus menuju ke pelabuhan Arduino dan yang lain ke positif dan negatif papan roti.

Terakhir, sudah tiba masanya untuk menyambungkan butang. Satu bahagian butang memerlukan kedua-dua kuasa (dengan perintang kita disambungkan) serta pin output yang disolder (ini juga dapat dilakukan dari papan roti). Pin yang lain akan menjadi landasan kita. Ketiga-tiga wayar ini harus disambungkan ke: Daya dengan perintang hingga 5V, output ke A0, dan arde ke ground semua di papan Arduino Uno itu sendiri.

Dari sini kita seharusnya dapat berusaha mengawal stepper menggunakan kod ujian stepper asas yang terdapat di sini. Penjelasan mengenai Arduino.cc ini juga memberikan penjelasan yang lebih mendalam mengenai stepper bi / unipolar jika anda memerlukannya. Seterusnya mari masuk ke dalam kod untuk Pomodoro!

Langkah 2: Langkah 2: Memuat naik Kod dan Menyesuaikannya dengan Keperluan Anda

Langkah 2: Memuat naik Kod dan Menyesuaikannya dengan Keperluan Anda
Langkah 2: Memuat naik Kod dan Menyesuaikannya dengan Keperluan Anda

Di bawah ini adalah kod untuk butang Pomodoro saya, untuk menyesuaikannya dengan persediaan anda ikuti langkah-langkah berikut:

1. Tetapkan berapa langkah per revolusi jenis stepper peribadi anda (NEMA 17s mempunyai 200 dan ia disenaraikan dalam bilangan bulat tetap yang disebut stepPerRevolution).

2. Tetapkan tempat butang anda memasukkan dalam butang pemanggil bilangan bulat tetap.

3. Tetapkan dari mana arduino anda harus dikeluarkan untuk memerintahkan stepper (bahagian-bahagian ini mungkin berbeza antara jenis jambatan H kerana banyak yang mempunyai perpustakaan yang berbeza yang mereka gunakan).

4. Tetapkan kelajuan stepper dalam RPM di.setSpeed (Saya telah menetapkan tambang untuk 1 rpm ketika berpusing mengikut arah jam dan 30 rpm ketika berpusing ke arah lawan jam).

5. Tetapkan berapa kali anda mahu setiap stepper anda dihidupkan sebelum bergerak (stepper saya mengira sepuluh minit, sehingga mereka berpusing sepuluh kali pada 1 RPM).

6 Tetapkan berapa lama anda mahu ia berpusing ke belakang.

#sertakan

const int stepsPerRevolution = 200; // menetapkan berapa banyak langkah dalam setiap revolusi penuh motor stepper saya

const int buttonPin = A0; // menetapkan pemalar input butang saya

Stepper firstStepper (stepPerRevolution, 2, 3, 4, 5); // mulakan perpustakaan stepper pada pin tertentu

Stepper secondStepper (stepPerRevolution, 6, 7, 8, 9); Stepper ketigaStepper (stepPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepPerRevolution, 2, 3, 4, 5); // memulakan semula pustaka stepper pada pin ini agar dapat menetapkan semula rpm apabila memberi amaran bahawa masa telah habis Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Stepper ketigaStepperBack (stepPerRevolution, 10, 11, 12, 13);

int minitCounter = 0; // int mengira revolusi penuh stepper

int timerState = RENDAH; // keadaan semasa pemasa pomodoro (HIGH = on, LOW = off / reset) butang intState; // bacaan semasa dari pin input int lastButtonState = TINGGI; // bacaan sebelumnya dari pin input

// pemboleh ubah berikut tidak bertanda panjang kerana masa, diukur dalam milidetik, // dengan cepat akan menjadi bilangan yang lebih besar daripada yang dapat disimpan di sebuah int. lama terakhir tidak ditandatanganiDebounceTime = 0; // kali terakhir pin output ditukar debounceDelay panjang yang tidak ditandatangani = 50; // masa debounce; meningkat sekiranya output berkelip

batal persediaan () {

pinMode (buttonPin, INPUT_PULLUP); // tetapkan pemalar butang sebagai input

firstStepper.setSpeed (1); // tetapkan kelajuan pada 1 rpm untuk mengira 10 minit per stepper secondStepper.setSpeed (1); ketigaStepper.setSpeed (1); firstStepperBack.setSpeed (30); // tetapkan kelajuan pada 30 rpm untuk memberi amaran bahawa masa telah tamat setelah Pomodoro menyelesaikan secondStepperBack.setSpeed (30); ketigaStepperBack.setSpeed (30);

Serial.begin (9600); // mulakan monitor bersiri dengan kadar baud 9600

}

gelung kosong () {

// baca keadaan pertukaran menjadi pemboleh ubah tempatan: int reading = digitalRead (buttonPin);

// periksa untuk melihat apakah anda hanya menekan butang

// (iaitu inputnya dari RENDAH ke TINGGI), dan anda sudah lama menunggu // sejak akhbar terakhir untuk mengabaikan sebarang bunyi:

// Jika suis berubah, disebabkan oleh kebisingan atau menekan:

if (membaca! = lastButtonState) {// tetapkan semula pemasa debouncing lastDebounceTime = millis (); } jika ((milis () - lastDebounceTime)> debounceDelay) {// apa sahaja pembacaannya, sudah ada lebih lama // daripada kelewatan debounce, jadi anggap ia sebagai keadaan semasa yang sebenarnya:

// jika keadaan butang telah berubah:

jika (membaca! = buttonState) {buttonState = membaca;

// alihkan hanya pengaktifan pemasa jika keadaan butang baru menunjukkan bahawa ia ditekan

// tekan sekali untuk menghidupkan, tekan sekali lagi untuk mematikan jika (buttonState == LOW) {timerState =! timerState; Serial.print ("State Timer is"); Serial.println (timerState); }}}

jika (timerState == TINGGI) {

Serial.println ("Pemasa Pomodoro telah bermula"); jika (minitCounter <11) {// jika nilai kedua semasa berbeza daripada nilai sebelumnya maka firstStepper.step (stepsPerRevolution); // putar stepper 200 langkah / 1 rev revCounter ++; Serial.print ("minutesCounter is"); Serial.println (minitCounter); }

jika (11 <= minutesCounter && minutesCounter <21) {// jika nilai kedua semasa berbeza daripada nilai sebelumnya maka secondStepper.step (stepsPerRevolution); // putar stepper 200 langkah / 1 rev revCounter ++; Serial.print ("minutesCounter is"); Serial.println (minitCounter); }

jika (21 <= minutesCounter && minutesCounter <31) {// jika nilai kedua semasa berbeza daripada nilai sebelumnya maka ketigaStepper.step (stepPerRevolution); // putar stepper 200 langkah / 1 rev revCounter ++; Serial.print ("minutesCounter is"); Serial.println (minitCounter); }

jika (31 <= minutesCounter && minutesCounter <1031) {// jika nilai kedua semasa berbeza daripada nilai sebelumnya maka firstStepperBack.step (-1); // putar langkah ke belakang 1 langkah mengikut urutan untuk kelihatan seperti semua berjalan serentak keduaStepperBack.step (-1); ketigaStepperBack.step (-1); minitCounter ++; Serial.print ("minutesCounter is"); Serial.println (minitCounter); }} lain {Serial.println ("Pemasa Pomodoro dimatikan"); } // simpan bacaan. Lain kali melalui gelung, // ia akan menjadi LastButtonState: lastButtonState = membaca; }

Langkah 3: Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu

Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu
Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu
Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu
Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu
Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu
Langkah 3: Mengandungi Steppers dan Arduino Sekiranya Anda Mahu

Saya memilih untuk membuat bentuk paralelogram untuk jam saya. Bentuk ini dan pilihan material oak merah diilhamkan oleh perabot moden abad pertengahan. Satu bahagian yang paling sukar bagi saya adalah memasang anak tangga dengan panggil melalui lubang-lubang masuk yang dapat dilihat.

Disyorkan: