BLDC Motor Control kasama ang Arduino, Salvaged HD Motor, at Hall Sensor
Home » Blog » BLDC Motor Control kasama ang Arduino, Salvaged HD Motor, at Hall Sensor

BLDC Motor Control kasama ang Arduino, Salvaged HD Motor, at Hall Sensor

Mga Views: 0     May-akda: Site Editor I-publish ang Oras: 2020-09-02 Pinagmulan: Site

Magtanong

Button sa Pagbabahagi ng Facebook
Button sa Pagbabahagi ng Twitter
Button sa Pagbabahagi ng Linya
Button ng Pagbabahagi ng WeChat
Button sa Pagbabahagi ng LinkedIn
Button ng Pagbabahagi ng Pinterest
pindutan ng pagbabahagi ng whatsapp
pindutan ng pagbabahagi ng Kakao
Button ng Pagbabahagi ng Snapchat
Button ng Pagbabahagi ng Telegram
Button ng Pagbabahagi ng Sharethis

Sa ngayon, ang mga mahilig ay interesado sa pagkontrol sa walang brush DC (BLDC)
kumpara sa tradisyonal na DC motor, ang pagganap ng motor ay napabuti, ang kahusayan ng enerhiya ay napabuti din, ngunit mas mahirap gamitin. Maraming
mga produktong off-the-shelf ang umiiral para sa hangaring ito.
Halimbawa, maraming mga maliliit na controller ng BLDCS na mahusay na gumagana para sa sasakyang panghimpapawid ng RC.
Para sa mga nais tumingin sa kontrol ng BLDC nang mas malalim, mayroon ding maraming iba't ibang mga micro-controller at iba pang elektronikong hardware para sa mga pang-industriya na gumagamit, na karaniwang may napakahusay na dokumentasyon.
Sa ngayon hindi ko pa natagpuan ang anumang komprehensibong paglalarawan kung paano gamitin ang Arduino micro-controller para sa BLDC control.
Gayundin, kung interesado kang gumawa ng regenerative braking, o paggamit ng isang BLDC para sa henerasyon ng kuryente, hindi ko natagpuan ang maraming mga produkto na angkop para magamit sa mga maliliit na motor, at hindi ko nalaman ang tungkol sa kung paano makontrol ang 3-phase generator.
Ang istraktura na ito ay orihinal na nasa isang kwento tungkol sa
pagkalkula ng oras, patuloy kong ginagawa ito pagkatapos matapos ang kurso.
Ang ideya ng proyekto ay upang ipakita ang isang proporsyonal na modelo ng isang hybrid na kotse na may imbakan ng enerhiya ng flywheel at regenerative braking.
Ang motor na ginamit sa proyekto ay isang maliit na BLDC na nalinis mula sa nasira na hard drive ng computer.
Ang manu-manong ito ay naglalarawan kung paano gamitin ang Arduino micro-controller at Hall-
nakakaapekto sa mga sensor ng posisyon sa pagmamaneho at pagbabagong-buhay na mga mode ng pagpepreno.
Mangyaring tandaan na ang pagbisita sa Oscillisoft ay lubos na kapaki -pakinabang, kung hindi mahalaga, upang makumpleto ang proyektong ito.
Kung hindi mo mai -access ang saklaw, nagdagdag ako ng ilang mga mungkahi sa kung paano ito gagawin nang walang saklaw (Hakbang 5).
Ang isang bagay na hindi dapat isama ng proyektong ito sa anumang aktwal na controller ng motor ay ang anumang pag -andar ng kaligtasan tulad ng higit sa kasalukuyang proteksyon.
Sa katunayan, ang pinakamasama bagay ay ang pagsunog mo sa motor ng HD.
Gayunpaman, ang pagpapatupad ng over-kasalukuyang proteksyon na may kasalukuyang hardware ay hindi mahirap, at marahil ay gagawin ko iyon sa ilang mga punto.
Kung sinusubukan mong kontrolin ang isang mas malaking motor, mangyaring magdagdag ng higit sa kasalukuyang proteksyon upang maprotektahan ang iyong motor at ang iyong sariling kaligtasan.
Nais kong subukang gamitin ang magsusupil na ito na may isang mas malaking motor na maaaring gumawa ng ilang \ 'real \' na trabaho ngunit hindi ko pa tama ang isa.
Napansin ko na ang eBay ay nagbebenta ng isang 86 W na kotse sa halagang $ 40.
Mukhang isang mabuting kandidato.
Mayroon ding isang RC website na tinatawag na \ 'Goblushless \' na nagbebenta ng mga kit na nagtitipon ng kanilang sariling BLDC.
Ang mga ito ay hindi masyadong mahal at ito ay nagkakahalaga ng karanasan upang makabuo ng isa.
Mangyaring tandaan na walang sensor ng Hall para sa motor sa website na ito. Whew!
Ang pagsulat ng istraktura na ito ay isang malaking trabaho.
Inaasahan kong nahanap mo itong kapaki -pakinabang, mangyaring gawin ang iyong mga komento at mungkahi.
Digital Multimeter (DMM)-
Kung ang iyong DMM ay may dalas na metro na oscilloscope (
mas mahusay na magkaroon ng hindi bababa sa 2 mga channel)
T8 Torx driver (
kailangan mo ng isa sa kanila upang buksan ang anumang hard drive).
Mayroong isang mahusay na tindahan ng hardware.
Ang workshop ng makina at mabilis na prototype (
ang mga ito ay kapaki -pakinabang ngunit sa palagay ko ang proyektong ito ay maaaring gawin nang wala sila).
Material BLDC Motor Magnetic Ring mula sa Computer Hard Disk (
kalahati ng motor)
mula sa isa pang hard driveveral (3-6)
mayroong isang pangalawang maliit na motor sa pilak na disk sa hard disk (dc brushed ok)
goma band o (mas mabuti)
ang walang brush na DC motor na may isang hawakan na may isa pang motor na plate plate solid wire buwan ang arduino duemilanove 120 k ohm resistor anim hanggang 400 ohmst micro circuit l6234 tatlong phase motor driver ic dalawa 100 uf capacitors one 10 nf capacitor one 220 nf capacitor one 1 uf capacitor isang 100 uf capacitor tatlong tumatanggap ng mga diode ng isa 2.
honeywell ss411a bipolar hall-5 amp fuse 1 fuse holder 3
tala: mike anton dinisenyo at ibenta ang isang produkto na papalitan ng kuryente at hall sensor sensor na ako ay nagpakita sa ito Manu -manong (
ito ay kinokontrol gamit ang back potensyal na induction).
Ang mga pagtutukoy at impormasyon sa pagkuha ay matatagpuan sa dalawang mga link na ito: Kung gagawin mo ang proyektong ito, iminumungkahi kong maglaan ka ng oras upang lubusang maunawaan kung paano gumagana at kontrol ang BLDC.
Mayroong isang malaking bilang ng mga sanggunian sa online (
tingnan sa ibaba para sa ilang mga mungkahi).
Gayunpaman, isinasama ko ang ilang mga tsart at talahanayan sa aking proyekto na dapat makatulong sa iyo na maunawaan.
Narito ang isang listahan ng mga konsepto na sa palagay ko ay pinakamahalaga sa pag-unawa sa proyektong ito: mosfet transistors 3-phase half-tulay 6-
3-hakbang na pagbawas ng pangungusap
na lapad na lapad ng phase motor (PWM) hall-
microchip avr443: sensor-general na sanggunian DC motor basic principle para sa mga digital na sensor
na kontrol ng three-phase brush dc motor batay sa atmelbrusless dc motor control
phase bld bldc na kontrol ng motor na may kontrol na phase ng DC Ang sensor ng Star Hall, isang mahusay na video ng paglilinis ng motor ng hard drive, ngunit ang may -akda ay tila tumatakbo sa motor bilang isang stepping motor at bilang isang stepping motor. Ang isang mas tiyak na sangguniang web page para sa BLDC sa L6234 Motor Drive IC, kabilang ang mga sheet ng data, mga tala ng aplikasyon, at impormasyon sa pagbili.
Libreng sample para sa PM na walang brush na motor drive para sa mga application ng hybrid na de -koryenteng sasakyan.
Ito lamang ang papel na natagpuan ko na naglalarawan ng pagkakasunud -sunod ng pagbabago ng pagbabagong -buhay ng pagpepreno.
Ang papel na ito, regenerative braking sa mga de -koryenteng sasakyan ay kapaki -pakinabang, hiniram ko ang ilang mga numero mula dito, ngunit sa palagay ko ay hindi tama na inilarawan kung paano gumagana ang pagbabagong -buhay.
Ginawa ko ang proyektong ito gamit ang recycled disk drive motor dahil madali itong dumaan at gusto kong gumamit ng isang maliit na mababang motor na boltahe upang malaman ang kurdon na kinokontrol ng BLDC at hindi maging sanhi ng anumang mga problema sa kaligtasan.
Bilang karagdagan, ang pagsasaayos ng magnet ng sensor ng Hall ay nagiging napaka -simple sa pamamagitan ng paggamit ng magnetic singsing (rotor)
mula sa pangalawa ng mga motor na ito (tingnan ang Hakbang 4).
Kung hindi mo nais na pumunta sa lahat ng abala ng pag-install at pag-calibrate ng sensor ng Hall (Mga Hakbang 5-7)
Alam kong mayroong hindi bababa sa ilang mga motor na CD/DVD drive na binuo sa-hall sensor.
Upang maibigay ang ilang pag -inertia sa motor at bigyan sila ng kaunting pag -load, inilalagay ko ang 5 hard drive sa motor, malumanay na nakadikit kasama ang isang maliit na malakas na pandikit at nakadikit sa motor (
ginawa nito ang flywheel sa aking orihinal na proyekto).
Kung aalisin mo ang motor mula sa hard drive, kailangan mo ng isang T8 Torx drive upang i -unscrew ang pabahay (
karaniwang mayroong dalawang mga tornilyo na nakatago sa likod ng stick sa label ng centeron)
at mga panloob na turnilyo na may hawak na motor.
Kailangan mo ring alisin ang head reader (
Sound Circle Executive)
sa ganitong paraan maaari mong gawin ang memory disk upang maabot ang motor.
Bilang karagdagan, kakailanganin mo ng isang pangalawang parehong motor ng hard drive upang alisin ang rotor mula sa motor na iyon (
mayroong isang magnet sa loob).
Upang magkahiwalay ang motor, hinawakan ko ang rotor (tuktok)
isang vise ng motor at i -pry ito sa stator (ibaba)
ang dalawang distornilyador ay 180 degree na magkahiwalay.
Hindi madaling hawakan ang motor sa isang masikip na sapat na pares nang walang pagpapapangit.
Baka gusto mong bumuo ng isang kahoy na v-
block na ginamit para sa hangaring ito.
Nag -drill ako ng isang butas sa magnetic singsing sa lathe upang kumportable ito sa tuktok ng motor.
Kung hindi mo magagamit ang lathe, maaari mong ayusin ang baligtad na rotor sa motor na may malakas na pandikit.
Ang mga larawan 2 at 3 sa ibaba ay nagpapakita ng interior ng isa sa mga motor na aking na -disassembled.
Sa unang kalahati doon (ang rotor) ay 8 pole (
magnet na nakabalot sa plastik).
Sa ikalawang kalahati (ang stator)
mayroong 12 mga puwang (paikot -ikot).
Ang bawat isa sa tatlong mga phase ng motor ay may 4 na puwang sa serye.
Ang ilang mga HD motor ay may tatlong mga contact sa ilalim, isang contact bawat yugto, at ang isa pa ay ang center tap ng motor (
kung saan nagtatagpo ang tatlong yugto).
Sa proyektong ito, walang kinakailangang sentro ng gripo, ngunit maaari itong madaling magamit sa kontrol na walang sensor (
inaasahan kong maglabas ng isang tala tungkol sa kontrol na walang sensor sa isang araw).
Kung ang iyong motor ay may apat na contact, maaari mong makilala ang phase na may ohmeter.
Ang paglaban sa pagitan ng Center Tap at ang yugto ay kalahati ng paglaban sa pagitan ng anumang dalawang yugto.
Karamihan sa mga panitikan sa BLDC Motors ay nakikipag-usap sa mga may isang potensyal na hugis na hagdan na may hagdan, ngunit ang motor ng hard drive ay tila may isang potensyal na likod na mukhang isang sine (tingnan sa ibaba).
Sa pagkakaalam ko, ang pagmamaneho ng isang sine wave motor na may isang sine wave PWM ay gumagana nang maayos, kahit na ang kahusayan ay maaaring bumagsak nang medyo.
Tulad ng lahat ng mga motor ng BLDC, ang isang ito ay binubuo ng tatlong-phase half-
transistor na tulay (
tingnan ang 2nd na mga larawan sa ibaba).
Ginagamit ko ang IC na ginawa ni St Micro (L6234)
para sa tulay, na kilala rin bilang driver ng motor.
Ang elektrikal na koneksyon ng L6234 ay ipinapakita sa hakbang 8.
Ang ikatlong larawan sa ibaba ay nagpapakita ng isang diagram ng eskematiko ng driver ng motor at ang tatlong mga phase ng motor.
In order for the motor to operate clockwise, the switch will be made in the following order (
The first letter is the upper transistor and the second letter is the lower transistor)
: Step 1 2 3 4 5 6 clockwise: CB, AB, AC, BC, BA, CA counter clockwise: BC, BA, CA, CB, AB, AC these 6-
The step sequence requires a \'electrical degree\' of 360, but only a physical degree of 90 for these Motors.
Samakatuwid, ang bilis ng pag -ikot ng bawat motor ay nangyayari ng apat na beses.
Ang dalawang pagkakasunud-sunod ay tila pareho, ngunit hindi sila pareho dahil para sa 6-
hakbang na pagkakasunud-sunod, para sa CW, ang kasalukuyang direksyon sa pamamagitan ng yugto ay isang direksyon, at para sa CCW, kabaligtaran ang kasalukuyang direksyon.
Maaari mong makita ito sa iyong sarili sa pamamagitan ng paglalapat ng boltahe ng baterya o supply ng kuryente sa alinman sa phase ng motor.
Kung inilalapat mo ang boltahe, ang motor ay lilipat ng kaunti sa isang direksyon at huminto.
Kung maaari mong mabilis na baguhin ang boltahe sa phase sa isa sa mga pagkakasunud -sunod sa itaas, maaari mong paikutin nang manu -mano ang motor.
Ang mga transistor at microcontroller ay nakumpleto ang lahat ng mga switch na ito nang napakabilis, na lumilipat ng daan -daang beses bawat segundo kapag ang motor ay tumatakbo sa mataas na bilis.
Gayundin, mangyaring tandaan na kung ang boltahe ay inilalapat sa parehong mga phase, ang motor ay gumagalaw nang kaunti at pagkatapos ay huminto.
Ito ay dahil ang metalikang kuwintas ay zero.
Maaari mong makita ito sa ika -apat na larawan sa ibaba, na nagpapakita ng likod na potensyal ng isang pares ng mga phase ng motor.
Ito ay isang sine wave.
Kapag ang alon ay dumadaan sa X-
shaft, ang metalikang kuwintas na ibinigay ng phase na ito ay zero. Sa anim
na hakbang na pagbabago ng phase ng BLDC phase na hindi nangyari.
Bago ang metalikang kuwintas sa isang partikular na yugto ay nagiging mababa, ang kapangyarihan ay nakabukas sa isa pang kumbinasyon ng phase.
Ang mas malaking motor ng BLDC ay karaniwang ginawa ng mga sensor ng Hall sa loob ng motor.
Kung mayroon kang tulad ng isang motor pagkatapos maaari mong laktawan ang hakbang na ito.
Gayundin, alam kong mayroong hindi bababa sa ilang mga motor na CD/DVD drive na binuo sa na-hall sensor.
Kapag umiikot ang motor, tatlong sensor ng Hall ang ginagamit para sa pagtuklas ng posisyon, kaya ang pagbabago ng phase ay isinasagawa sa tamang sandali.
Ang aking HD motor ay tumatakbo hanggang sa 9000 rpm (150 Hz).
Dahil mayroong 24 na pagbabago sa bawat gulong, sa 9000 rpm, ang makina ay binago tuwing 280 microsecond.
Ang Arduino micro-controller ay gumagana sa 16 MHz, kaya ang bawat cycle ng orasan ay 0. 06 Microseconds.
Hindi ko alam kung gaano karaming mga siklo ng orasan ang kinakailangan upang magsagawa ng pagbawas ng pangungusap, ngunit kahit na ang 100 mga siklo ng orasan ay kinakailangan, iyon ay, tumatagal ng 5 microsecond para sa bawat pagbawas ng pangungusap.
Ang mga motor ng HD ay walang mga sensor sa Hall, kaya kinakailangan na mai -install ang mga ito sa labas ng motor.
Ang sensor ay kailangang maayos na may paggalang sa pag -ikot ng motor at nakalantad sa isang serye ng mga poste na naaayon sa pag -ikot ng motor.
Ang aking solusyon ay upang alisin ang magnetic singsing mula sa parehong motor at i -install ito baligtad sa motor upang makontrol.
Pagkatapos ay nag -install ako ng tatlong sensor ng Hall sa itaas ng magnetic singsing na ito, 30 degree bukod sa bawat isa sa shaft ng motor (
120 degree na pag -ikot ng motor ng electric).
Ang aking hall sensor holder ay binubuo ng isang simpleng may hawak na binubuo ng tatlong bahagi ng aluminyo na naproseso ng akin at tatlong mga plastik na bahagi na ginawa sa isang mabilis na prototype.
Kung wala kang mga tool na ito, hindi dapat mahirap makahanap ng ibang paraan upang maipahiwatig ang posisyon.
Ang paglikha ng mga bracket para sa mga sensor ng Hall ay magiging mas mahirap.
Ito ay isang posibleng paraan upang gumana: 1.
Maghanap ng isang plastik na tray ng tamang sukat at maaari mong maingat na epoxy ang sensor ng Hall. 2.
Ang isang template ay nakalimbag sa papel, na may parehong bilog tulad ng magnetic ring radius, at ang tatlong marka ay 15 degree 3 bukod.
I -glue ang template sa disk at pagkatapos ay gamitin ang template bilang isang gabay upang maingat na ilagay ang hall sensor epoxy sa lugar.
Ngayon na ang mga sensor ng Hall ay naka -install sa motor, ikonekta ang mga ito sa circuit na ipinakita sa ibaba at subukan ang mga ito gamit ang isang DMM o oscilloscope upang matiyak na ang output ay makakakuha ng mas mataas at mas mababa habang umiikot ang motor.
Pinapatakbo ko ang mga sensor na ito sa ilalim ng 5 V gamit ang output ng Arduino 's 5 V.
Ang sensor ng Hall ay mataas o mababa sa output (1 o 0)
nakasalalay sa kung naramdaman nila ang Antarctic o ang Arctic.
Dahil ang mga ito ay 15 degree na hiwalay, ang mga magnet ay umiikot sa ilalim ng mga ito at baguhin ang polarity tuwing 45 degree, ang tatlong sensor na ito ay hindi magiging mataas o mababa sa parehong oras.
Kapag umiikot ang motor, ang output ng sensor ay 6-
ang pattern ng hakbang na ipinapakita sa sumusunod na talahanayan.
Ang sensor ay dapat na nakahanay sa paggalaw ng motor upang ang isa sa tatlong sensor ay nagbabago nang tumpak sa posisyon ng pagbabago ng phase ng motor.
Sa kasong ito, ang tumataas na gilid ng unang sensor ng Hall (H1)
ay dapat na naaayon sa pagbubukas ng kumbinasyon ng C (mataas) at B (mababa).
Ito ay katumbas ng pag -on sa mga transistor 3 at 5 sa circuit circuit.
Inilagay ko ang sensor gamit ang magnet na may isang oscilloscope.
Upang magawa ito, kailangan kong gumamit ng tatlong mga channel ng saklaw.
Pinaikot ko ang motor sa pamamagitan ng pagkonekta sa sinturon ng pangalawang motor at sinusukat ang potensyal sa likod sa pagitan ng dalawang mga kumbinasyon ng phase (
A at B, A at C)
Ito ay dalawang sine.
Tulad ng mga alon sa larawan sa ibaba
pagkatapos ay tingnan ang signal ng Hall Sensor 2 sa channel 3 ng oscilloscope.
Ang Hall Sensor Holder ay nakabukas hanggang sa ang tumataas na gilid ng sensor ng Hall ay ganap na nakahanay sa punto kung saan dapat isagawa ang pagbabago ng phase (tingnan sa ibaba).
Napagtanto ko ngayon na may dalawang mga channel lamang upang gawin ang parehong pagkakalibrate.
Kung ang BEMF ng pagsasama ng phase B-
gamit ang C, ang tumataas na gilid ng H2 ay nauugnay sa curve ng BC.
Ang dahilan kung bakit dapat isagawa ang pagbabago ng phase dito ay palaging panatilihin ang metalikang kuwintas ng motor hangga't maaari.
Ang potensyal sa likod ay proporsyonal sa metalikang kuwintas at mapapansin mo na ang bawat pagbabago sa phase ay nangyayari kapag ang potensyal na likod ay pumasa sa ibaba ng susunod na curve ng yugto.
Samakatuwid, ang aktwal na metalikang kuwintas ay binubuo ng pinakamataas na bahagi ng bawat kumbinasyon ng phase.
Kung hindi mo ma -access ang saklaw, narito ang aking ideya ng pagkakahanay.
Ito ay talagang isang kagiliw -giliw na ehersisyo para sa sinumang nais malaman kung paano gumagana ang motor ng BLDC.
Kung ang phase ng motor A ay konektado (positibo) at B (negatibo)
sa suplay ng kuryente at i -on ang suplay ng kuryente, ang motor ay iikot nang kaunti at titigil.
Pagkatapos, kung ang negatibong lead lead ay inilipat sa C phase at ang lakas ay naka -on, ang motor ay tatalikod pa at titigil.
Ang susunod na bahagi ng pagkakasunud-sunod ay upang ilipat ang positibong tingga sa Phase B, atbp
Kapag ginawa mo ito, ang motor ay palaging tumitigil kung saan ang metalikang kuwintas ay zero, na tumutugma sa isang lugar kung saan ang tsart ay dumadaan sa x-axis sa tsart.
Tandaan na ang zero point ng kumbinasyon ng third-phase ay tumutugma sa posisyon ng pagbabago ng phase ng unang dalawang kumbinasyon.
Samakatuwid, ang posisyon ng zero metalikang kuwintas ng B-
Ang kumbinasyon ng C ay kung saan nais mong iposisyon ang tumataas na gilid ng H2.
Markahan ang posisyon na ito na may mga pinong marka o matalim na blades, at pagkatapos ay ayusin ang hall sensor holder gamit ang DMM hanggang sa ang output ng H2 ay eksaktong mas mataas sa marka na ito.
Kahit na lumihis ka ng kaunti mula sa iskedyul ng iyong paaralan, dapat gumana nang maayos ang motor.
Ang tatlong yugto ng motor ay makakatanggap ng kapangyarihan mula sa L6234 three-phase motor driver.
Natagpuan ko na ito ay isang mahusay na produkto na maaaring tumayo sa pagsubok ng oras.
Maraming mga paraan upang hindi sinasadyang iprito ang iyong mga sangkap kapag gumagamit ng mga electronics ng kuryente, hindi ako isang de -koryenteng inhinyero at hindi ko alam kung ano ang nangyayari.
Sa aking programa sa paaralan, ginawa namin ang aming sariling 3-
phase half-tulay na output ng 6 MOSFET transistors at 6 diode.
Ginamit namin ito sa HIP4086 ng iba pang driver ng intersil, ngunit marami kaming problema sa pag -setup na ito
ay sinunog namin ang isang bungkos ng mga transistor at chips.
Tumakbo ako L6234 (
kaya ang motor) sa 12v.
Ang L6234 ay may isang hindi pangkaraniwang hanay ng mga input upang makontrol ang isang kalahating tulay ng 6 na transistor.
Hindi lahat ng transistor ay may isang input, ngunit isang paganahin (EN)
input para sa bawat isa sa tatlong yugto, at pagkatapos ay isa pang input (sa)
piliin kung aling transistor sa bukas na yugto (itaas o mas mababa).
Halimbawa, i -on ang transistor 1 (itaas) at 6 (mas mababa)
ang parehong EN1 at EN3 ay mataas (
mababa ang EN2 upang mapanatili ang sarado ng entablado)
sa1 mataas, mababa ang in3.
Ginagawa nito ang kombinasyon ng phase-c.
Habang ang tala ng aplikasyon ng l6234 application na iminungkahi na ilalapat ang PWM na ginamit upang makontrol ang bilis ng motor sa sa pin, napagpasyahan kong gawin ito sa en pin dahil, sa oras na iyon, sa palagay ko ay magiging \ 'kakaiba \' upang i -on ang itaas at mas mababang mga transistor ng phase na
halili Nagpasa
sa
kasalukuyan

​ay medyo maliit, kaya para sa mas malaking bersyon, mangyaring sumangguni sa dokumentasyon para sa L6234.
TANDAAN: Ginawa ni Mike Anton ang PCB para sa L6234, na kung saan ay (naniniwala ako)
na palitan ang track na ito at i -save ka ng trabaho ng pag -iipon nito.
Tingnan ang mga link na ito para sa mga spec at impormasyon sa pagbili: hindi ko natagpuan ang tungkol sa 3-
ilalarawan ko ang aking pag-unawa sa kung paano ito gumagana.
Mangyaring tandaan na hindi ako isang de -koryenteng inhinyero at pinahahalagahan namin ang anumang pagwawasto sa aking paliwanag.
Kapag nagmamaneho, ang control system ay nagpapadala ng kasalukuyang sa tatlong mga phase ng motor sa isang paraan na nag -maximize ng metalikang kuwintas.
Sa regenerative braking, ang control system ay nag -maximize din ng metalikang kuwintas, ngunit sa oras na ito ito ay isang negatibong metalikang kuwintas na nagiging sanhi ng pagbagal ng motor habang ipinapadala ang kasalukuyang bumalik sa baterya.
Ang regenerative na pamamaraan ng pagpepreno na ginamit ko ay nagmula sa isang papel mula sa Oakridge National Laboratory sa Estados Unidos. S. Govt.
Isang laboratoryo na gumagawa ng maraming pananaliksik para sa mga automotive motor.
Ang tsart sa ibaba ay nagmula sa isa pang papel na tumutulong na ilarawan kung paano ito gumagana (
gayunpaman, sa palagay ko ang paliwanag na ibinigay sa pangalawang papel na ito ay bahagyang hindi tama).
Tandaan na kapag ang motor ay umiikot, ang boltahe ng BEMF sa phase ng motor ay nagbabago pataas at pababa.
Sa figure, ipinapakita nito ang sandali kung ang BEMF ay mataas sa yugto B at mababa sa entablado.
Sa kasong ito, posible na ang kasalukuyang daloy mula sa B hanggang.
Kritikal sa pagbabagong-buhay ng pagpepreno, ang mga low-end transistors ay mabilis na naka-on at off nang mabilis (
libu-libong mga switch ng PWM bawat segundo).
Kapag naka-off ang high-end transistor switch;
Kapag naka -on ang mababang transistor, ang kasalukuyang daloy tulad ng ipinapakita sa unang larawan.
Sa mga tuntunin ng electronics ng kuryente, ang circuit ay tulad ng isang aparato na tinatawag na isang boost converter, kung saan ang enerhiya ay naka -imbak sa yugto ng motor (ang
Wikipedia ay may isang mahusay na artikulo na nagpapaliwanag kung paano gumagana ang pagpapalakas ng converter).
Ang enerhiya na ito ay pinakawalan kapag ang low-end transistor ay naka-off, ngunit sa isang mas mataas na boltahe, ang kasalukuyang agad na dumadaloy sa \ 'anti-excitation \' diode sa tabi ng bawat transistor at pagkatapos ay bumalik sa baterya.
Pinipigilan ng diode ang kasalukuyang mula sa pag -agos mula sa baterya patungo sa motor.
Kasabay nito, ang kasalukuyang sa direksyon na ito (
salungat sa pagmamaneho)
ay nakikipag -ugnay sa singsing ng magnet upang makabuo ng isang negatibong metalikang kuwintas na nagpapabagal sa motor.
Ang low-side transistor ay gumagamit ng isang switch ng PWM, at ang duty cycle ng PWM ay kumokontrol sa dami ng pagpepreno.
Kapag nagmamaneho, ang commutation ng motor switch mula sa isang kumbinasyon hanggang sa susunod sa angkop na kurso upang mapanatili ang pinakamataas na posibleng metalikang kuwintas.
Ang commutation ng regenerative preno ay halos kapareho dahil ang ilang mode ng paglipat ay nagiging sanhi ng motor na makagawa ng mas maraming negatibong metalikang kuwintas hangga't maaari.
Kung napapanood mo ang video sa unang hakbang, makikita mo na ang regenerative preno ay gumagana nang maayos, ngunit hindi ito gumana nang maayos.
Sa palagay ko ang pangunahing dahilan ay ang hard drive motor na ginagamit ko ay isang napakababang motor na metalikang kuwintas, kaya't hindi ito makagawa ng maraming BEMF maliban sa pinakamataas na bilis.
Sa isang mas mababang bilis, napakakaunting regenerative braking (kung mayroon man).
Gayundin, ang aking system ay tumatakbo sa isang medyo mababang boltahe (12 V)
Bukod dito, dahil ang bawat landas sa pamamagitan ng anti-excitation diode ay binabawasan ang boltahe ng maraming volts, ito rin ay lubos na binabawasan ang kahusayan.
Gumagamit ako ng mga normal na diode ng rectifier at maaari akong makakuha ng mas mahusay na pagganap kung gumagamit ako ng ilang mga espesyal na diode na may mas mababang pagbagsak ng boltahe.
Nasa ibaba ang isang listahan ng mga input at output sa Arduino.
Isama rin ang mga tsart at larawan ng aking board. 2-
Digital Entry-Hall 1
120 K Paglaban ng GND 3
Digital Entry Hall 2
120 K Paglaban ng GND 4
Hall 3 Digital Input-
120 K Paglaban ng GND 5
1 Digital Output Sa Serye na may 400 ohm Resistor 6
2 Digital Output sa Series na may 400 ohm Resistor 7
3 Digital Output sa Serye na may 400 ohm Resistor 9-
digital output ng en 1 sa serye na may 400 ohm resistor 10-
digital output ng en 2 sa serye kasama ang en 1 sa serye na may 400 400 ohm risistor 11-
Ang EN 3 digital output ay nasa serye na may 400 ohm risistor, 100 K ohm potentiometer, na may 5 V at GND na konektado sa magkabilang dulo at analog pin 0 na konektado sa gitna.
Ang potentiometer na ito ay ginagamit upang makontrol ang bilis ng motor at dami ng pagpepreno.
5 v Power Supply ay ginagamit din upang patakbuhin ang mga sensor ng Hall (tingnan ang Hakbang 5).
Narito ang buong programa na isinulat ko para sa Ardjuino, na kinabibilangan ng mga komento:/* bldc_congroller 3. 1.
1* 3 ni David Glazer.
Ang serye ng X ay st l6234 3-
phase motor driver ic * tumatakbo disk drive motor clockwise * na may regenerative braking * bilis ng motor at pagpepreno na kinokontrol ng isang solong potentiometer * posisyon ng motor sa pamamagitan ng tatlong Hall-
effect sensor * Arduino ay tumatanggap ng output mula sa 3 Hall sensor (pin 2,3,4)
* at i-convert ang kanilang kumbinasyon sa 6 na magkakaibang mga hakbang na nagbabago sa mga pin 9, 10, 11 sa 32 khz
* sa en 1,2, 3 * 3 gawin sa mga pin 5,6, 7, ayon sa pagkakabanggit (sa 1,2,3)
* ikonekta ang kunwa sa 0 sa potentiometro upang baguhin ang cycle ng tungkulin ng PWM at baguhin ang * 500-
523
: taxi * 524-
1023: Motoring * maraming linya para sa pag-print ng iba't ibang mga halaga sa pamamagitan ng isang
salita AllState1
;




​() {pinMode (2, input);
/Hall 1 pinmode (3, input);
/Hall 2 pinmode (4, input);
/L6234 Hall 3/output ng driver ng pinmode motor (5, output);
/Sa 1 pinmode (6, output);
/Sa 2 pinmode (7, output);
/Sa 3 pinmode (9, output);
/En 1 pinmode (10, output);
/En 2 pinmode (11, output);
/En 3/serial. magsimula (9600);
Kung gumagamit ka ng isang serial na koneksyon, mangyaring hindi ma -uncomment ang linyang ito.
Ang flush na utos sa pagtatapos ng programa.
/* Itakda ang dalas ng PWM sa mga pin 9, 10 at 11/Itakda ang PWM sa 32 kHz para sa mga pin 9, 10/unang malinaw ang lahat ng tatlong pre-divider bits: int prescalerval = 0x07;
/Lumikha ng isang variable na tinatawag na Prescalerval at itakda ito sa katumbas ng binary number \ '00000111 \' tccr1b & = ~ prescaler
/at ang halaga sa TCCR0B na may isang binary number ng \ '11111000 \' /ngayon ay nagtatakda ng naaangkop na pre-encoding bit: int pre-encoding bit 2 = 1;
/Itakda ang Prescalerval sa katumbas ng binary number \ '00000001 \' TCCR1B | = prescalerval2;
/O halaga sa TCCR0B na may isang binary number ng \ '00000001 \' /itakda ang PWM sa 32 kHz para sa pin 3,11 (
ang program na ito ay gumagamit lamang ng pin 11)
/I-clear ang lahat ng tatlong pre-caler bits muna: TCCR2B & = ~ pre-calerval;
/At ang halaga sa tccr0b na may isang binary number ng \ '11111000 \'/ngayon itakda ang naaangkop na pre-encoding bit: TCCR2B | = Pre-encoding bit 2;
/O ang halaga sa TCCR0B na may isang binary number ng \ '00000001 \'/Una na i-clear ang lahat ng tatlong pre-encoded bits:}
ang pangunahing loop ng/prGrom void loop () {
/time = millis ();
Oras pagkatapos magsimula ang programa sa pag -print. println (oras); // serial. i -print (\ '\');
Throttle = analogread (0);
/Throttle potentiometer msps = mapa (
throttle, 512,1023, 0,255);
/Ang pagmamaneho ay naka -mapa sa itaas na kalahati ng potentiometer bspeed = mapa (
throttle, 0,511,255, 0);
/Kalahating bahagi ng regenerative braking sa ilalim ng palayok/msps ed = 100;
/Para sa pag -debug ng hallState1 = digitalRead (2);
/Basahin ang halaga ng pag -input mula sa Hall 1 2 = Digital Read (3);
/Basahin ang halaga ng pag -input mula sa Hall 2 3 = Digital Read (4);
Basahin ang Halaga ng Input/Numeric Sumulat mula sa Hall 3 (8, Hallstate1);
/Kapag ang kaukulang sensor ay nasa mataas na kapangyarihan, ang LED ay i -on
ang orihinal na ginamit upang i -debug ang DigitalWrite (9, Hallstate2);
// DigitalWrite (10, HallState3); HallVal = (HallState1)+ (2*HallState2)+ (4*HallState3);
/Kalkulahin ang mga binary na halaga ng 3 Hall Sensor/* Series. i -print (\ 'h 1: \');
Para sa pag -debug ng serial port. println (Hallstate1); Serial. i -print (\ 'h 2: \'); Serial. println (Hallstate2); Serial. i -print (\ 'h 3: \'); Serial. println (Hallstate3); Serial. println (\ '\');
*/// Serial. println (mspeed); // serial. println (Hallval); // serial. i -print (\ '\');
/Subaybayan ang transistor output/pagkaantala (1000);
/* T1 = digitalRead (2); // t1 = ~ t1;
T2 = DigitalRead (4); // t2 = ~ t2;
T3 = DigitalRead (5); // t3 = ~ t3; Serial. i -print (T1); Serial. i -print (\ '\ t \'); Serial. i -print (T2); Serial. i -print (\ '\ t \'); Serial. i -print (T3); Serial. i -print (\ '\'); Serial. i -print (\ '\'); Serial. i -print (DigitalRead (3)); Serial. i -print (\ '\ t \'); Serial. i -print (DigitalRead (9)); Serial. i -print (\ '\ t \'); Serial. println (digitalRead (10)); Serial. i -print (\ '\'); Serial. i -print (\ '\'); // pagkaantala (500);
*/Pagbabago ng Phase ng Pagmamaneho/Ang bawat numero ng binary ay may kaso na naaayon sa iba't ibang mga transistor na naka -on/bit na matematika na ginamit upang mabago ang halaga ng output arduino:/portd ay naglalaman ng output ng sa pin sa L6234 driver/ang output na ginamit upang matukoy kung ang itaas na transistor o ang mas mababang transistor/en pin para sa bawat phase ay kinokontrol ng arduino command analogy, itakda ang tungkulin ng cycle ng pwm
( Ang halaga ng throttle na kinokontrol ng potentiometer). kung (throttle> 511) {switch (HallVal) {
kaso 3:/portd = 1111xxx00;
/Inaasahang output ng PIN 0-
7 XXX ay tumutukoy sa Hall Input at Portd & = B00011111 ay hindi dapat baguhin;
Portd | = B01100000;
/AnneWrite (9, mspeed);
PWM sa isang phase (
high-end transistor) analogwrite (10,0);
Phase B pagsasara (duty = 0) analogwrite (11,255); // phase c sa -duty = 100% (
low -end transistor) break;
Kaso 1:/portd = b001xxx00;
/Inaasahang output ng pin 0-
7 portd & = b00011111;
/Portd | = B00100000;
/AnneWrite (9, mspeed);
PWM sa isang phase (
high-end transistor) analogwrite (10,255); // phase B sa (
low-end transistor) analogwrite (11,0); // phase b off (duty = 0) break;
Kaso 5:/portd = b101xxx00;
/Inaasahang output ng pin 0-
7 portd & = b00011111;
/Portd | = B10100000; analogwrite (9,0); analogwrite (10,255); analogwrite (11, mspeed); Break;
Kaso 4:/portd = b100xxx00;
/Inaasahang output ng pin 0-
7 portd & = b00011111;
Portd | = byM000;
/AnneWrite (9,255); analogwrite (10,0); analogwrite (11, mspeed); Break;
Kaso 6:/portd = b110xxx00;
/Inaasahang output ng pin 0-
7 portd & = b00011111;
Portd B11. 000 =;
/AnneWrite (9,255); analogwrite (10, mspeed); analogwrite (11,0); Break;
Kaso 2:/portd = b010xxx00;
/Inaasahang output ng pin 0-
7 portd & = b00011111;
B0201700 Portd | =;
/Anayawrite (9,0); analogwrite (10, mspeed); analogwrite (11,255); Break; }}
/Regenerative preno phase pagbabago /portd (
output ng sa pin sa L6234)
Ang mga pin ay palaging mababa, kaya ang mga mababang transistor lamang sa bawat yugto ay ginagamit sa panahon ng regen. pagpepreno iba pa {
/portd = b000xxx00;
/Inaasahang output ng pin 0-
7 portd & = b00011111;
Portd | = byM0000; // switch (HallVal) {
kaso 3: pagsulat ng pagkakatulad (9, bspeed); // analogWrite (9,0); analogwrite (10,0); analogwrite (11,0); Break;
Kaso 1: Pagsulat ng Analogy (9, BSpeed); analogwrite (10,0); analogwrite (11,0); Break;
Kaso 5: Pagsulat ng pagkakatulad (9,0); analogwrite (10,0); AnalogWrite (11, BSpeed); Break;
Kaso 4: Pagsulat ng pagkakatulad (9,0); analogwrite (10,0); AnalogWrite (11, BSpeed); Break;
Kaso 6: Pagsulat ng pagkakatulad (9,0); analogwrite (10, bspeed); analogwrite (11,0); Break;
Kaso 2: Pagsulat ng pagkakatulad (9,0); analogwrite (10, bspeed); analogwrite (11,0); Break; }}
/Oras = millis ();
Oras pagkatapos magsimula ang programa sa pag -print. println (oras); // serial. i -print (\ '\'); // serial. flush ();
/Kung nais mong i -debug gamit ang isang serial port, mangyaring uncomment}
Sa palagay ko ang operasyon na ginagawa ni Arduino sa proyektong ito ay napaka -simple na parang isang basura na gawin ang gawaing ito sa isang microprocessor.
Sa katunayan, inirerekomenda ng mga tala ng aplikasyon ng L6234 ang isang simpleng programmable gate array (
GAL16V8 na gawa sa lattice semiconductor) na gawin ang trabahong ito.
Hindi ako pamilyar sa programming ng aparatong ito, ngunit ang gastos ng IC ay $ 2 lamang. 39 sa Newark.
Ang iba pang mga katulad na integrated circuit ay napaka -mura din.
Ang isa pang pagpipilian ay ang paghiwalayin ang maingat na lohika gate.
Dumating ako ng ilang mga medyo simpleng pagkakasunud -sunod ng lohika na maaaring magmaneho ng L6234 IC mula sa output ng tatlong sensor ng Hall.
Ang tsart para sa entablado A ay ipinapakita sa ibaba, at ang talahanayan ng katotohanan para sa lahat ng tatlong yugto (
upang ang lohika circuit ng mga phase ng B at C, ang \ 'hindi \' na pintuan
Ang problema sa pamamaraang ito ay halos 20 na mga koneksyon sa bawat yugto, kaya medyo tumatagal ng trabaho.
ay dapat na lumipat sa iba pang mga bahagi ng \ 'o.

Ang Hoprio Group Isang propesyonal na tagagawa ng magsusupil at motor, ay itinatag noong 2000.

Mabilis na mga link

Makipag -ugnay sa amin

WhatsApp: +86 18921090987 
Tel: +86-18921090987 
Idagdag: No.19 Mahang South Road, Wujin High-Tech District, Changzhou City, Jiangsu Province, China 213167
Mag -iwan ng mensahe
Makipag -ugnay sa amin
Copyright © 2024 Changzhou Hoprio E-Commerce Co, Ltd Lahat ng karapatan ay nakalaan. Sitemap | Patakaran sa Pagkapribado