Daftar Isi:
- Langkah 1: Kenali Steppers
- Langkah 2: Temukan Kesamaan
- Langkah 3: Cari Tahu Urutan Melangkah
- Langkah 4: Mengambil Motor untuk Test Drive
- Langkah 5: Ayunkan Bolak-Balik
- Langkah 6: Saya Tidak Pernah Setengah Langkah, Karena Saya Bukan Setengah Langkah…
- Langkah 7: Tambahkan Driver Motor
- Langkah 8: Akhir
Video: Mengendarai Motor Stepper Dengan Mikroprosesor AVR: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Punya beberapa motor stepper yang diambil dari printer/disk drive/dll tergeletak di sekitar?
Beberapa probing dengan ohmeter, diikuti oleh beberapa kode driver sederhana pada mikroprosesor Anda dan Anda akan melangkah dengan gaya.
Langkah 1: Kenali Steppers
Pada dasarnya, Anda harus mencari tahu ke mana semua kabel kecil itu pergi.
Langkah pertama adalah mencari tahu apakah itu motor unipolar atau bipolar. Lihat Jones di Steppers untuk latar belakang yang lebih dalam, lalu di Situs Ian Harries untuk metode sederhana untuk mengetahui motor yang tidak dikenal. Baca sedikit, lalu bergabunglah dengan saya dalam penelusuran motor ini yang saya dapatkan dengan harga murah. (Mereka dijual seharga $0,99 sekarang. Mereka kecil, relatif ringan, tetapi tidak memiliki banyak torsi. Belum tahu apa yang akan baik untuk itu.)
Langkah 2: Temukan Kesamaan
Jadi Anda punya lima (atau empat, atau enam) kabel. Motor Anda akan memiliki dua bagian, dan Anda mungkin bahkan dapat mengetahuinya hanya dengan melihat sisi mana dari setiap kabel.
Jika Anda hanya melihat empat kabel, Anda beruntung -- ini adalah motor bipolar. Yang harus Anda lakukan adalah mencari tahu dua pasang kabel mana yang cocok. Jika Anda memiliki motor unipolar, atau lebih dari 4 kabel, Anda harus melepaskan ohmeter Anda. Apa yang Anda cari adalah kabel umum (tanah) untuk setiap setengahnya. Anda dapat mengetahui mana yang di-ground pada motor bipolar karena ia memiliki setengah hambatan pada salah satu kutub daripada kutub-kutub itu sendiri. Digambarkan adalah catatan saya dari menghubungkan kabel ke kabel dan mencatat resistansi (atau jika mereka terhubung sama sekali). Anda dapat melihat bahwa Putih adalah dasar untuk trio bawah b/c memiliki setengah perlawanan terhadap Merah atau Biru yang mereka miliki satu sama lain. (Motor ini aneh dan tidak memiliki center tap pada kumparan magnet atas. Ini seperti setengah bipolar, setengah unipolar. Mungkin Anda bisa menggunakan ini untuk merasakan rotasi pada kumparan Merah-Putih-Biru ketika Hitam-Kuning kumparan sedang didorong.)
Langkah 3: Cari Tahu Urutan Melangkah
Saya akan mengendarai motor ini sebagai motor bipolar, jadi saya mengabaikan kabel ground Putih. Saya hanya punya empat kabel yang perlu dikhawatirkan.
Anda mungkin ingin menjalankan motor unipolar Anda sebagai bipolar, karena ia menggunakan seluruh kumparan di kedua fase alih-alih bergantian antara dua bagian dari setiap kumparan. Lebih banyak koil = lebih banyak torsi. Jalankan arus melalui pasangan (perhatikan polaritas yang Anda pilih) dan kemudian jalankan arus melalui pasangan lain pada saat yang sama. Saat Anda memasang pasangan kedua, perhatikan ke arah mana motor berputar. Tuliskan ini. Sekarang balikkan polaritas pada pasangan pertama yang Anda pilih. Kemudian sambungkan pasangan kedua lagi dengan polaritasnya juga terbalik. Perhatikan arahnya. Dari sini Anda harus dapat mengetahui urutan untuk memutar motor di kedua arah. Dalam contoh saya, keduanya akhirnya berputar berlawanan arah jarum jam, jadi melangkah melalui urutan dengan cara yang sama yang saya pilih akan menginjak motor CCW.
Langkah 4: Mengambil Motor untuk Test Drive
Jika Anda belum siap untuk pemrograman mikroprosesor, Anda bisa melakukan yang lebih buruk daripada Kit Pengembangan Ghetto atau salah satu dari berbagai pemrogram PIC. Hubungkan kabel langsung ke microproc Anda dan bakar dengan kode berikut:
/* Bermain dengan menggerakkan motor stepper kecil. */
/* Sertakan fungsi penundaan */ #define F_CPU 1000000UL #include /* Pin defs untuk ATTiny2313 */ /* Urutan searah jarum jam */ #define BLUE _BV(PB0) #define BLACK _BV(PB1) #define RED _BV(PB2) #define KUNING _BV(PB3) #define DELAY 200 /* milidetik antar langkah */ int main(void){ DDRB = 0xff; /* Mengaktifkan output pada semua pin B */ PORTB = 0x00; /* Atur semuanya ke 0v */ while(1){ /* loop utama di sini */ PORTB = BLUE; _delay_ms(DELAY); PORTB = HITAM; _delay_ms(DELAY); PORTB = MERAH; _delay_ms(DELAY); PORTB = KUNING; _delay_ms(DELAY); } } Seberapa sederhana kode itu? Benar-benar sederhana. Yang dilakukannya hanyalah membuat beberapa definisi yang bagus sehingga saya bisa merujuk ke kabel berdasarkan warna daripada nama pinnya, dan kemudian mengaktifkannya secara berurutan dengan penundaan yang dapat disesuaikan di antaranya. Sebagai permulaan, saya memilih penundaan setengah detik di antara langkah-langkah. Lihat video singkat untuk hasilnya. Jika Anda benar-benar bermain, hitung jumlah langkah per siklus untuk mengetahui resolusi sudut langkah tunggal motor. (Oh ya. PS. Drive tanpa beban di 3.6v dengan mudah. Lihat baterai di video.)
Langkah 5: Ayunkan Bolak-Balik
Jadi Anda membuatnya berjalan searah jarum jam. Ada yang lebih menarik? Sedikit pembersihan kode, dan kita bisa menjalankannya bolak-balik. Saya menempatkan urutan searah jarum jam ke dalam array sehingga Anda dapat melangkah melalui fase dengan loop for sederhana. Sekarang Anda dapat menjalankan loop ke atas atau ke bawah untuk searah atau berlawanan arah jarum jam.
int main(void){ const uint8_t penundaan = 50; const uint8_t searah jarum jam = {BIRU, HITAM, MERAH, KUNING}; uint8_t saya; DDRB = 0xff; /* Mengaktifkan output pada semua pin B */ PORTB = 0x00; /* Atur semuanya ke 0v */ while(1){ /* loop utama di sini */ for (i=0; i<=3; i++){ /* langkah melalui warna searah jarum jam */ PORTB = searah jarum jam; _delay_ms(tunda); } for (i=3; i>=0; i--){ /* melangkah melalui warna ccw */ PORTB = searah jarum jam; _delay_ms(penundaan); } }} Lihat video bersemangat untuk bolak-balik.
Langkah 6: Saya Tidak Pernah Setengah Langkah, Karena Saya Bukan Setengah Langkah…
Di samping lirik pencarian, setengah melangkahkan motor Anda adalah tempatnya. Anda mendapatkan lebih banyak arus puncak, torsi lebih instan, dan resolusi sudut dua kali lipat. Singkatnya setengah langkah: Alih-alih Biru, Hitam, Merah, Kuning, Anda mengendarai motor dengan Warna Biru, Biru+Hitam, Hitam, Hitam+Merah, Merah, Merah+Kuning, Kuning, Kuning+Biru. Hasilnya adalah bahwa selama separuh waktu Anda menggunakan kedua magnet sekaligus. Dan selama kedua set diaktifkan, motor mengarah ke tengah di antara keduanya, mengecilkan sudut antara "langkah" dan membuat putaran motor lebih mulus. Bisakah Anda mengetahuinya dari video? Saya tidak yakin… Sekarang bagian dari kode yang melakukan setengah langkah terlihat seperti ini:
void halfStepping(penundaan uint16_t, arah uint8_t){ uint8_t i; for (i=0; i<=3; i++){ PORTB = arah; /* bagian kumparan tunggal */ _delay_ms(delay); PORTB |= arah[i+1]; /* tambahkan setengah langkah */ _delay_ms(delay); }} Perintah PORTB pertama menetapkan satu kutub ke positif dan sisanya menjadi negatif. Kemudian menunggu. Kemudian perintah PORTB kedua menetapkan kutub kedua (pada belitan lainnya) ke positif, mengikat kedua belitan untuk 1,4x torsi (dan 2x arus). Daftar program lengkap terlampir di bawah ini. Dua array sekarang didefinisikan (searah jarum jam, berlawanan arah jarum jam) dan keduanya memiliki 5 elemen masing-masing untuk memungkinkan entri i+1 dalam fungsi halfStepping.
Langkah 7: Tambahkan Driver Motor
Sejauh ini baik.
Satu-satunya masalah adalah bahwa motor tampaknya tidak memiliki torsi sebanyak itu, yang mungkin disebabkan oleh fakta bahwa mikroprosesor hanya akan mengeluarkan ~50mA per pin. Langkah selanjutnya yang jelas adalah menghubungkannya ke pengemudi motor untuk memasok lebih banyak jus. Tapi kemudian sedikit berpikir: Saya hanya mengendarainya dengan 5v, dan resistansi lilitan koil adalah ~ 125 ohm. Yang berarti bahwa motor hanya menarik 40mA per pin, dan itu harus digerakkan dengan baik oleh chip AVR (befy!). Jadi untuk mendapatkan tegangan lebih untuk menggerakkan motor, saya menghubungkannya ke chip SN754410 H-bridge. Sirkuitnya cukup sederhana. Setiap pin dari AVR menuju ke input, dan pin output yang sesuai menuju ke motor. Chip membutuhkan 5v untuk bagian logika, dan dapat mengambil lebih banyak tegangan di bagian motor. Menjalankannya pada 11.25v (tiga baterai 3.6v) sedikit membantu. Terasa lebih banyak torsi ke jari saya, tapi itu masih bukan pembangkit tenaga listrik. Tidak buruk untuk motor yang lebih kecil dari nikel. Dan sekarang sirkuit ini menjadi driver motor stepper bipolar untuk keperluan umum. Ditambahkan 29 Nov: Jalankan motor tadi malam di 12v untuk sementara waktu dan mulai panas. Saya tidak yakin apakah itu masalah frekuensi resonansi atau apakah itu terlalu banyak arus untuk belitan. Bagaimanapun, berhati-hatilah jika Anda mengendarai motor kecil ini dengan voltase yang lebih besar.
Langkah 8: Akhir
Jadi apa yang saya pelajari? Mengendarai motor stepper dengan AVR (dan chip H-bridge) cukup mudah, bahkan dalam mode setengah langkah "mewah".
Tidak yakin apa yang akan saya lakukan dengan motor stepper kecil dulu. Ada saran?
Direkomendasikan:
Stepper Motor Controlled Stepper Motor Tanpa Mikrokontroler(V2): 9 Langkah (dengan Gambar)
Motor Stepper Terkendali Motor Stepper Tanpa Mikrokontroler(V2): Dalam salah satu Instruksi saya sebelumnya, saya menunjukkan kepada Anda cara mengontrol motor stepper menggunakan motor stepper tanpa mikrokontroler. Itu adalah proyek yang cepat dan menyenangkan tetapi datang dengan dua masalah yang akan diselesaikan dalam Instructable ini. Jadi, akal
Lokomotif Model Terkendali Motor Stepper - Stepper Motor Sebagai Rotary Encoder: 11 Langkah (dengan Gambar)
Lokomotif Model Terkendali Motor Stepper | Motor Stepper Sebagai Rotary Encoder: Dalam salah satu Instruksi sebelumnya, kita telah mempelajari cara menggunakan motor stepper sebagai rotary encoder. Dalam proyek ini, kita sekarang akan menggunakan motor stepper yang memutar rotary encoder untuk mengontrol model lokomotif menggunakan mikrokontroler Arduino. Jadi, tanpa fu
Motor Stepper Terkendali Motor Stepper - Stepper Motor Sebagai Rotary Encoder: 11 Langkah (dengan Gambar)
Motor Stepper Terkendali Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Punya beberapa motor stepper tergeletak di sekitar dan ingin melakukan sesuatu? Dalam Instruksi ini, mari kita gunakan motor stepper sebagai rotary encoder untuk mengontrol posisi motor stepper lain menggunakan mikrokontroler Arduino. Jadi tanpa basa-basi lagi, mari kita
Mengendarai Motor Stepper Tanpa Mikrokontroler.: 7 Langkah
Mengemudi Motor Stepper Tanpa Mikrokontroler.: Dalam Instruksi ini, saya akan mengendarai motor langkah 28-BYJ-48, dengan papan array Darlington UNL2003, kadang-kadang bernama x113647, tanpa pengontrol mikro. Ini akan memiliki start/stop, forward/ mundur, dan kontrol kecepatan. Motor adalah motor langkah uni-polar dengan
Cara Mengisi Daya Perangkat USB Apa Pun dengan Mengendarai Sepeda Anda: 10 Langkah (dengan Gambar)
Cara Mengisi Daya Semua Perangkat USB dengan Mengendarai Sepeda Anda: Untuk memulai, proyek ini dimulai ketika kami menerima hibah dari Program Lemelson-MIT. (Josh, jika Anda membaca ini, kami mencintaimu.) Sebuah tim yang terdiri dari 6 siswa dan satu guru menyusun proyek ini, dan kami telah memutuskan untuk meletakkannya di Instruct