Pada masa kini, peminat sangat berminat untuk mengawal Brushless DC (BLDC)
Berbanding dengan motor DC tradisional, prestasi motor telah bertambah baik, kecekapan tenaga juga bertambah baik, tetapi ia lebih sukar untuk digunakan. Banyak produk luar
rak wujud untuk tujuan ini.
Sebagai contoh, terdapat banyak pengawal BLDC kecil yang berfungsi dengan baik untuk pesawat RC.
Bagi mereka yang ingin melihat kawalan BLDC dengan lebih mendalam, terdapat juga banyak pengawal mikro yang berbeza dan perkakasan elektronik lain untuk pengguna industri, yang biasanya mempunyai dokumentasi yang sangat baik.
Setakat ini saya tidak menemui sebarang penerangan komprehensif tentang cara menggunakan pengawal mikro Arduino untuk kawalan BLDC.
Selain itu, jika anda berminat untuk melakukan brek regeneratif, atau menggunakan BLDC untuk penjanaan kuasa, saya tidak menemui banyak produk yang sesuai untuk digunakan dengan motor kecil, dan saya juga tidak mengetahui tentang cara mengawal penjana 3-Fasa.
Struktur ini pada asalnya dalam cerita tentang
pengiraan Masa sebenar, saya terus melakukannya selepas kursus tamat.
Idea projek ini adalah untuk menunjukkan model berkadar kereta hibrid dengan simpanan tenaga roda tenaga dan brek regeneratif.
Motor yang digunakan dalam projek ini ialah BLDC kecil yang dibersihkan daripada cakera keras komputer yang rosak.
Manual ini menerangkan cara menggunakan pengawal mikro Arduino dan
penderia kedudukan Hall- Mempengaruhi dalam mod pemanduan dan brek regeneratif.
Sila ambil perhatian bahawa melawat oscillisoft sangat membantu, jika tidak penting, untuk menyelesaikan projek ini.
Jika anda tidak dapat mengakses skop, saya telah menambah beberapa cadangan tentang cara melakukannya tanpa skop (langkah 5).
Satu perkara yang projek ini tidak boleh dimasukkan dalam mana-mana pengawal motor sebenar ialah sebarang fungsi keselamatan seperti perlindungan lebihan semasa.
Malah, perkara yang paling teruk ialah anda membakar motor HD.
Walau bagaimanapun, melaksanakan perlindungan lebihan semasa dengan perkakasan semasa tidak sukar, dan mungkin saya akan melakukannya pada satu ketika.
Jika anda cuba mengawal motor yang lebih besar, sila tambahkan lebihan perlindungan semasa untuk melindungi motor anda dan keselamatan anda sendiri.
Saya ingin mencuba menggunakan pengawal ini dengan motor yang lebih besar yang boleh melakukan beberapa kerja \'sebenar\' tetapi saya belum mempunyai yang betul.
Saya perasan bahawa eBay menjual kereta 86 W dengan harga kira-kira $40.
Nampak macam calon yang bagus.
Terdapat juga tapak web RC yang dipanggil \'GoBrushless\' yang menjual kit yang memasang BLDC mereka sendiri.
Ini tidak terlalu mahal dan ia berbaloi dengan pengalaman untuk membinanya.
Sila ambil perhatian bahawa tiada penderia dewan untuk motor di laman web ini. wah!
Menulis struktur ini adalah kerja yang besar.
Saya harap anda dapati ia berguna, sila berikan komen dan cadangan anda.
Multimeter Digital (DMM)-
Jika DMM anda mempunyai osiloskop meter frekuensi (
Lebih baik mempunyai sekurang-kurangnya 2 saluran)
Pemacu T8 Torx (
Anda memerlukan salah satu daripadanya untuk membuka sebarang pemacu keras).
Terdapat kedai perkakasan yang bagus.
Bengkel Mesin dan prototaip pantas (
Ini sangat membantu tetapi saya fikir projek ini boleh dilakukan tanpa mereka).
Bahan cincin magnet motor bldc daripada cakera keras komputer (
Separuh daripada motor)
Dari pemacu keras lainBeberapa (3-6)
Terdapat motor kecil kedua dalam cakera perak pada cakera keras (DC berus OK)
Gelang getah atau (sebaik-baiknya)
Motor DC tanpa berus dengan pemegang dengan motor lain plat roti elektronik wayar pepejal bulan Arduino Duemilanove 120 k ohm linear0 perintang 120 k ohm0 berputar ohm1000 pusingan. litar mikro ohmST L6234 pemacu motor tiga fasa IC dua kapasitor 100 uF satu kapasitor 10 nF satu kapasitor 220 nF satu kapasitor 1 uF satu kapasitor 100 uF tiga diod penerima Satu 2.
Honeywell SS411A bipolar Hall-5 Amp holder Fius yang direka bentuk untuk produk Mike Fius Amp Hall-5
Nota: elektronik dan litar penderia Dewan yang saya tunjukkan dalam manual ini (
Ia dikawal menggunakan aruhan potensi belakang).
Spesifikasi dan maklumat perolehan boleh didapati dalam dua pautan ini: Jika anda akan melakukan projek ini, saya cadangkan anda meluangkan masa untuk memahami secara menyeluruh cara BLDC berfungsi dan mengawal.
Terdapat sejumlah besar rujukan dalam talian (
Lihat di bawah untuk beberapa cadangan).
Walau bagaimanapun, saya menyertakan beberapa carta dan jadual dalam projek saya yang sepatutnya membantu anda memahami.
Berikut ialah senarai konsep yang saya fikir paling penting untuk memahami projek ini: Transistor MOSFET 3-fasa separuh jambatan 6-
3-langkah pengurangan ayat
Lebar Denyutan Modulasi motor fasa (PWM)Dewan-
Microchip AVR443: penderia-rujukan am Motor DC Prinsip Asas untuk penderia kedudukan Digital
Kawalan motor DC tanpa fasa DC tanpa berus kawalan
motor DC BLDC tanpa berus. daripada sensor Flying Star Hall, video yang bagus untuk membersihkan motor cakera keras, tetapi penulis seolah-olah menjalankan motor sebagai motor loncatan dan sebagai motor loncatan. Halaman web rujukan yang lebih khusus untuk BLDC pada IC pemacu motor l6234, termasuk helaian data, nota aplikasi dan maklumat pembelian.
Sampel percuma untuk pemacu motor tanpa berus PM untuk aplikasi kenderaan elektrik hibrid.
Ini adalah satu-satunya kertas yang saya temui yang menerangkan susunan perubahan fasa brek regeneratif.
Makalah ini, brek regeneratif dalam kenderaan elektrik berguna, saya meminjam beberapa nombor daripadanya, tetapi saya fikir ia salah menerangkan cara penjanaan semula berfungsi.
Saya melakukan projek ini dengan motor pemacu cakera kitar semula kerana ia mudah dilalui dan saya suka menggunakan motor voltan rendah kecil untuk mempelajari kord yang dikawal oleh BLDC dan tidak menyebabkan sebarang masalah keselamatan.
Di samping itu, konfigurasi magnet penderia dewan menjadi sangat mudah dengan menggunakan gelang magnet (pemutar)
Dari kedua motor ini (Lihat Langkah 4).
Jika anda tidak mahu bersusah payah memasang dan menentukur penderia dewan (langkah 5-7)
saya tahu terdapat sekurang-kurangnya beberapa motor pemacu CD/DVD terbina dalam penderia Dewan.
Untuk memberikan sedikit inersia pusingan kepada motor dan memberinya sedikit beban, saya meletakkan 5 cakera keras pada motor, dilekatkan perlahan-lahan dengan gam kuat sedikit dan dilekatkan pada motor (
Ini menjadikan roda tenaga dalam projek asal saya).
Jika anda akan mengeluarkan motor dari cakera keras, anda memerlukan pemacu torx T8 untuk membuka skru Perumahan (
Biasanya terdapat dua skru tersembunyi di belakang kayu dalam label centeron)
Dan skru dalaman yang memegang motor di tempatnya.
Anda juga perlu mengeluarkan kepala Pembaca (
Eksekutif bulatan bunyi)
Dengan cara ini anda boleh mengeluarkan cakera memori untuk mencapai motor.
Di samping itu, anda memerlukan motor pemacu keras kedua yang sama untuk mengeluarkan pemutar dari motor itu (
Terdapat magnet di dalamnya).
Untuk mengasingkan motor, saya meraih rotor (atas)
Ragum motor dan mencungkilnya pada stator (bawah)
Kedua-dua pemutar skru adalah 180 darjah.
Bukan mudah untuk memegang motor pada pasangan yang cukup ketat tanpa ubah bentuk.
Anda mungkin ingin membina
Blok v kayu yang digunakan untuk tujuan ini.
Saya menggerudi lubang pada cincin magnet pada mesin pelarik supaya ia sesuai dengan selesa di bahagian atas motor.
Jika anda tidak dapat menggunakan pelarik, anda boleh membetulkan rotor terbalik pada motor dengan gam yang kuat.
Gambar 2 dan 3 di bawah menunjukkan bahagian dalam salah satu motor yang telah saya buka.
Pada separuh masa pertama terdapat (pemutar)ada 8 tiang (
Magnet dibalut plastik).
Pada separuh masa kedua (pemegun)
Terdapat 12 slot (belitan).
Setiap satu daripada tiga fasa motor mempunyai 4 slot secara bersiri.
Sesetengah motor HD mempunyai tiga kenalan di bahagian bawah, satu kenalan setiap fasa, dan satu lagi ialah ketuk tengah motor (
Di mana tiga peringkat bertemu).
Dalam projek ini, tiada paip tengah diperlukan, tetapi ia boleh berguna dalam kawalan bebas penderia (
Saya berharap untuk mengeluarkan nota tentang kawalan bebas Sensor suatu hari nanti).
Jika motor anda mempunyai empat sesentuh, anda boleh mengenal pasti fasa dengan ohmeter.
Rintangan antara pili tengah dan fasa adalah separuh daripada rintangan antara mana-mana dua fasa.
Kebanyakan kesusasteraan mengenai motor BLDC berkaitan dengan mereka yang mempunyai bentuk gelombang potensi belakang berbentuk tangga, tetapi motor pemacu keras nampaknya mempunyai potensi belakang yang kelihatan seperti sinus (Lihat di bawah).
Setahu saya, memandu motor gelombang sinus dengan PWM gelombang sinus berfungsi dengan baik, walaupun kecekapan mungkin menurun sedikit.
Seperti semua motor BLDC, motor ini terdiri daripada
Jambatan Transistor separuh fasa tiga (
Lihat gambar kedua di bawah).
Saya menggunakan IC yang dibuat oleh ST Micro (L6234)
Untuk jambatan, juga dikenali sebagai pemandu motor.
Sambungan elektrik L6234 ditunjukkan dalam langkah 8.
Foto ketiga di bawah menunjukkan gambarajah skematik pemandu motor dan tiga fasa motor.
Agar motor beroperasi mengikut arah jam, suis akan dibuat mengikut urutan berikut (
Huruf pertama ialah transistor atas dan huruf kedua ialah transistor bawah)
: Langkah 1 2 3 4 5 6 mengikut arah jam: CB, AB, AC, BC, BA, CA melawan arah jam: BC, BA, CA, CB, AB, AC ini 6-
Urutan langkah ,\' 6- 6- Urutan langkah 6' hanya darjah fizikal 90 untuk motor ini.
Oleh itu, kelajuan putaran setiap motor berlaku empat kali.
Kedua-dua jujukan itu nampaknya sama, tetapi ia tidak sama kerana untuk
jujukan 6- Langkah, untuk CW, arah semasa melalui fasa adalah satu arah, dan untuk CCW, arah semasa adalah bertentangan.
Anda boleh melihatnya sendiri dengan menggunakan voltan bateri atau bekalan kuasa pada sama ada fasa motor.
Jika anda menggunakan voltan, motor akan bergerak sedikit ke satu arah dan berhenti.
Jika anda boleh menukar voltan pada fasa dengan cepat dalam salah satu urutan di atas, anda boleh memutarkan motor secara manual.
Transistor dan mikropengawal melengkapkan semua suis ini dengan pantas, bertukar ratusan kali sesaat apabila motor berjalan pada kelajuan tinggi.
Juga, sila ambil perhatian bahawa jika voltan digunakan pada kedua-dua fasa, motor bergerak sedikit dan kemudian berhenti.
Ini kerana tork adalah sifar.
Anda boleh melihat ini dalam foto keempat di bawah, yang menunjukkan potensi belakang sepasang fasa motor.
Ini adalah gelombang sinus.
Apabila gelombang melalui x-
Shaft, tork yang disediakan oleh fasa ini ialah sifar. Dalam
urutan perubahan fasa BLDC enam Langkah yang tidak pernah berlaku.
Sebelum tork pada fasa tertentu menjadi rendah, kuasa ditukar kepada kombinasi fasa lain.
Motor BLDC yang lebih besar biasanya dihasilkan oleh penderia Hall di dalam motor.
Jika anda mempunyai motor sedemikian maka anda boleh melangkau langkah ini.
Selain itu, saya tahu terdapat sekurang-kurangnya beberapa motor pemacu CD/DVD terbina dalam penderia yang sudah-Hall.
Apabila motor berputar, tiga penderia dewan digunakan untuk pengesanan kedudukan, jadi perubahan fasa dilakukan pada masa yang tepat.
Motor HD saya berjalan sehingga 9000 RPM (150 Hz).
Oleh kerana terdapat 24 perubahan setiap roda, pada 9000 RPM, mesin ditukar setiap 280 mikrosaat.
Pengawal mikro Arduino berfungsi pada 16 MHz, jadi setiap kitaran jam ialah 0. 06 mikrosaat.
Saya tidak tahu berapa banyak kitaran jam yang diperlukan untuk melakukan pengurangan ayat, tetapi walaupun 100 kitaran jam diperlukan, iaitu, ia mengambil masa 5 mikrosaat untuk setiap pengurangan ayat.
Motor HD tidak mempunyai penderia Hall, jadi anda perlu memasangnya di bahagian luar motor.
Penderia perlu dibetulkan berkenaan dengan putaran motor dan terdedah kepada satu siri kutub yang konsisten dengan putaran motor.
Penyelesaian saya ialah mengeluarkan cincin magnet dari motor yang sama dan memasangnya terbalik pada motor untuk dikawal.
Saya kemudian memasang tiga penderia dewan di atas gelang magnet ini, 30 darjah antara satu sama lain pada aci motor (
putaran motor elektrik 120 darjah).
Pemegang penderia Dewan saya terdiri daripada pemegang ringkas yang terdiri daripada tiga bahagian aluminium yang diproses oleh saya dan tiga bahagian plastik yang dibuat pada prototaip pantas.
Jika anda tidak mempunyai alat ini, tidak sukar untuk mencari cara lain untuk menunjukkan kedudukan.
Membuat kurungan untuk penderia Hall akan menjadi lebih mencabar.
Ini adalah cara yang mungkin untuk berfungsi: 1.
Cari dulang plastik dengan saiz yang betul dan anda boleh mengepoksi penderia dewan dengan teliti. 2.
Satu templat dicetak pada kertas, yang mempunyai bulatan yang sama dengan jejari gelang magnet, dan ketiga-tiga tanda adalah 15 darjah 3 di antara satu sama lain.
Lekatkan templat pada cakera dan kemudian gunakan templat sebagai panduan untuk meletakkan epoksi penderia dewan dengan berhati-hati di tempatnya.
Sekarang setelah penderia Hall dipasang pada motor, sambungkannya ke litar yang ditunjukkan di bawah dan ujinya menggunakan DMM atau osiloskop untuk memastikan output semakin tinggi dan lebih rendah semasa motor berputar.
Saya menjalankan sensor ini di bawah 5 v menggunakan output 5 v Arduino.
Penderia Hall adalah tinggi atau rendah dalam output (1 atau 0)
Ia bergantung kepada sama ada mereka merasakan Antartika atau Artik.
Oleh kerana jaraknya 15 darjah, magnet berputar di bawahnya dan menukar kekutuban setiap 45 darjah, ketiga-tiga sensor ini tidak akan tinggi atau rendah pada masa yang sama.
Apabila motor berputar, output sensor ialah 6-
Corak langkah yang ditunjukkan dalam jadual berikut.
Penderia mesti diselaraskan dengan gerakan motor supaya salah satu daripada tiga penderia berubah dengan tepat pada kedudukan perubahan fasa motor.
Dalam kes ini, tepi meningkat bagi sensor dewan pertama (H1)
Harus konsisten dengan pembukaan gabungan C (tinggi) dan B (rendah).
Ini bersamaan dengan menghidupkan transistor 3 dan 5 dalam litar jambatan.
Saya menyelaraskan sensor dengan magnet dengan osiloskop.
Untuk melakukan ini, saya perlu menggunakan tiga saluran skop.
Saya memutarkan motor dengan menyambung ke tali pinggang motor kedua dan mengukur potensi belakang antara dua kombinasi fasa (
A dan B, A dan C)
Ini adalah dua sinus.
Seperti gelombang dalam gambar di bawah
Kemudian lihat isyarat sensor Hall 2 pada saluran 3 osiloskop.
Pemegang penderia Hall dipusingkan sehingga tepi meningkat penderia dewan diselaraskan sepenuhnya dengan titik di mana perubahan fasa harus dilakukan (Lihat di bawah).
Saya kini menyedari bahawa hanya terdapat dua saluran untuk melakukan penentukuran yang sama.
Jika BEMF gabungan fasa B-
Menggunakan C, tepi meningkat H2 akan dikaitkan dengan lengkung BC.
Sebab mengapa perubahan fasa perlu dilakukan di sini adalah untuk sentiasa memastikan tork motor setinggi mungkin.
Potensi belakang adalah berkadar dengan tork dan anda akan melihat bahawa setiap perubahan fasa berlaku apabila potensi belakang melepasi di bawah lengkung peringkat seterusnya.
Oleh itu, tork sebenar terdiri daripada bahagian tertinggi setiap kombinasi fasa.
Jika anda tidak dapat mengakses skop, inilah idea penjajaran saya.
Ini sebenarnya satu latihan yang menarik untuk sesiapa yang ingin tahu bagaimana BLDC Motor Berfungsi.
Jika motor Fasa A disambungkan (positif) dan B (negatif)
kepada bekalan kuasa dan menghidupkan bekalan kuasa, motor akan berputar sedikit dan berhenti.
Kemudian, jika petunjuk kuasa negatif dialihkan ke fasa C dan kuasa dihidupkan, motor akan berputar lebih jauh dan berhenti.
Bahagian seterusnya dalam urutan adalah untuk memindahkan petunjuk positif ke Fasa B, dsb.
Apabila anda melakukan ini, motor sentiasa berhenti di mana tork adalah sifar, yang sepadan dengan satu tempat di mana carta melalui paksi-x pada carta.
Ambil perhatian bahawa titik sifar gabungan fasa ketiga sepadan dengan kedudukan perubahan fasa dua kombinasi pertama.
Oleh itu, kedudukan tork sifar B-
Gabungan C ialah di mana anda ingin meletakkan tepi meningkat h2.
Tandai kedudukan ini dengan tanda halus atau bilah tajam, dan kemudian laraskan pemegang penderia dewan menggunakan DMM sehingga output H2 betul-betul lebih tinggi pada tanda ini.
Walaupun anda menyimpang sedikit dari jadual sekolah anda, motor harus berfungsi dengan baik.
Tiga fasa motor akan menerima kuasa daripada pemandu motor tiga fasa L6234.
Saya mendapati bahawa ini adalah produk yang baik yang boleh bertahan dalam ujian masa.
Terdapat banyak cara untuk menggoreng komponen anda secara tidak sengaja apabila menggunakan elektronik kuasa, saya bukan seorang jurutera elektrik dan saya tidak selalu tahu apa yang sedang berlaku. Dalam program sekolah saya, kami melakukan
3 Fasa kami sendiri bagi 6 transistor MOSFET dan 6 diod.
output separuh jambatan
Kami menggunakan ini pada HIP4086 pemandu Intersil yang lain, tetapi kami mempunyai banyak masalah dengan persediaan ini
Kami membakar sekumpulan transistor dan cip.
Saya menjalankan L6234 (
Jadi motor) pada 12V.
L6234 mempunyai set input yang luar biasa untuk mengawal separuh jambatan 6 transistor.
Bukan setiap transistor mempunyai input, tetapi
Input dayakan (EN) untuk setiap tiga peringkat, dan kemudian input lain (IN)
Pilih transistor mana dalam fasa terbuka (atas atau bawah).
Sebagai contoh, hidupkan transistor 1 (atas) dan 6 (bawah)
Kedua-dua EN1 dan EN3 adalah tinggi (
EN2 rendah untuk memastikan peringkat tertutup)
IN1 Tinggi, IN3 rendah.
Ini menjadikan gabungan fasa-C.
Walaupun nota aplikasi L6234 mencadangkan penggunaan PWM yang digunakan untuk mengawal kelajuan motor pada pin IN, saya memutuskan untuk melakukannya pada pin EN kerana, pada masa itu, saya fikir ia akan menjadi \'pelik\' untuk menghidupkan transistor atas dan bawah fasa secara bergilir-gilir \'.
Malah, nampaknya tidak salah untuk menghidupkan kedua-dua fasa yang rendah, jadi kedua-dua transistor mempunyai potensi yang sama pada masa yang sama. mereka melalui arus.
Dengan kaedah saya, fasa tinggi didayakan dan dilumpuhkan secara bergantian pada frekuensi PWM, manakala fasa rendah kekal semasa perubahan fasa keseluruhan
Di bawah adalah skema pemacu motor, saya telah menambah sambungan pin ke papan Arduino.
Arus regeneratif. Angka
agak kecil, jadi untuk versi yang lebih besar, sila rujuk dokumentasi untuk L6234
Nota: Mike Anton membuat PCB untuk L6234, yang akan (saya percaya)
Menggantikan trek ini dan menjimatkan tugas memasangnya Penjelasan.
ini
memaksimumkan
yang
Semasa memandu, sistem kawalan menghantar arus ke dalam tiga fasa motor dengan cara yang memaksimumkan tork Dalam brek regeneratif, sistem kawalan juga
tork, tetapi kali ini tork negatif yang menyebabkan motor menjadi perlahan semasa menghantar semula arus ke bateri Kaedah brek regeneratif
saya gunakan di makmal Amerika Syarikat Motor automotif.
transistor
Carta di bawah datang dari kertas lain yang membantu menggambarkan cara ia berfungsi (
Walau bagaimanapun, saya rasa penjelasan yang diberikan dalam kertas kedua ini adalah salah sebahagiannya.
Perlu diingat bahawa apabila motor berputar, voltan BEMF dalam fasa motor berubah-ubah ke atas dan ke bawah
Beribu-ribu suis PWM sesaat ).
menghalang arus daripada mengalir dari bateri ke motor Pada masa yang sama,
dihidupkan dan dimatikan dengan cepat (
arus ke arah ini ( Bertentangan dengan pemanduan)
Apabila suis transistor mewah dimatikan; dimatikan , tetapi pada voltan
yang lebih tinggi, arus mengalir dengan serta-merta melalui diod \'anti-pengujaan\' di sebelah setiap transistor dan kemudian kembali ke bateri Diod
Berinteraksi dengan gelang
Pertukaran
magnet untuk menghasilkan daya kilas ke bawah yang rendah PWM mengawal jumlah brek semasa memandu, pertukaran motor beralih dari satu kombinasi ke kombinasi seterusnya untuk mengekalkan daya kilas setinggi mungkin.
regeneratif adalah sangat serupa kerana beberapa
brek
12 V)
mod pensuisan menyebabkan motor menghasilkan tork negatif sebanyak mungkin
Saya gunakan adalah motor tork yang sangat rendah, jadi ia tidak menghasilkan banyak BEMF kecuali pada kelajuan yang lebih rendah, terdapat sedikit brek regeneratif (jika ada , sistem saya juga berjalan pada voltan yang agak rendah (
Selain itu,
kerana setiap laluan melalui diod anti-pengujaan mengurangkan voltan sebanyak beberapa volt,
ini juga boleh mengurangkan kecekapan yang lebih baik jika saya menggunakan yang lebih baik diod dengan penurunan
voltan yang lebih rendah Di bawah adalah senarai input dan output pada arduino Sertakan
rintangan masukan
juga carta dan foto papan saya 2- Dewan masuk digital 1 120 K rintangan Gnd 3 Dewan masuk digital 2 120 K
digital 120 K dengan siri 5 1 hm keluaran Digital. Perintang 400 ohm 7 3 Output digital dalam siri dengan perintang 400 ohm 9-
dengan perintang 400 ohm 10-
dalam siri
dan pin
Output Digital EN 1
Output Digital EN 2 secara bersiri dengan perintang 400 ohm 11-
Output digital
EN 3
analog 0 disambungkan di tengah.
at 5, Ohm potent k, 400 ohm dan hujung
adalah dalam siri dengan perintang 400 ohm
Potentiometer ini digunakan
untuk mengawal kelajuan motor dan bekalan kuasa 5 V juga digunakan untuk menjalankan
penderia Hall (lihat langkah 5. Berikut
ialah keseluruhan program yang saya tulis untuk Ardjuino, yang merangkumi ulasan:/* bldc_congroller 3. 1.
1*3 oleh Pemacu motor X3 * IC 3. brek regeneratif *
kelajuan motor dan brek dikawal oleh potensiometer
menerima output daripada 3 sensor dewan (pin 2,3,4) * Dan tukar gabungannya kepada 6 langkah perubahan fasa yang berbeza pada pin 9, 10,
Arduino
11
tunggal * kedudukan motor oleh tiga Hall- Effect Sensor *
32 kHz * PWM output ( Sepadan
(DALAM 1,2,3)
pada
dengan 1,2, EN 3, EN 3) masing-masing
* Sambungkan simulasi dalam 0 kepada potensiometer untuk menukar kitaran tugas PWM dan Tukar * antara pemanduan dan brek regeneratif * * 0-
499: brek * 500-
523: Teksi * 524-
1023: permotoran * mengulas banyak barisan untuk penyahpepijatan sensor (3,2,1)int HallState2; int HallState3
; () {pinMode(2,INPUT); /
Dewan 1 pinMode (3,INPUT); (
10,OUTPUT);
/EN 2 pinMode (11,OUTPUT);
/EN 3/siri mula (9600);
int prescalerVal = 0x07;
/Buat pembolehubah yang dipanggil prescalerVal dan tetapkannya bersamaan dengan nombor perduaan \'00000111\'
Prescaler /Dan nilai
TCCR1B & = ~
11111000\'/now set the: pre-coding:
dalam TCCR0B dengan nombor binari \'
nombor perduaan \'00000001\' TCCR1B | =
/Tetapkan prescalerVal kepada sama dengan
prescalerVal2
/ Atau
nilai dalam TCCR0B dengan nombor perduaan \'00000001\' /set PWM kepada 32 kHz untuk pin 3,11 (
\
tiga program pertama)
Pin 3,11 ini sahaja TCCR2B & = ~ Pra-pengekodan; /Dan nilai dalam TCCR0B dengan nombor perduaan
'11111000\'
/kini tetapkan bit pra-pengekodan yang sesuai: TCCR2B | = Pra-pengekodan bit 2 /Atau nilai dalam TCCR0B dengan nombor perduaan 0/01000 yang jelas; gelung utama
/PRGROM void (){ /Masa = millis (); Masa
; Pendikit, 0,511,255, 0); /Bahagian
selepas program cetakan dimulakan(masa)
regeneratif brek di bahagian bawah periuk/MSPs ed = 100
/Untuk penyahpepijatan HallState1 = digitalRead (2) /Baca nilai input dari Dewan 1 2 = Digital Read (3 /Read input Hall 2 3 = Nilai masukan
yang sepadan berada dalam kuasa tinggi,
dari Dewan 2 3); penderia
led akan dihidupkan Asalnya digunakan untuk menyahpepijat digitalWrite (9, HallState2); //digitalWrite(10, HallState3 = (HallState1)+ (2*HallState2)+ (4
println(HallState1 );
perduaan bagi 3 siri ')
nilai
;
*HallState3 / Hitung
\'H 2: \')
Serial. print (
; Serial
. println(HallState2); Serial. print(\'H
3: \'); Serial. println(HallState3); Serial. println
(\' \');
*/ //Serial. println(mSpeed )
;
//Serial. println(HallVal); //Serial. print(\'\');
/Monitor transistor output/delay (1000); /* T1 =
digitalRead (2); //T1 = ~T1; T2 = digitalRead (4); //T2 = ~T2; T3 = digitalRead (5); //T3 = ~T3; Serial. print(T1); Serial. print(
\'\t\'); Serial. print(T2); Serial. print(\'\t\')
(
; Serial. print
T3);
Serial. print(\'\'); Serial. print(\'\'); Serial. print(digitalRead(3)); Serial. print(\'\t\'); Serial. print(digitalRead(9)); Serial. print(\'\t\'); Serial. println(digitalRead(10)); Serial. print(\'\'); Serial. print(\'\'); //delay(500);
*/Perubahan fasa pemacu/setiap nombor perduaan mempunyai kes yang sepadan dengan transistor berbeza yang dihidupkan/bit matematik yang digunakan untuk menukar nilai arduino keluaran: /PORTD mengandungi output pin IN pada pemacu L6234/output yang digunakan untuk menentukan sama ada transistor atas atau EN
. kitaran tugas PWM ( 0 = OFF, 255 = ON atau nilai pendikit dikawal oleh potensiometer jika (pendikit > 511){suis (HallVal){
Kes 3:/PORTD = 1111xxx00;
/Dijangka keluaran pin 0-
7 xxx0D tidak boleh ditukar kepada input dan xxx0D
;
/Analowrite (9,mSpeed);
B01100000
0- 7 PORTD & =
B00011111;. /
PORTD |
. = B00100000; 5:/PORTD = B101xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
/PORTD | = B10100000; analogWrite(
9,0
(
); analogWrite(10,255); analogWrite
11,mSpeed); break;
Case 4:/PORTD = B100xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD | = bym000; /Analowrite (9,255); analogWrite(10,0); analogWrite(11,mSpeed); break;
Case 6:/PORTD = B110xxx00;
/Expected output of pin 0-
7
PORTD & = B00011111
PORTD b11.
;
7
;
000 =; /Analowrite (9,255); analogWrite(10,mSpeed)
analogWrite(11,0); break;
Case 2:/PORTD = B010xxx00;
/Expected output of pin 0-
PORTD & = B00011111;
B0201700 PORTD | =;
/Analowrite (9,0); analogWrite(10,mSpeed); analogWrite(11,255); bym0000; // switch (HallVal){ Case 3: analogy writing (9,bSpeed);
;
//
analogWrite(9,0)
(
analogWrite
10,0);
analogWrite(11,0); break;
Case 1: analogy writing (9,bSpeed); analogWrite(10,0); analogWrite(11,0); break;
Case 5: analogy writing (9,0); analogWrite(10,0
); analogWrite(11,bSpeed); break;
Case 4: analogy writing (9,0); analogWrite(10,0); analogWrite(11,
bSpeed); break;
Case 6: analogy writing (9,0); analogWrite(10,bSpeed); analogWrite(11,0); break; Case 2: analogy writing (9,0); analogWrite(
= millis (); Time after the printing program starts
); analogWrite(11,0); break; }} /
Time
10,bSpeed
. println(time); //Serial. print(\'\') ; //Serial
L6234
. flush(); /If you want to debug using a serial port, please uncomment} I think the operation that Arduino does in this project is so simple that it seems like a waste to do this task with a microprocessor. In fact,
's application notes recommend
programmable gate array ( GAL16V8 diperbuat daripada Lattice Semiconductor) untuk melakukan kerja ini saya tidak biasa dengan pengaturcaraan
a simple
peranti ini, tetapi kos
IC hanya $2 39 pada litar bersepadu lain yang serupa juga adalah sangat murah di bawah, dan jadual kebenaran untuk ketiga-tiga peringkat ( Untuk litar logik fasa B dan C, pintu \'bukan\' mesti dialihkan ke sisi lain \' atau. Masalah dengan pendekatan ini ialah terdapat hampir 20 sambungan pada setiap peringkat, jadi ia memerlukan sedikit usaha untuk
meletakkannya bersama-sama.
Lebih baik memprogramkannya sebagai get logik boleh atur cara.