Isi kandungan:
- Langkah 1: Kenali Steppers
- Langkah 2: Cari Persamaan
- Langkah 3: Perhatikan Urutan Melangkah
- Langkah 4: Mengambil Motor untuk Memacu Uji
- Langkah 5: Ayunkannya ke Belakang dan Ke Depan
- Langkah 6: Saya Tidak Pernah Separuh Langkah, Kerana Saya Bukan Separuh Langkah …
- Langkah 7: Tambahkan Pemandu Motor
- Langkah 8: Akhir
Video: Pandu Motor Stepper Dengan Mikroprosesor AVR: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Ada beberapa motor stepper yang dicabut dari pencetak / pemacu cakera / dll yang tergeletak?
Ada yang mencuba dengan ohmeter, diikuti dengan beberapa kod pemacu mudah pada mikropemproses anda dan anda akan melangkah dengan gaya.
Langkah 1: Kenali Steppers
Pada dasarnya, anda perlu mengetahui ke mana semua wayar kecil pergi.
Langkah pertama adalah untuk mengetahui sama ada motor unipolar atau bipolar. Lihat Jones di Steppers untuk latar belakang yang lebih mendalam, kemudian di Laman Ian Harries untuk kaedah mudah untuk mengetahui motor yang tidak dikenali. Baca sedikit, kemudian sertai saya dalam panduan motor ini yang saya dapat dengan harga murah. (Mereka dijual dengan harga $ 0,99 sekarang. Mereka kecil, agak ringan, tetapi tidak mempunyai banyak tork. Belum tahu apa yang akan baik.)
Langkah 2: Cari Persamaan
Oleh itu, anda mempunyai lima (atau empat, atau enam) wayar. Motor anda akan mempunyai dua bahagian, dan anda mungkin dapat mengetahui hanya dengan melihat sisi mana setiap wayar berada.
Sekiranya anda hanya melihat empat wayar, anda bernasib baik - ini adalah motor bipolar. Yang mesti anda buat ialah mengetahui dua pasang wayar yang mana satu. Sekiranya anda mempunyai motor unipolar, atau lebih daripada 4 wayar, anda mesti mematahkan ohmeter anda. Apa yang anda cari adalah wayar biasa (tanah) untuk setiap separuh. Anda dapat mengetahui yang mana tanah di motor bipolar kerana mempunyai separuh daya tahan terhadap salah satu tiang daripada tiang yang melintang di atasnya. Gambar adalah nota saya dari menyambungkan kabel ke wayar dan mencatat rintangan (atau jika mereka dihubungkan sama sekali). Anda dapat melihat bahawa Putih adalah tanah untuk trio bawah b / c ia mempunyai separuh ketahanan terhadap Merah atau Biru yang mereka miliki antara satu sama lain. (Motor ini pelik dan tidak mempunyai ketukan tengah pada gegelung magnet atas. Rasanya seperti separuh bipolar, setengah unipolar. Mungkin anda boleh menggunakan ini untuk merasakan putaran pada gegelung Merah-Putih-Biru ketika Hitam-Kuning gegelung sedang dipacu.)
Langkah 3: Perhatikan Urutan Melangkah
Saya akan menggerakkan motor ini sebagai bipolar, jadi saya mengabaikan wayar tanah Putih. Saya hanya mempunyai empat wayar yang perlu dibimbangkan.
Anda mungkin ingin menjalankan motor unipolar anda sebagai bipolar pula, kerana ia menggunakan keseluruhan gegelung dalam kedua fasa dan bukannya bergantian antara dua bahagian setiap gegelung. Lebih banyak gegelung = lebih banyak daya kilas. Jalankan arus melalui pasangan (perhatikan kekutuban yang anda pilih) dan kemudian jalankan arus melalui pasangan lain pada masa yang sama. Semasa memasang pasangan kedua, perhatikan arah motor yang berpusing. Tuliskan ini. Sekarang balikkan kekutuban pada pasangan pertama yang anda pilih. Kemudian sambungkan pasangan kedua lagi dengan kekutuban mereka juga terbalik. Perhatikan arah. Dari sini, anda seharusnya dapat mengetahui urutan putaran motor ke kedua-dua arah. Dalam contoh saya, kedua-duanya akhirnya berpusing berlawanan arah jarum jam, jadi melalui urutan dengan cara yang sama saya memilih akan melangkah CCW motor.
Langkah 4: Mengambil Motor untuk Memacu Uji
Sekiranya anda belum diatur untuk pengaturcaraan mikropemproses, anda boleh melakukan lebih buruk daripada Ghetto Development Kit atau mana-mana daripada pelbagai programmer PIC. Sambungkan kabel terus ke mikroproses anda dan bakar dengan kod berikut:
/ * Bermain dengan menggerakkan motor stepper kecil. * /
/ * Sertakan fungsi delay * / #define F_CPU 1000000UL #include / * Pin defs for ATTiny2313 * / / * Clockwise order * / #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define KUNING _BV (PB3) #define DELAY 200 / * milisaat antara langkah * / int utama (tidak sah) {DDRB = 0xff; / * Aktifkan output pada semua pin B * / PORTB = 0x00; / * Tetapkan semuanya ke 0v * / sementara (1) {/ * gelung utama di sini * / PORTB = BLUE; _delay_ms (DELAY); PORTB = HITAM; _delay_ms (DELAY); PORTB = MERAH; _delay_ms (DELAY); PORTB = KUNING; _delay_ms (DELAY); }} Seberapa mudah kod itu? Sungguh sederhana. Yang dilakukannya hanyalah membuat beberapa definisi yang bagus sehingga saya dapat merujuk pada wayar dengan warna dan bukannya nama pin mereka, dan kemudian ia menukarnya secara berurutan dengan kelewatan yang dapat disesuaikan. Sebagai permulaan, saya memilih kelewatan setengah saat antara langkah. Lihat video pendek untuk hasilnya. Sekiranya anda benar-benar menyukai permainan anda, hitung jumlah langkah per kitaran untuk mengetahui resolusi sudut satu langkah motor. (Oh ya. PS. Memandu tanpa beban pada 3.6v dengan mudah. Lihat bateri dalam video.)
Langkah 5: Ayunkannya ke Belakang dan Ke Depan
Oleh itu, anda berjaya melakukannya mengikut arah jam. Ada yang lebih menarik? Sedikit pembersihan kod, dan kita boleh menjalankannya berulang-ulang. Saya memasukkan urutan mengikut arah jam ke dalam tatasusunan sehingga anda dapat melalui fasa-fasa dengan mudah untuk gelung. Sekarang anda boleh menjalankan gelung ke atas atau ke bawah untuk mengikut arah jam atau lawan jam.
int main (tidak sah) {const uint8_t delay = 50; const uint8_t mengikut arah jam = {BIRU, HITAM, MERAH, KUNING}; uint8_t i; DDRB = 0xff; / * Aktifkan output pada semua pin B * / PORTB = 0x00; / * Tetapkan semuanya ke 0v * / sementara (1) {/ * gelung utama di sini * / untuk (i = 0; i <= 3; i ++) {/ * melangkah warna mengikut arah jam * / PORTB = mengikut arah jam ; _delay_ms (kelewatan); } untuk (i = 3; i> = 0; i -) {/ * melangkah melalui warna ccw * / PORTB = mengikut arah jam ; _delay_ms (kelewatan); }}} Lihat video yang tidak senonoh untuk mendapatkan sokongan.
Langkah 6: Saya Tidak Pernah Separuh Langkah, Kerana Saya Bukan Separuh Langkah …
Cari lirik selain, separuh langkah motor anda adalah di mana ia berada. Anda mendapat arus puncak yang lebih tinggi, tork sekejap, dan resolusi sudut dua kali. Singkatnya: Daripada Biru, Hitam, Merah, Kuning, anda memandu motor dengan Biru, Biru + Hitam, Hitam, Hitam + Merah, Merah, Merah + Kuning, Kuning, Kuning + Biru. Hasilnya ialah untuk separuh masa anda melibatkan kedua magnet sekaligus. Dan semasa kedua-dua set terlibat, motor menunjuk separuh di antara keduanya, mengecilkan sudut antara "tangga" dan menjadikan motor berpusing lebih lancar. Bolehkah anda memberitahu dari video? Saya tidak pasti… Sekarang bahagian kod yang melangkah setengah kelihatan seperti ini:
batal separuhLangkah (kelewatan uint16_t, arah uint8_t ) {uint8_t i; untuk (i = 0; i <= 3; i ++) {PORTB = arah ; / * bahagian gegelung tunggal * / _delay_ms (kelewatan); PORTB | = arah [i + 1]; / * tambah separuh langkah * / _delay_ms (kelewatan); }} Perintah PORTB pertama menetapkan kutub tunggal menjadi positif dan selebihnya menjadi negatif. Kemudian ia menunggu. Kemudian perintah PORTB kedua menetapkan tiang kedua (pada belitan yang lain) menjadi positif, melibatkan kedua belitan untuk 1.4x tork (dan 2x arus). Senarai program lengkap dilampirkan di bawah. Dua tatasusunan sekarang didefinisikan (mengikut arah jam, berlawanan arah jam) dan kedua-duanya mempunyai 5 elemen masing-masing untuk membolehkan kemasukan i + 1 dalam fungsi halfStepping.
Langkah 7: Tambahkan Pemandu Motor
Setakat ini begitu baik.
Satu-satunya masalah ialah motor nampaknya tidak mempunyai tork sebanyak itu, yang mungkin disebabkan oleh kenyataan bahawa mikropemproses hanya akan mengeluarkan ~ 50mA per pin. Langkah seterusnya yang jelas adalah menghubungkannya dengan pemandu motor untuk membekalkan lebih banyak jus. Tetapi kemudian berfikir sedikit: Saya hanya memandu dengan jarak 5v, dan rintangan penggulungan gegelung adalah ~ 125 ohm. Yang bermaksud bahawa motor ini hanya menarik 40mA per pin, dan ia mesti dipacu dengan baik oleh cip AVR (beefy!). Oleh itu, untuk mendapatkan lebih banyak voltan yang menggerakkan motor, saya menyambungkannya ke cip H-Bridge SN754410. Litarnya cukup sederhana. Setiap pin dari AVR menuju ke input, dan pin output yang sesuai menuju ke motor. Cip memerlukan 5v untuk bahagian logik, dan boleh mengambil voltan lebih banyak di bahagian motor. Menjalankannya pada 11.25v (tiga bateri 3.6v) sedikit sebanyak membantu. Jelas lebih banyak daya kilas pada jari saya, tetapi ia masih bukan kuasa besar. Tidak buruk untuk motor yang lebih kecil daripada nikel. Dan kini litar ini menjadi pemacu motor stepper bipolar tujuan umum. Ditambah 29 Nov: Berlari motor malam tadi pada 12v untuk beberapa saat dan ia mulai panas. Saya tidak pasti sama ada masalah frekuensi resonan atau terlalu banyak arus untuk belitan. Walau apa pun, berhati-hatilah jika anda memandu motor kecil ini dengan voltan yang lebih besar.
Langkah 8: Akhir
Jadi apa yang saya pelajari? Memandu motor stepper dengan AVR (dan cip H-bridge) cukup mudah, walaupun dalam mod setengah melangkah "mewah".
Tidak pasti apa yang akan saya lakukan dengan motor stepper kecil. Ada apa-apa cadangan?
Disyorkan:
Stepper Motor terkawal Motor Stepper Tanpa Mikrokontroler (V2): 9 Langkah (dengan Gambar)
Stepper Motor terkawal Motor Stepper Tanpa Mikrokontroler (V2): Dalam salah satu Instructables saya sebelumnya, saya menunjukkan kepada anda cara mengawal motor stepper menggunakan motor stepper tanpa mikrokontroler. Ini adalah projek yang cepat dan menyeronokkan tetapi ia datang dengan dua masalah yang akan diselesaikan dalam Instructable ini. Jadi, dengan
Lokomotif Model Dikendalikan Motor Stepper - Motor Stepper Sebagai Pengekod Rotary: 11 Langkah (dengan Gambar)
Lokomotif Model Dikendalikan Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Dalam salah satu Instructables sebelumnya, kami belajar bagaimana menggunakan stepper motor sebagai rotary encoder. Dalam projek ini, kita sekarang akan menggunakan motor stepper yang dipusingkan rotary encoder untuk mengawal lokomotif model menggunakan mikrokontroler Arduino. Jadi, tanpa fu
Stepper Motor terkawal Motor Stepper - Motor Stepper Sebagai Pengekod Rotary: 11 Langkah (dengan Gambar)
Stepper Motor terkawal Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Adakah beberapa motor stepper berbaring dan mahu melakukan sesuatu? Dalam Instructable ini, mari gunakan motor stepper sebagai rotary encoder untuk mengawal kedudukan motor stepper lain menggunakan mikrokontroler Arduino. Jadi tanpa basa-basi lagi, mari kita
Pike - Pandu Lebih Selamat, Pandu Lebih Pintar, Pandu Pike !: 5 Langkah
Pike - Pandu Lebih Selamat, Pandu Lebih Pintar, Pandu Pike !: Selamat datang ke projek saya yang bernama Pike! Ini adalah projek sebagai sebahagian daripada pendidikan saya. Saya pelajar NMCT di Howest di Belgium. Tujuannya adalah untuk membuat sesuatu yang pintar dengan menggunakan Raspberry Pi. Kami mempunyai kebebasan sepenuhnya di mana kami ingin menjadikan pintar. Bagi saya ia
Pandu dengan Wire Go Kart: 5 Langkah
Drive by Wire Go Kart: Saya baru sahaja mendapat mesin go kart baru, saya bergerak dari 6hp hingga 10hp. Enjin kohler baru yang saya dapat ini saya rasa tidak dibina untuk menggunakan go kart, jadi saya menghadapi masalah mencari jalan untuk memasang kelopak gas. Setelah beberapa hari tidak mengetahui apa-apa