- Bahan yang Diperlukan
- Memahami BLDC Motors
- Mengapa Drone dan Multi-copter lain menggunakan BLDC Motors?
- Mengapa kita memerlukan ESC dan apa fungsinya?
- Beberapa istilah umum dengan BLDC dan ESC:
- Diagram Litar Kawalan Motor Arduino BLDC
- Program untuk BLDC Speed Control menggunakan Arduino
- Arduino BLDC Motor Control
Membangun barang dan membuatnya berfungsi, seperti yang kita mahukan, selalu menyeronokkan. Walaupun sudah dipersetujui, membina barang yang boleh terbang dengan pasti akan menimbulkan sedikit kegelisahan di kalangan penggemar hobi dan pengedar perkakasan. Ya! Saya bercakap mengenai Glider, Helikopter, Pesawat dan terutamanya multi-copter. Hari ini menjadi sangat mudah untuk membuatnya sendiri kerana sokongan komuniti yang tersedia dalam talian. Satu perkara biasa dengan semua perkara yang terbang ialah mereka menggunakan motor BLDC, jadi apakah motor BLDC ini? Mengapa kita memerlukannya untuk terbang? Apa yang istimewa daripadanya? Bagaimana untuk membeli motor yang betul dan menghubungkannya dengan alat kawalan anda? Apa itu ESC dan mengapa kita menggunakannya? Sekiranya anda mempunyai soalan seperti ini, maka tutorial ini adalah penyelesaian sehenti anda.
Oleh itu, pada asasnya dalam tutorial ini kita akan mengendalikan Motor Brushless dengan Arduino. Di sini A2212 / 13T Sensorless BLDC outrunner motor digunakan dengan 20A Electronic Speed Controller (ESC). Motor ini biasa digunakan untuk membina drone.
Bahan yang Diperlukan
- Motor A2212 / 13T BLDC
- ESC (20A)
- Sumber Kuasa (12V 20A)
- Arduino
- Potensiometer
Memahami BLDC Motors
BLDC Motor bermaksud motor Brush Less DC, biasanya digunakan pada kipas siling dan kenderaan elektrik kerana pengoperasiannya yang lancar. Penggunaan motor BLDC dalam kenderaan elektrik sebelum ini dijelaskan secara terperinci. Tidak seperti motor lain, motor BLDC mempunyai tiga wayar yang keluar daripadanya dan setiap wayar membentuk fasa sendiri sehingga memberi kita Motor tiga fasa. Tunggu apa!!??
Ya, walaupun motor BLDC dianggap sebagai motor DC, mereka berfungsi dengan bantuan gelombang Pulsed. The pengawal kelajuan elektronik (ESC) menukarkan voltan DC dari bateri masuk ke denyutan dan memberikan kepada 3 wayar Motor. Pada masa tertentu hanya dua Fasa motor akan dihidupkan, sehingga arus masuk melalui satu fasa dan pergi melalui yang lain. Semasa proses ini, gegelung di dalam motor dihidupkan dan oleh itu magnet pada rotor sejajar dengan gegelung yang diaktifkan. Kemudian dua wayar seterusnya diberi tenaga oleh ESC, proses ini diteruskan untuk membuat motor berpusing. Kelajuan motor bergantung pada seberapa cepat gegelung diaktifkan dan arah motor bergantung pada urutan gegelung diaktifkan. Kami akan mengetahui lebih lanjut mengenai ESC kemudian dalam artikel ini.
Terdapat banyak jenis motor BLDC yang ada, mari kita lihat klasifikasi yang paling biasa.
Motor BLDC In-runner dan Out-Runner: Motor BLDC runner berfungsi seperti motor lain. Itulah poros di dalam motor berputar sementara selongsong tetap terpaku. Walaupun motor BLDC pelari berada di seberang, selongsong luar motor berputar bersama dengan poros sementara gegelung di dalamnya tetap tetap. Motor pelari keluar adalah kelebihan dalam basikal elektrik kerana selongsong luar (yang berputar) sendiri dijadikan Rim untuk tayar dan oleh itu mekanisme gandingan dielakkan. Motor runner juga cenderung memberikan tork lebih banyak daripada pada jenis runner, oleh itu ia menjadi pilihan ideal dalam EV dan Drones. Yang kami gunakan di sini juga adalah jenis pelari.
Catatan: Terdapat jenis motor lain yang disebut motor BLDC tanpa karat yang juga digunakan untuk Drone saku, mereka mempunyai prinsip kerja yang berbeza tetapi buat masa ini mari kita lewatkan untuk tutorial ini.
Sensor dan Sensorless Motor BLDC: Untuk motor BLDC berputar tanpa tersentak diperlukan maklum balas. Iaitu ESC harus mengetahui kedudukan dan tiang magnet di rotor sehingga dapat memberi tenaga kepada stator. Maklumat ini dapat diperoleh dengan dua cara; satu adalah dengan meletakkan sensor dewan di dalam motor. Sensor dewan akan mengesan magnet dan menghantar maklumat ke ESC motor jenis ini disebut motor Sensord BLDC dan digunakan dalam kenderaan elektrik. Kaedah kedua adalah dengan menggunakan EMF belakang yang dihasilkan oleh gegelung ketika magnet melintasi mereka, ini tidak memerlukan perkakasan tambahan atau kabel wayar fasa itu sendiri digunakan sebagai maklum balas untuk memeriksa EMF belakang. Kaedah ini digunakan di motor kita dan biasa untuk drone dan projek terbang lain.
Mengapa Drone dan Multi-copter lain menggunakan BLDC Motors?
Terdapat banyak jenis drone sejuk di luar sana, dari Quad copter hingga helikopter dan glider, semuanya mempunyai satu persamaan perkakasan. Itulah motor BLDC, tetapi mengapa? Mengapa mereka menggunakan motor BLDC yang agak mahal berbanding DC Motors?
Terdapat beberapa alasan yang betul untuk ini, satu sebab utama adalah tork yang disediakan oleh motor ini sangat tinggi yang sangat penting untuk mendapatkan / melepaskan daya tarikan dengan cepat untuk melepaskan atau mendarat drone. Motor ini juga boleh didapati sebagai pelari keluar yang sekali lagi meningkatkan daya tarikan motor. Sebab lain untuk motor BLDC terpilih adalah getaran halus yang kurang beroperasi, ini sangat sesuai untuk stabil drone kita di udara.
Nisbah kuasa ke berat motor BLDC sangat tinggi. Ini sangat penting kerana motor yang digunakan pada drone mestilah berkekuatan tinggi (berkelajuan tinggi dan tork tinggi) tetapi juga harus kurang berat. Motor DC yang dapat memberikan tork dan kelajuan yang sama dengan motor BLDC akan dua kali lebih berat daripada motor BLDC.
Mengapa kita memerlukan ESC dan apa fungsinya?
Seperti yang kita ketahui setiap motor BLDC memerlukan semacam pengawal untuk menukar voltan DC dari bateri menjadi denyut untuk menghidupkan wayar fasa motor. Pengawal ini dipanggil ESC yang bermaksud singkatan dari Electronic Speed Controller. Tanggungjawab utama pengawal adalah untuk menghidupkan wayar Fasa motor BLDC mengikut urutan supaya motor berputar. Ini dilakukan dengan merasakan EMF belakang dari setiap wayar dan memberi tenaga pada gegelung tepat ketika magnet melintasi gegelung. Jadi terdapat banyak kecemerlangan perkakasan di dalam ESC yang berada di luar ruang lingkup tutorial ini. Tetapi untuk sebilangannya ia mempunyai pengawal kelajuan dan litar penghapusan bateri.
Kawalan kelajuan berdasarkan PWM: ESC dapat mengawal kelajuan motor BLDC dengan membaca isyarat PWM yang disediakan pada wayar Orange. Ia berfungsi sangat mirip dengan motor servo, isyarat PWM yang disediakan harus mempunyai jangka masa 20ms dan kitaran tugas dapat dipvariasikan untuk mengubah kelajuan motor BLDC. Oleh kerana logik yang sama juga berlaku untuk motor servo untuk mengawal kedudukan, kita dapat menggunakan perpustakaan servo yang sama dalam program Arduino kami. Belajar menggunakan Servo dengan Arduino di sini.
Litar Eliminator Bateri (BEC): Hampir semua ESC dilengkapi dengan litar penghapusan Bateri. Seperti namanya litar ini menghilangkan keperluan bateri berasingan untuk mikrokontroler, dalam hal ini kita tidak memerlukan bekalan kuasa yang berasingan untuk menghidupkan Arduino kita; ESC itu sendiri akan menyediakan + 5V yang dapat dikawal yang dapat digunakan untuk memberi kekuatan kepada Arduino kami. Terdapat banyak jenis litar yang mengatur voltan ini biasanya ia adalah peraturan linier pada ESC yang murah, tetapi anda juga dapat menjumpainya dengan litar beralih.
Firmware: Setiap ESC mempunyai program firmware yang ditulis di dalamnya oleh pengilang. Firmware ini sangat menentukan bagaimana ESC anda bertindak balas; beberapa firmware yang popular adalah Tradisional, Simon-K dan BL-Heli. Firmware ini juga dapat diprogram oleh pengguna tetapi kita tidak akan membahasnya dalam tutorial ini.
Beberapa istilah umum dengan BLDC dan ESC:
Sekiranya anda baru mula bekerja dengan motor BLDC maka anda mungkin telah menjumpai istilah seperti Brek, Permulaan lembut, Arah Motor, Voltan Rendah, masa Respons dan Maju. Mari kita lihat apa maksud istilah ini.
Pengereman: Pengereman adalah kemampuan motor BLDC anda untuk berhenti berputar sebaik sahaja pendikit dikeluarkan. Keupayaan ini sangat penting bagi multi-copter kerana mereka harus menukar RPM mereka lebih kerap untuk melakukan manuver di udara.
Permulaan Lembut: Permulaan lembut adalah ciri penting untuk dipertimbangkan ketika motor BLDC anda dikaitkan dengan gear. Apabila motor dihidupkan dengan lembut, ia tidak akan mula berputar dengan sangat cepat secara tiba-tiba, ia akan terus meningkatkan kelajuan secara beransur-ansur tidak kira seberapa cepat pendikit diberikan. Ini akan membantu kita dalam mengurangkan keausan gear yang dipasang pada motor (jika ada).
Arah Motor: Arah motor pada motor BLDC biasanya tidak berubah semasa operasi. Tetapi semasa memasang, pengguna mungkin perlu mengubah arah di mana motor berputar. Cara termudah untuk menukar arah motor adalah dengan menukar antara dua wayar motor.
Hentian Voltan Rendah: Setelah dikalibrasi, kami memerlukan motor BLDC kami dengan kelajuan tertentu yang sama untuk nilai pendikit. Tetapi ini sukar dicapai kerana motor cenderung mengurangkan kelajuannya untuk nilai pendikit yang sama dengan voltan bateri yang menurun. Untuk mengelakkan ini, kita biasanya memprogram ESC untuk berhenti berfungsi apabila voltan bateri telah mencapai di bawah nilai ambang fungsi ini disebut Stop Voltage Rendah dan berguna dalam drone.
Masa tindak balas: Keupayaan motor dengan cepat mengubah kelajuannya berdasarkan perubahan pendikit dipanggil masa tindak balas. Semakin sedikit masa tindak balas, semakin baik kawalannya.
Advance: Advance adalah masalah atau lebih seperti bug dengan motor BLDC. Semua motor BLDC mempunyai sedikit kemajuan di dalamnya. Itulah ketika gegelung stator diaktifkan, rotor tertarik ke arahnya kerana magnet kekal yang ada di atasnya. Setelah tertarik, rotor cenderung bergerak sedikit lebih maju ke arah yang sama sebelum gegelung dinyahaktifkan dan kemudian gegelung bertenaga seterusnya. Pergerakan ini disebut "Advance" dan akan menimbulkan masalah seperti kegelisahan, pemanasan, kebisingan dll. Jadi ini adalah sesuatu yang harus dihindari ESC dengan sendirinya.
Baiklah, cukup teori sekarang mari kita mulakan perkakasan dengan menghubungkan motor dengan Arduino.
Diagram Litar Kawalan Motor Arduino BLDC
Berikut adalah rajah litar untuk Mengendalikan Motor Tanpa Berus dengan Arduino:
Sambungan untuk menghubungkan motor BLDC dengan Arduino cukup lurus ke hadapan. ESC memerlukan sumber kuasa sekitar 12V dan minimum 5A. Dalam tutorial ini saya telah menggunakan RPS saya sebagai sumber kuasa tetapi anda juga boleh menggunakan bateri Li-Po untuk menghidupkan ESC. Kabel tiga fasa ESC harus disambungkan ke wayar tiga fasa motor, tidak ada perintah untuk menyambungkan wayar ini anda boleh menyambungkannya dalam urutan apa pun.
Amaran: Beberapa ESC tidak akan mempunyai penyambung padanya, dalam hal ini pastikan sambungan anda kukuh dan melindungi wayar yang terdedah menggunakan pita penebat. Oleh kerana arus yang tinggi melalui fasa, jangka pendek akan mengakibatkan kerosakan kekal ESC dan motor.
The BEC (Bateri Eliminator litar) dalam ESC sendiri akan mengawal selia + 5V yang boleh digunakan untuk kuasa sehingga Lembaga Arduino. Akhirnya untuk mengatur kelajuan motor BLDC kami juga menggunakan potensiometer yang disambungkan ke pin A0 dari Arduino
Program untuk BLDC Speed Control menggunakan Arduino
Kita harus membuat isyarat PWM dengan kitaran tugas yang berbeza-beza dari 0% hingga 100% dengan frekuensi 50Hz. Kitaran tugas harus dikendalikan dengan menggunakan potensiometer sehingga kita dapat mengawal kelajuan motor. Kod untuk melakukan ini serupa dengan mengawal motor servo kerana mereka juga memerlukan isyarat PWM dengan frekuensi 50Hz; oleh itu kami menggunakan perpustakaan servo yang sama dari Arduino. The kod lengkap boleh didapati di bahagian bawah halaman ini lebih lanjut di bawah saya menerangkan kod dalam coretan kecil. Dan jika anda baru menggunakan Arduino atau PWM, pertama-tama gunakan PWM dengan Arduino dan kendalikan servo menggunakan Arduino.
Isyarat PWM hanya dapat dihasilkan pada pin yang menyokong PWM oleh perkakasan, pin ini biasanya disebut dengan simbol ~. Pada Arduino UNO, pin 9 dapat menghasilkan isyarat PWM sehingga kami menyambungkan pin isyarat ESC (wayar oren) ke pin 9, kami juga menyebutkan kod penginapan yang sama dengan menggunakan baris berikut
Lampiran ESC. (9);
Kita mesti menghasilkan isyarat PWM dari kitaran tugas yang berbeza-beza dari 0% hingga 100%. Untuk kitaran tugas 0% POT akan mengeluarkan 0V (0) dan untuk kitaran tugas 100% POT akan mengeluarkan 5V (1023). Di sini periuk disambungkan ke pin A0, jadi kita harus membaca voltan analog dari POT dengan menggunakan fungsi membaca analog seperti yang ditunjukkan di bawah
int pendikit = analogRead (A0);
Kemudian kita harus menukar nilai dari 0 hingga 1023 hingga 0 hingga 180 kerana nilai 0 akan menghasilkan 0% PWM dan nilai 180 akan menghasilkan 100% kitar tugas. Sebarang nilai di atas 180 tidak akan masuk akal. Oleh itu, kami memetakan nilai ke 0-180 dengan menggunakan fungsi peta seperti gambar di bawah.
pendikit = peta (pendikit, 0, 1023, 0, 180);
Akhirnya, kita harus menghantar nilai ini ke fungsi servo sehingga dapat menghasilkan isyarat PWM pada pin itu. Oleh kerana kami telah menamakan objek servo sebagai ESC, kodnya akan kelihatan seperti ini di bawah, di mana pemboleh ubah pendikit mengandungi nilai dari 0-180 untuk mengawal kitaran tugas isyarat PWM
ESC.write (pendikit);
Arduino BLDC Motor Control
Buat sambungan mengikut gambarajah litar dan muat naik kod ke Arduino dan hidupkan ESC. Pastikan anda telah memasang motor BLDC ke sesuatu kerana motor akan melompat-lompat semasa berpusing. Setelah penyediaan dihidupkan, ESC anda akan membuat nada alu-aluan dan akan terus berbunyi sehingga isyarat pendikit berada dalam had ambang, dengan mudah tingkatkan POT dari 0V secara beransur-ansur dan nada bip akan berhenti, ini bermaksud bahawa kami sekarang menyediakan PWM memberi isyarat di atas nilai ambang yang lebih rendah dan apabila anda semakin meningkat motor anda akan mula berpusing perlahan. Semakin banyak voltan yang anda berikan, semakin banyak kelajuan motor akan naik, akhirnya apabila voltan mencapai melebihi had ambang atas motor akan berhenti. Anda kemudian boleh mengulangi prosesnya.
Kerja lengkap Pengawal BLDC Arduino ini juga boleh didapati di pautan video di bawah. Sekiranya anda menghadapi masalah untuk membuat ini berfungsi, sila gunakan bahagian komen atau gunakan forum untuk mendapatkan bantuan teknikal yang lebih banyak.