Bagaimana cara mengendarai motor tanpa sikat dengan Arduino?

28

Apakah mungkin mengendarai motor tanpa sikat langsung dengan Arduino? Atau haruskah saya kembali mengendalikan motor ESC brushless dengan pulsa PWM?

tuupola
sumber
1
Anda mungkin bisa mendapatkan chip driver dari pemutar dvd / cd-rom lama.
Lars

Jawaban:

10

Anda harus menggunakan ESC. Motor brushless bekerja paling baik ketika didorong dengan gelombang sinus (atau sedekat mungkin dengan gelombang sinus). Mereka juga membutuhkan serangkaian sinyal yang cukup akurat dan rumit. Menghasilkan bentuk gelombang yang tepat dan pengaturan waktu dari arduino akan sulit, dan kecuali Anda benar-benar membutuhkannya, mungkin tidak sepadan. Anda selalu dapat mengatur untuk mengendalikan ESC dari Arduino Anda, yang akan memberi Anda kontrol terprogram plus efisiensi dan kekuatan ESC.

Jkopel
sumber
nitpick: Menurut Wikipedia ( en.wikipedia.org/wiki/brushless_DC_electric_motor ), motor BLDC dioptimalkan untuk bekerja paling baik ketika didorong oleh DC yang diaktifkan: penuh positif, tidak berkurang, dan penuh negatif. Motor AC magnet permanen dioptimalkan untuk bekerja dengan baik ketika digerakkan oleh gelombang sinus; itulah satu-satunya perbedaan signifikan di antara mereka. Saya setuju dengan kesimpulan Anda: mungkin layak untuk menggunakan ESC off-the-shelf daripada mengembangkannya sendiri.
davidcary
4
Pengontrol pada BLCD bisa menggunakan atmega yang sama dengan arduino; jadi keuntungannya lebih banyak menyerahkan masalah detail kepada orang lain untuk dipecahkan; dan menyerahkan tugas pergantian tingkat rendah untuk membiarkan atmega arduino bebas untuk tugas tingkat yang lebih tinggi.
Chris Stratton
Motor BLDC pada dasarnya menggunakan penggerak gelombang persegi ke koil. Di sisi pengguna controller (ESC) mereka menggunakan umpan daya DC plus sinyal kontrol apa pun yang dibutuhkan ESC. Gelombang sinus tidak muncul.
Russell McMahon
13

Sebenarnya terkadang Anda HARUS membuat ESC sendiri. ESC yang dijual di maket adalah "komersial" dan memiliki kode kontrol sendiri untuk hal-hal RC seperti pesawat terbang, helis, mobil ...

Misalnya terkadang Anda perlu memiliki rem regeneratif sisi ganda. Dari belakang untuk berhenti dan dari depan ke berhenti. Tidak ada RC ESC yang memiliki fitur itu. Mereka hanya memiliki satu rem regeneratif dari depan untuk berhenti atau tidak ada. Atau Anda mungkin memerlukan sensor kontrol BLDC tetapi hanya ada beberapa ESC sensored di pasar, dan mereka hanya memiliki (sama untuk ESC sensorless umum) yang dibangun di fitur yang tidak Anda butuhkan dan tidak memiliki beberapa yang Anda benar-benar butuhkan !

Mendesain ESC Anda sendiri adalah pilihan yang sempurna dan jauh lebih murah bahkan daripada yang termurah $ 10 dengan kekuatan BESAR.

Memang benar bahwa kode kontrol dan perangkat keras dapat menjadi masalah, tetapi setelah beberapa membaca itu hanya mainan.

Ada tutorial yang bagus di sini tentang cara membuat kontroler BLDC dengan Arduino menggunakan 6 MOSFET dan beberapa hal lain yang dapat Anda temukan dengan mudah di situs Jameco (sangat bagus) Di sinilah saya membeli barang-barang saya dengan harga murah tetapi spurkfun bisa menjadi alternatif yang bagus jika Anda tidak menemukan beberapa sensor seperti gyro, dll.

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

sangat bagus dan mudah diikuti panduan. Anda dapat membuat daya APAPUN dari ESC rendah ke sangat tinggi menggunakan panduan ini dan hampir semua kombinasi rem regen, menggunakan resistansi, belitan motor atau pengisi baterai ...

Menggunakan MOSFET hanyalah mainan, Anda dapat melakukan hampir semua hal.

Masalahnya adalah bahwa Anda tidak dapat mengontrol MOSFET ini sangat efisien dengan MCU seperti papan Arduio yang output hanya 5V saya pikir dan tegangan gerbang MOSFET untuk tegangan menengah cukup jauh lebih tinggi dalam kisaran 16-30V dengan mudah. Jadi, Anda harus menggunakan beberapa tansisor lain untuk meningkatkan tegangan arduino.

Semoga berhasil.

stevenvh
sumber
6

Saya telah bolak-balik dalam hal ini selama 30 menit. Saya pikir Anda mungkin ingin menggunakan ESC kecuali Anda hanya melakukannya sebagai pengalaman belajar. Untuk mengendalikan motor dengan benar akan mengikat lebih banyak sumber daya dari Arduino Anda daripada yang saya bayangkan bisa dibenarkan. Ditambah lagi, Anda akan membatasi respons motor terhadap polling ADC. Saya tidak akan berpikir menggunakan ESC sebagai reverting, begitulah seharusnya dilakukan.

Scott Murphy
sumber
4

Karena tidak ada orang lain yang mengatakannya - Anda tidak akan bisa menggerakkan motor secara langsung dari Arduino hanya karena chip AVR tidak akan mengeluarkan cukup arus untuk memasok daya dalam jumlah yang berguna.

Jadi paling tidak, Anda akan melihat membuat pengaturan tiga-fase H-jembatan (baca: tiga 'setengah jembatan-H') untuk menggerakkan arus yang dibutuhkan, membutuhkan enam jalur digital hanya untuk mengoperasikan transistor penggerak.

Dengan asumsi Anda memiliki masalah kemampuan drive ini diselesaikan, dan itu tidak sepele, maka Anda harus masuk ke kode kontrol. Motor-motor ini memiliki rotor magnet permanen, jadi Anda tidak bisa begitu saja memutar medan stator dan mendapatkan torsi yang berguna. Anda harus mengetahui orientasi rotor untuk menjaga sudut fase listrik disesuaikan sehingga Anda mendapatkan torsi yang seragam.

Jadi seperti yang dikatakan orang lain, kecuali jika Anda menginginkan pengalaman belajar yang spesifik, tidak ada rasa tidak hormat hanya dengan membeli ESC.

JustJeff
sumber
3

Saya pikir ini akan menjadi latihan pembelajaran yang bagus, tetapi ESC menggunakan kembali EMF untuk mendeteksi rotasi, meskipun Anda dapat menggunakan sensor optik atau magnetik untuk ini. Pada dasarnya Anda harus membuat 3 fase AC dan mengaktifkan / menonaktifkannya di saat yang tepat.

Kecepatan rotasi medan magnet harus disesuaikan dengan motor, yaitu jika Anda ingin berakselerasi, medan harus berjalan sedikit lebih awal dan lebih cepat. Anda juga dapat istirahat, melakukan yang sebaliknya.

Untuk penjelasan menyeluruh: http://www.embedded.com/columns/technicalinsights/196701832?_requestid=137540

Untuk pekerjaan praktis, dapatkan ESC.

ppvi
sumber
Saya pertama kali berpikir bahwa akselerasi dan deselerasi dicapai seperti yang Anda gambarkan, dengan memimpin dan tertinggal di lapangan. tapi kemudian saya membaca bahwa akselerasi terutama ditentukan oleh tegangan (walaupun saya tidak bisa melihat bagaimana itu bisa melambat). Saya merasa sedikit bingung. apakah salah satu dari pendekatan itu bekerja untuk akselerasi? ada alasan untuk lebih suka satu atau yang lain, atau mencampurnya? Terima kasih!
ahli nujum
2

Anda dapat mengendarainya langsung dengan Arduino jika dengan mengendarai mobil Anda tidak bermaksud menyediakan arus untuk belitan - MCU mana pun akan terlalu lemah untuk itu. Selain itu, Arduino dapat tenggelam tetapi bukan sumber arus, namun Anda membutuhkan keduanya untuk motor tanpa sikat.

Namun, jika Anda menggunakan IC driver H-bridge yang sangat sederhana sebagai tambahan pada Arduino, Anda dapat mengimplementasikan hampir semua fungsi ESC. Bahkan, tergantung pada aplikasi Anda bahkan mungkin tidak memerlukan E * SC * yang berarti bahwa Anda mungkin tidak memerlukan kontrol kecepatan loop tertutup - jika bebannya tidak terlalu besar, Anda mungkin bisa pergi hanya dengan memercayai motor untuk merespons selaras dengan memberi energi pada belitan, dan laju perubahan arus belitan akan datang dari Arduino. Lihatlah skematik kontrol motor brushless (BLDC) yang sangat sederhana ini dan sketsa Arduino yang mungkin dapat Anda adaptasi untuk menggerakkan motor Anda. Yang satu itu didasarkan pada SN754410NE quad H-bridge IC yang dimaksimalkan pada 750mA jika memori berfungsi.

Kode ini tidak terlalu sepele dan menggunakan PWM untuk rotasi yang halus tetapi tidak terlalu sulit untuk mengurai baik untuk beradaptasi dengan aplikasi Anda. Sketsa Arduino yang sebenarnya untuk motor BLDC ada di sini .

ElectroNick
sumber