Bahay / Balita / Balita sa Industriya / BLDC Motor na may Arduino: Wiring, Code at Control Guide
Balita sa Industriya
Ang aming footprint ay sumasaklaw sa mundo.
Nagbibigay kami ng mga de-kalidad na produkto at serbisyo sa mga customer mula sa buong mundo.

BLDC Motor na may Arduino: Wiring, Code at Control Guide

Paano Hinahayaan ng ESC ang Arduino na Kontrolin ang isang BLDC Motor

Ang Arduino ay hindi maaaring magmaneho nang direkta sa tatlong phase ng BLDC motor — wala itong kasalukuyang kapasidad o ang commutation logic na naka-built in. Ang trabahong iyon ay nahuhulog sa ESC (Electronic Speed Controller), na nasa pagitan ng Arduino at ng motor, na nagko-convert ng isang simpleng PWM signal sa naka-time na three-phase switching na aktwal na nagpapaikot sa rotor.

Mula sa pananaw ng Arduino, ang isang ESC ay mukhang eksaktong katulad ng isang karaniwang RC servo. Inaasahan nito ang isang pulso sa pagitan ng humigit-kumulang 1000 at 2000 microseconds, umuulit tuwing 20 milliseconds, kung saan ang lapad ng pulso ay nagmamapa sa throttle position. Kaya lang pareho Servo library na ginagamit para sa hobby servos ay gumagana para sa ESC control — ang Arduino ay hindi nakikipag-usap sa motor, ito ay nakikipag-usap sa onboard microcontroller ng ESC, na humahawak sa aktwal na commutation.

Pag-wire ng Arduino sa isang BLDC Motor sa pamamagitan ng ESC

Ang tatlong heavy-gauge na motor wire ay kumokonekta mula sa BLDC motor diretso sa tatlong phase na output ng ESC — ang pagkakasunud-sunod ng connector ay hindi mahalaga para sa direksyon sa yugtong ito, dahil ang pagpapalit ng anumang dalawang wire ay binabaligtad lamang ang pag-ikot. Ang lakas ng motor (karaniwang LiPo na baterya na tumutugma sa rating ng boltahe ng motor) ay kumokonekta sa mga input lead ng ESC, hindi sa Arduino.

Ang bahagi ng signal ay mas simple: isang solong PWM wire mula sa isang Arduino digital pin hanggang sa input ng signal ng ESC, kasama ang isang shared ground sa pagitan ng Arduino at ESC. Karamihan sa mga ESC ay may kasamang BEC (Battery Eliminator Circuit) sa signal connector na iyon, na nagbibigay ng regulated 5V pabalik sa Arduino — ibig sabihin, ang isang hiwalay na power supply para sa board ay karaniwang hindi kailangan hangga't ang BEC output ng ESC ay na-rate para sa kasalukuyang draw ng Arduino.

Arduino Code para sa Basic Speed Control

Sa mga kable sa lugar, ang code mismo ay maikli. Itinuturing ng Servo library ang ESC na parang servo motor, at ang bilis ng mga mapa sa parehong 0-180 range na ginagamit ng library para sa anggulo:

  • Ikabit ang ESC signal pin gamit ang ESC.attach(9, 1000, 2000) , tahasang nagtatakda ng hanay ng pulse-width
  • Magbasa ng potentiometer sa isang analog pin para sa manu-manong kontrol sa bilis
  • Imapa ang 0-1023 analog reading pababa sa 0-180 range na inaasahan ng ESC
  • Isulat ang nakamapang halaga na iyon gamit ang ESC.write(speed) sa loob ng pangunahing loop

Gumagana ang pattern na ito dahil ang pinagbabatayan na format ng signal ay kapareho ng isang hobby servo's, gaya ng nakadokumento sa Sanggunian sa library ng Arduino Servo , na nagpapaliwanag sa timing ng pulso at mga paghihigpit sa pin na umaasa sa library.

Pag-aarmas at Pag-calibrate ng ESC

Karamihan sa mga ESC ay hindi paikutin ang motor kaagad pagkatapos ng power-up — inaasahan nila ang isang pagkakasunud-sunod ng pag-aarmas muna, kadalasang nati-trigger sa pamamagitan ng pagpindot sa throttle signal nang hindi bababa sa isa o dalawa pagkatapos ng startup. Ang paglaktaw sa hakbang na ito ay ang pinakakaraniwang dahilan kung bakit lumilitaw ang isang motor na magsisimula sandali sa power-up at pagkatapos ay huminto: ang ESC ay naghihintay ng wastong low-throttle signal bago ito tumanggap ng mga command.

Itinatakda ng pagkakalibrate ang pag-unawa ng ESC sa minimum at maximum na lapad ng pulso upang tumugma sa aktwal na ipinapadala ng Arduino. Palakasin ang ESC nang nasa maximum na ang signal ng throttle, hintayin ang mga beep ng kumpirmasyon, pagkatapos ay bumaba sa minimum at maghintay muli — itinuturo nito sa ESC ang eksaktong mga endpoint na ginagawa ng iyong code, sa halip na umasa sa mga default ng factory na maaaring hindi tumugma sa nakamapang hanay ng iyong potentiometer.

Sensored vs Sensorless BLDC: Bakit Nito Binabago ang Iyong Arduino Setup

Ipinapalagay ng lahat sa itaas ang isang sensorless na BLDC na motor na ipinares sa isang off-the-shelf na ESC — ang pinakakaraniwang setup ng hobbyist, at ang dahilan kung bakit nagde-default dito ang karamihan sa mga tutorial. Nakikita ng ESC ang posisyon ng rotor mula sa back-EMF na nabuo sa unpowered phase, na gumagana nang maayos kapag umiikot na ang motor ngunit nangangahulugan na ang motor ay nangangailangan ng maikling open-loop na startup ramp bago ma-lock ang ESC sa timing ng BEMF.

Ang isang sensored BLDC motor ay nagdaragdag ng tatlong Hall-effect sensor na direktang nag-uulat ng posisyon ng rotor, kahit na sa zero RPM. Inaalis nito ang startup ramp at nagbibigay ng mas malinaw na low-speed na kontrol, ngunit nangangahulugan din ito na ang ESC o controller ay dapat may mga Hall sensor input - ang isang plain sensorless ESC ay walang mga wiring para sa kanila. Kung ang isang proyekto ay nangangailangan ng tumpak na low-speed torque o madalas na pagsisimula at paghinto, ang pagkuha ng sensored motor at Hall-compatible na controller mula sa simula ay maiiwasan ang muling paggawa ng control setup sa ibang pagkakataon.

R5 Fast response Brushless DC Motor Controller

Mula sa Arduino Prototype hanggang Production-Grade Motor Control

Ang isang PWM-driven na ESC ay ang tamang tool para sa pagpapatunay ng isang konsepto — ito ay mura, mahusay na dokumentado, at hindi nangangailangan ng configuration software. Ngunit mayroon din itong mga tunay na limitasyon: walang kasalukuyang feedback sa Arduino, minimal na lohika ng proteksyon, at isang control resolution na nakatali sa isang 1000-2000 microsecond pulse window na hindi nasusukat nang maayos kapag ang torque control, closed-loop speed regulation, o fault reporting ay naging mga kinakailangan.

Kapag ang isang proyekto ay lumampas sa prototyping patungo sa isang naka-field na produkto, ang karaniwang susunod na hakbang ay isang controller na nakikipag-ugnayan sa isang digital bus sa halip na isang linya ng PWM. isang interface ng pag-debug ng UART-TTL na ginagamit upang i-configure ang mga controller ng motor ng produksyon gumaganap ng isang papel dito katulad ng Arduino serial monitor — hinahayaan ka nitong basahin ang mga parameter at direktang ibagay ang pag-uugali sa halip na hulaan mula sa lapad ng pulso lamang.

Para sa mga pangkat na lumalagong libangan na mga ESC, isang entry point sa CAN bus-programmable BLDC motor controllers ng APT nag-aalok ng uri ng na-configure na kasalukuyang paglilimita at mga diagnostic na hindi lang inilalantad ng isang pangunahing ESC. Ang mga application na nangangailangan ng mas mahigpit na pagtugon — mga robotics arm, actuated na mekanismo, anumang bagay na may mabilis na pagbabago ng pagkarga — ay mas mahusay na pinaglilingkuran ng isang mabilis na tugon na BLDC controller na binuo para sa mga real-time na closed-loop na application sa halip na isang open-loop na libangan na ESC.

Dahil ang mga spec ng controller at motor ay kailangang ihanay sa boltahe, kasalukuyang, at Hall sensor compatibility, sulit na suriin gabay sa pagpapares ng controller at motor para sa pagtutugma ng drive electronics sa mga spec ng motor bago mag-commit sa hardware para sa isang production run. Ito rin ay nagkakahalaga ng pag-unawa kung paano muling hinuhubog ng mga layer ng software ang modernong kontrol ng motor , dahil ang pag-tune sa antas ng firmware ay higit na naghihiwalay sa isang mahusay na controller ng produksyon mula sa isang sapat lamang.



Interesado sa pakikipagtulungan o may mga katanungan?