Tänapäeval on entusiastid väga huvitatud harjadeta alalisvoolu (BLDC) juhtimisest
võrreldes traditsioonilise alalisvoolu mootoriga, mootori jõudlus on paranenud, ka energiatõhusus on paranenud, kuid seda on keerulisem kasutada. paljud riiulitooted .
Sel eesmärgil eksisteerivad
Näiteks on palju väikeseid BLDCS -kontrollereid, mis töötavad RC lennukite jaoks väga hästi.
Neile, kes soovivad uurida BLDC kontrolli põhjalikumalt, on ka palju erinevaid mikrokontrollereid ja muid tööstuskasutajate elektroonilisi riistvara, millel on tavaliselt väga hea dokumentatsioon.
Siiani pole ma leidnud põhjalikku kirjeldust, kuidas kasutada Arduino mikrokontrollerit BLDC juhtimiseks.
Samuti, kui olete huvitatud regeneratiivse pidurdamise või BLDC kasutamisest elektritootmiseks, pole ma leidnud palju väikeste mootoritega kasutamiseks sobivaid tooteid, samuti pole ma teada saanud, kuidas juhtida 3-faasilist generaatorit.
See struktuur oli algselt reaalajas arvutamise loos
, teen seda jätkuvalt pärast kursuse lõppu.
Projekti idee on näidata hübriidiauto proportsionaalset mudelit, millel on hooratta energia ladustamine ja regeneratiivpidurdus.
Projektis kasutatav mootor on väike BLDCS, mis on puhastatud kahjustatud arvuti kõvakettalt.
Selles käsiraamatus kirjeldatakse, kuidas kasutada Arduino mikrokontrollerit ja saali-
mõjutab positsiooniandureid sõidu- ja regeneratiivsete pidurdusrežiimides.
Pange tähele, et Oscillisofti külastamine on selle projekti täitmiseks väga kasulik, kui mitte hädavajalik.
Kui te ei pääse sellele ulatusele, olen lisanud mõned soovitused, kuidas seda ilma ulatuseta teha (5. samm).
Üks asi, mida see projekt ei tohiks ühegi tegeliku mootori kontrollerisse sisaldada, on mis tahes ohutusfunktsioon, näiteks praegune kaitse.
Tegelikult on kõige hullem see, et põletate HD -mootori välja.
Ülevoolukaitse rakendamine praeguse riistvaraga pole aga keeruline ja võib-olla teen seda mingil hetkel.
Kui proovite juhtida suuremat mootorit, lisage oma mootori ja oma turvalisuse kaitsmiseks praeguse kaitse.
Tahan proovida seda kontrollerit kasutada suurema mootoriga, mis saab teha \ 'päris \' tööd, kuid mul pole veel õiget.
Ma märkasin, et eBay müüs 86 W autot umbes 40 dollari eest.
Näeb välja nagu hea kandidaat.
Seal on ka RC veebisait nimega 'Gobrushless \', mis müüb komplekte, mis koondavad nende endi BLDC.
Need pole liiga kallid ja selle ehitamiseks on väärt kogemust.
Pange tähele, et sellel veebisaidil pole mootori saali andurit. Vahi!
Selle struktuuri kirjutamine on suur töö.
Loodan, et leiate sellest kasu, palun tehke oma kommentaarid ja ettepanekud.
Digitaalne multimeeter (DMM)-
kui teie DMM-il on sagedusmõõturi ostsilloskoop (
parem on vähemalt 2 kanalit)
T8 Torx draiver (
vajate ühte neist kõvaketta avamiseks ühte neist).
Seal on hea riistvara pood.
Masinatöökoda ja kiire prototüüp (
need on väga kasulikud, kuid ma arvan, et seda projekti saab teha ilma nendeta).
Materjal BLDC mootori magnetrõngas arvuti kõvakettast (
pool mootorist)
teisest kõvast drivesevesist (3-6) Hõbekettal
on teine väike mootor kõvakettal (DC harjatud OK)
kummiribal või (eelistatavalt)
harjadeta DC-mootor koos käepidemega koos teise mootoriga elektroonilise leivaplaadiga tahkest traadist. K OHMST mikroskeem L6234 Kolmefaasiline mootorraiver IC Kaks 100 UF-kondensaatori ühe 10 NF kondensaatori üks 220 NF kondensaator One 1 1 UF-kondensaator One 100 UF-kondensaator Kolm vastuvõtvat dioodi üks 2.
Honeywell SS411A bipolaarse Hall-5 amporal-5-ampsuga 3-ampsu Hall 3
Märkus: Mike Anton. Käsitsi (
seda juhitakse võimaliku induktsiooni abil).
Nendes kahest lingist leiate spetsifikatsioone ja hanketeavet: kui kavatsete seda projekti teha, soovitan teil võtta aega, et mõista, kuidas BLDC töötab ja kontrollib.
Veebis on palju viiteid (
mõnda soovitust leiate allpool).
Siiski lisan oma projektis mõned diagrammid ja tabelid, mis peaksid teid aitama.
Siin on loetelu mõistetest, mis minu arvates on selle projekti mõistmiseks kõige olulisemad: MOSFET-transistorid 3-faasilise poolsilla 6- silla 6-
3-astmelise vähendamisega lause
impulsi laiuse modulatsiooni faasimootori (PWM) saali
mikrokiip AVR443: Sensors-Sensors-Greneral Referent
DC Motor Control Princers for
Digital Posity Control DC-motoor Flying Star Halli andur, hea video kõvaketta mootori puhastamisest, kuid näib, et autor töötab mootorit astmelise mootorina ja astmelise mootorina. L6234 mootori draivi IC BLDC spetsiifilisem viiteveebileht, sealhulgas andmelehed, rakenduste märkused ja ostuteave.
PM -pintsita mootorsõiduk tasuta proov hübriidsõidukite rakenduste jaoks.
See on ainus paber, mis kirjeldab regeneratiivse pidurdusfaasi muutumise järjekorda.
See artikkel, elektrisõidukite regeneratiivne pidurdamine on kasulik, laenasin sellest paar numbrit, kuid arvan, et see kirjeldab valesti, kuidas regenereerimine toimib.
Tegin selle projekti ringlussevõetud kettamootoriga, kuna seda oli lihtne läbi viia ja mulle meeldib kasutada väikest madala pingemootorit, et õppida BLDC -d juhitavat juhet ja mitte põhjustada mingeid ohutusprobleeme.
Lisaks muutub saali anduri magneti konfiguratsioon väga lihtsaks, kasutades
nende mootorite teisest magnetilist rõngast (rootorit) (vt 4. samm).
Kui te ei soovi saada kogu saali anduri paigaldamise ja kalibreerimise vaeva (samm 5-7), siis
tean, et seal on vähemalt mõned CD/DVD-draivi mootorid, mis on sisse ehitatud Hall-siseses anduris.
Mootori pöörde inertsuse saamiseks ja neile väikese koormuse saamiseks panin mootorile 5 kõvaketta, liimitud õrnalt koos väikese tugeva liimiga ja liimitud mootori külge (
see tegi minu algse projekti hooratta).
Kui kavatsete mootori kõvakettalt eemaldada, vajate korpuse lahti keeramiseks T8 Torx -draivi (
tavaliselt on keskuse sildis oleva kepi taga peidetud kaks kruvi)
ja sisemisi kruvisid, mis hoiavad mootorit oma kohal.
Peate ka pealugeja (
Sound Circle juht) eemaldama
, et saate mootorisse jõudmiseks välja võtta mäluketta.
Lisaks vajate rootori sellest mootorist eemaldamiseks teist sama kõvaketta mootorit (
sees on magnet).
Mootori lahkumiseks haarasin rootori (ülalt)
mootori vise ja pange see staatorile (alt),
kaks kruvikeerajat on 180 kraadi kaugusel.
Mootorit ei ole lihtne hoida piisavalt tihedal paaril ilma deformatsioonita.
Võib-olla soovite ehitada
sel eesmärgil kasutatava puidu V-ploki.
Puurisin treipingi magnetrõngasse augu, nii et see sobib mugavalt mootori ülaosale.
Kui te ei saa treipinti kasutada, saate mootori ümberpööratud rootori tugeva liimiga kinnitada.
Allpool olevad pildid näitavad ühe mootori interjööri, mille ma olen lahti võtnud.
Esimesel poolajal (rootor) on 8 poolust (
plastist mähitud magnet).
Teisel poolajal (staatoril)
on 12 pesa (mähised).
Kõigil kolmel mootorifaasil on 4 pesa seeriana.
Mõnel HD -mootoril on allosas kolm kontakti, üks kontakt faasi kohta ja teine on mootori keskne kraan (
kus kohtuvad kolm etappi).
Selles projektis pole keskne kraani vajalik, kuid see võib olla abinorivaba kontrolli all (
loodan ühel päeval märkuse andurivaba juhtimise kohta vabastada).
Kui teie mootoril on neli kontakti, saate faasi tuvastada ootajaga.
Keskmise kraani ja faasi vaheline takistus on pool takistusest mis tahes kahe faasi vahel.
Enamik BLDC mootorite kirjandust käsitleb redelikujulise seljaga lainekujuga inimestega, kuid kõvaketta mootoril näib olevat seljapotentsiaal, mis näeb välja nagu siinus (vt allpool).
Minu teada töötab siinuslaine mootoriga sõita siinuslaine PWM -iga hästi, ehkki efektiivsus võib mõnevõrra langeda.
Nagu kõik BLDC mootorid, koosneb see ka kolmefaasilisest pool
transistori sillast (
vt 2. foto allpool).
Ma kasutan silla jaoks ST MICRO (L6234) tehtud IC -d
, mida tuntakse ka mootorijuhina.
L6234 elektriline ühendus on näidatud 8. etapis.
Kolmas foto on näidatud mootorijuhi ja kolme mootori faasi skemaatiline diagramm.
Selleks, et mootor töötab päripäeva, tehakse lüliti järgmises järjekorras (
esimene täht on ülemine transistor ja teine täht on alumine transistor)
: 1. samm 2 3 4 5 6 päripäeva: CB, AB, AC, BC, BC, BA, CA Counter: BC, BC, BA, CA, CB, AB, mis on
need 6-aastased, kuid mis on vajalik 36-aastase astmeline. Need mootorid.
Seetõttu toimub iga mootori pöörlemiskiirus neli korda.
Need kaks järjestust näivad olevat samad, kuid need pole ühesugused, kuna 6-
astmelise järjestuse korral on CW jaoks voolu suund faasi kaudu üks suund ja CCW jaoks on voolu suund vastupidine.
Seda näete ise, kui rakendate aku või toiteallika pinget kummalegi mootorifaasi.
Pinge kandmisel liigub mootor pisut ühes suunas ja peatub.
Kui saate ühes ülaltoodud järjestuses faasis olevat pinget kiiresti muuta, saate mootorit käsitsi pöörata.
Transistorid ja mikrokontrollerid täidavad kõik need lülitid väga kiiresti, lülitades mootori suure kiirusega sadu kordi sekundis.
Samuti pidage meeles, et kui pinget rakendatakse mõlemale faasile, liigub mootor natuke ja seejärel peatub.
Seda seetõttu, et pöördemoment on null.
Seda näete alloleval neljandal fotol, mis näitab mootoripaaside paari tagumist potentsiaali.
See on siinuslaine.
Kui laine läheb läbi X-
võlli, on selle faasi pakutav pöördemoment null. Kuue
astme BLDC faasi muutmise järjestuses, mida kunagi ei juhtunud.
Enne kui pöördemoment konkreetsel faasil muutub madalaks, lülitatakse võimsus teisele faasikombinatsioonile.
Suuremaid BLDC mootoreid valmistatakse tavaliselt mootori sees olevate saali andurite abil.
Kui teil on selline mootor, saate selle sammu vahele jätta.
Samuti tean, et juba on juba Halli andurisse ehitatud mõned CD/DVD-draivi mootorid.
Mootori pöörlemisel kasutatakse positsiooni tuvastamiseks kolme saali andurit, seega tehakse faasi muutus õigel hetkel.
Minu HD -mootor töötab kuni 9000 p / min (150 Hz).
Kuna ratta kohta on 24 muudatust, kiirusel 9000 p / min, muudetakse masinat iga 280 mikrosekundi järel.
Arduino mikrokontroller töötab kiirusel 16 MHz, nii et iga kellatsükkel on 0. 06 mikrosekundit.
Ma ei tea, mitu tallatsüklit on vaja lause vähendamiseks, kuid isegi kui on vaja 100 kellatsüklit, see tähendab, et iga lause vähendamise jaoks kulub 5 mikrosekundit.
HD -mootoritel pole saali andureid, seetõttu on vaja need mootori välisküljele paigaldada.
Andur tuleb mootori pöörlemise suhtes fikseerida ja kokku puutuda mitme pooluse seeriaga, mis on kooskõlas mootori pöörlemisega.
Minu lahendus on eemaldada samast mootorist magnetrõngas ja paigaldada see juhitava mootori tagurpidi.
Seejärel paigaldasin selle magnetrõnga kohale kolm saali andurit, mis on mootori võllile (
120 -kraadise elektrimootori pöörlemise 120 kraadi) peale 30 kraadi.
Minu saali anduri hoidja koosneb lihtsast hoidikust, mis koosneb kolmest minu töödeldud alumiiniumist osast, ja kolmest kiirest prototüübist valmistatud plastosast.
Kui teil neid tööriistu pole, ei tohiks olla keeruline leida mõnda muud viisi positsiooni tähistamiseks.
Saali andurite sulgude loomine on keerulisem.
See on võimalik viis töötamiseks: 1.
Leidke õige suurusega plastsalus ja saate saali anduri hoolikalt epoksü. 2.
paberile on trükitud mall, millel on sama ring kui magnetrõnga raadiusel, ja kolm hinnet on 15 kraadi 3 kaugusel.
Liimige mall ketta külge ja kasutage malli juhisena saali anduri epoksü hoolikaks paigutamiseks.
Nüüd, kui mootorile paigaldatakse saali andurid, ühendage need alloleva vooluringiga ja testige neid DMM -i või ostsilloskoobi abil, et veenduda, et väljund muutub mootori pöörlemisel kõrgemale ja madalamale.
Käitan neid andureid alla 5 V, kasutades Arduino 5 V väljundit.
Saali andur on kõrge või madala väljundiga (1 või 0).
See sõltub sellest, kas nad tunnevad Antarktikat või Arktikat.
Kuna need on 15 kraadi kaugusel, pöörlevad magnetid nende all ja muudavad polaarsust iga 45 kraadi järel, need kolm andurit ei ole kunagi samal ajal kõrged ega madalad.
Kui mootor pöörleb, on anduri väljund 6-
järgmises tabelis näidatud astmemuster.
Andur tuleb joondada mootori liikumisega, nii et üks kolmest andurist muutub täpselt mootori faasi vahetuse asendis.
Sel juhul peaks esimese saali anduri (H1) tõusev serv
olema kooskõlas C kombinatsiooni (kõrge) ja B (madal) avanemisega.
See on samaväärne transistoride 3 ja 5 sisselülitamisega silla vooluringis.
Joondan anduri magnetiga ostsilloskoobiga.
Selleks pean kasutama kolme ulatuse kanalit.
Pööran mootorit, ühendades teise mootori vööga ja mõõdan kahefaasilise kombinatsiooni (
A ja B, A ja C) vahelist tagumist potentsiaali
. See on kaks siinust.
Nagu alloleval pildil olevad lained,
siis vaadake ostsilloskoobi kanali 3 saali anduri 2 signaali.
Halli anduri hoidik on pööratud, kuni saali anduri tõusev serv on täielikult joondatud punktiga, kus tuleks teha faasimuutus (vt allpool).
Nüüd mõistan, et sama kalibreerimise tegemiseks on ainult kaks kanalit.
Kui faasikombinatsiooni B-b-b-
C kasutades C, on H2 tõusev serv seotud BC kõveraga.
Faasimuutus tuleks siin läbi viia, et hoida mootori pöördemoment alati võimalikult kõrgel.
Tagumine potentsiaal on võrdeline pöördemomendiga ja märkate, et iga faasimuutus toimub siis, kui tagumine potentsiaal möödub järgmise etapi kõvera alla.
Seetõttu koosneb tegelik pöördemoment iga faasikombinatsiooni kõrgeimast osast.
Kui teil pole juurdepääsu ulatusele, on siin minu idee joondamisest.
See on tegelikult huvitav harjutus kõigile, kes soovivad teada, kuidas BLDC mootor töötab.
Kui mootorifaas A on ühendatud (positiivne) ja B (negatiivne)
toiteallikaga ja lülitage toiteallikas sisse, pöörleb mootor pisut ja peatub.
Siis, kui negatiivne võimsuse juht viiakse C -faasi ja võimsus lülitatakse sisse, lülitub mootor veelgi ja peatub.
Järjestuse järgmine osa on positiivse eduseisu B-faasi.
Kui seda teete, peatub mootor alati seal, kus pöördemoment on null, mis vastab ühele kohale, kus diagramm läbib diagrammi x-telje.
Pange tähele, et kolmanda faasi kombinatsiooni nullpunkt vastab kahe esimese kombinatsiooni faasimuutuse positsioonile.
Seetõttu on B-kombinatsiooni null pöördemomendi positsioon
koht, kus soovite paigutada H2 tõusva serva.
Märkige see asend peenete märkide või teravate labadega ja reguleerige DMM abil saali anduri hoidja, kuni H2 väljund on sellel märgil täpselt suurem.
Isegi kui te oma kooli ajakavast pisut kõrvale kaldute, peaks mootor hästi toimima.
Kolm mootorifaasi saab energiat L6234 kolmefaasilisest mootorijuhist.
Ma leidsin, et see on hea toode, mis võib ajaproovile vastu võtta.
Toitelektroonika kasutamisel on komponentide kogemata praadimiseks palju võimalusi, ma ei ole elektriinsener ja ma ei tea alati, mis toimub.
Minu kooliprogrammis tegime oma 3-
etapilise poole silla väljundi 6 MOSFET-transistori ja 6 dioodiga.
Me kasutasime seda teise autojuhi HIP4086 -l, kuid selle seadistusega on meil palju probleeme
põletasime hunniku transistoreid ja laastu.
Ma jooksen L6234 (
nii mootor) 12 V juures.
L6234-l on ebaharilik sisendikomplekt, et juhtida 6 transistori poolsilla.
Mitte igal transistoril pole sisendit, vaid lubage (en)
sisend iga kolme etapi jaoks ja seejärel veel üks sisend (sisse)
valib, milline transistor avatud faasis (ülemine või alumine).
Näiteks lülitage sisse transistor 1 (ülemine) ja 6 (alumine)
nii EN1 kui ka EN3 on kõrged (
etapi madal, et hoida lava suletud)
kõrgel, madalal, IN3 madalal.
See teeb faasikombinatsiooni-C.
Kuigi L6234 rakenduse märkus soovitas rakendada mootori kiiruse kontrollimiseks kasutatavat PWM -i, otsustasin seda teha EN PIN -is, sest sel ajal arvan, et see oleks \ 'kummaline \' sisse lülitada faasi ülemine ja alumine transistorid, nii et nad on samad, mis on samadel, et need on samad, mis on samadel, mis pole midagi halba, kui pole midagi valesti, kui pole midagi valesti, kui see on midagi, mis on midagi, mis on midagi,
mis on midagi valesti, et mitte midagi, mis on mitte midagi, mitte midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi valesti, et mitte midagi, mis on mitte midagi, mitte midagi, mis on midagi, mis on mitte midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis on midagi, mis pole midagi, mitte midagi, mis pole midagi, mitte midagi, mis pole midagi, mitte midagi. läbivad
minu
meetodil
.
Need Natuke väike, nii et suuremate versioonide jaoks lugege palun L6234 dokumentatsiooni.
Märkus. Mike Anton tegi PCB L6234 jaoks, mis (ma usun)
selle pala asendab ja säästab selle kokkupaneku töö.
Vaadake neid linke spetsifikatsioonide ja ostuteabe saamiseks: Ma pole leidnud palju umbes 3-
kirjeldan oma arusaama sellest, kuidas see töötab.
Pange tähele, et ma ei ole elektriinsener ja me hindaksime minu selgituse parandusi.
Sõites saadab juhtsüsteem voolu kolmeks mootorifaasis viisil, mis maksimeerib pöördemomenti.
Regeneratiivse pidurdamise korral maksimeerib juhtimissüsteem ka pöördemomenti, kuid seekord on see negatiivne pöördemoment, mis põhjustab mootori aeglustumist, saates voolu akule tagasi.
Regeneratiivpidurimeetod, mida kasutasin, oli pärit Ameerika Ühendriikide Oakridge'i riikliku labori paberist. S. Govt.
Labor, mis teeb palju uurimistööd automootorite jaoks.
Allpool olev tabel pärineb teisest tööst, mis aitab illustreerida selle toimimist (
ma arvan, et selles teises artiklis esitatud seletus on osaliselt vale).
Pidage meeles, et mootori pöörlemisel kõikub mootori faasis olev BEMF -i pinge üles ja alla.
Joonisel näitab see hetke, kui BEMF on B -etapis kõrge ja madalas staadiumis.
Sel juhul on vool voolamiseks B -st.
Regeneratiivse pidurdamise jaoks on kriitiline, madala hinnaga transistorid lülituvad kiiresti sisse ja välja (
tuhanded PWM-lülitid sekundis).
Kui tipptasemel transistori lüliti välja lülitatakse;
Kui madal transistor on sisse lülitatud, voolab vooluhulk, nagu esimesel pildil näidatud.
Toiteelektroonika osas on vooluring nagu seade, mida nimetatakse võimendusmuunduriks, kus energiat hoitakse mootori faasis (
Vikipeedias on hea artikkel, mis selgitab, kuidas Boost Converter töötab).
See energia vabastatakse siis, kui madala hinnaga transistor on välja lülitatud, kuid suurema pinge korral voolab vool kohe läbi iga transistori kõrval asuva dioodi \ 'Excitation \' ja naaseb seejärel aku juurde.
Diood hoiab ära voolu voolamise akust mootorisse.
Samal ajal interakteerub selles suunas (
vastupidiselt sõitmisega) vool
magnetrõngaga, et saada negatiivne pöördemoment, mis aeglustab mootorit alla.
Madala külje transistor kasutab PWM-lüliti ja PWM-i töötsükkel kontrollib pidurdamise kogust.
Sõites lülitub mootori kommutatsioon nõuetekohaselt ühest kombinatsioonist teise, et säilitada võimalikult kõrge pöördemoment.
Regeneratiivpiduri kommutatsioon on väga sarnane, kuna mõni lülitusrežiim põhjustab mootorile võimalikult palju negatiivset pöördemomenti.
Kui vaatate videot esimeses etapis, näete, et regeneratiivpidur töötab hästi, kuid see ei tööta hästi.
Arvan, et peamine põhjus on see, et kõvaketta mootor on väga madal pöördemomendi mootor, nii et see ei anna palju BEMF -i, välja arvatud kõige suurema kiirusega.
Madalama kiirusega on regeneratiivpidurdamist väga vähe (kui neid on).
Samuti töötab minu süsteem suhteliselt madala pingega (12 V)
, kuna iga tee läbi eksklusiivse dioodiga dioodi vähendab pinget mitme volti võrra, vähendab see ka tõhusust.
Ma kasutan normaalseid alaldi dioode ja võin saada paremat jõudlust, kui kasutan mõnda madalama pingelangusega dioodi.
Allpool on Arduino sisendite ja väljundite loend.
Lisage ka minu juhatuse edetabel ja fotod. 2-
Digitaalne sisestus-Hall 1
120 K GND 3
digitaalse sisenemishalli takistus 2
120 K GND 4
Halli 3 Digitaalse sisendi takistus-
120 K GND 5
1 Digitaalne väljund jada digitaalne väljund 400 oomi takistiga 6 2
Digitaalsed väljundid jada 400 OHM-i takistiga 7
3 digitaalset väljundit koos 400-ga
digitaalses väljundis 400 OHM-i
resistentidega 400-ga. 11-
EN 3 digitaalne väljund on järjestikku 400 oomi takistiga, 100 K oomi potentsiomeetriga, 5 V ja GND, mis on ühendatud nii otsas kui ka keskel ühendatud analoognõelaga 0.
Seda potentsiomeetri abil kasutatakse mootori kiiruse ja pidurdusmahu juhtimist.
Halli andurite käitamiseks kasutatakse ka 5 V toiteallikat (vt 5. samm).
Siin on kogu programm, mille kirjutasin Ardjuino jaoks, mis sisaldab kommentaare:/* BLDC_CONGROLLER 3. 1.
1* 3, autor David Glazer.
X-seeria on ST L6234 3-
faasiline mootori draiv IC * töötav kettaseadme mootor päripäeva * Regeneratiivse pidurdamise * mootori kiiruse ja pidurdamise abil, mida juhivad ühe potentsiomeetri * mootori asendiga kolme saali
anduri abil * Arduino võtab väljundit 3 saali anduritest (nööpnõelad 2,3,4)
ja konverteerige oma kombinatsioonile 6 erineva faasi muutuva sammuga (32-le, 32-le. 1,2, 3 *
* , vastavalt 5,6, 7
.
(
1,2,3
3
)
3,2,1
HallState2
Muutujad
)
;
Int
/1. saal pinmode (3, sisend);
/2 Hall 2 PinMode (4, sisend);
/L6234 Hall 3/Pinmode Motor draiveri väljund (5, väljund);
/1 pinmode (6, väljund);
/Kahes tihvtiga (7, väljund);
/3 pinMode (9, väljund);
/En 1 pinmode (10, väljund);
/En 2 pinmode (11, väljund);
/En 3/seeria. algab (9600);
Kui kasutate jadaühendust, siis palun selle joone lahti.
Käsk Flush programmi lõpus.
/* Seadke PWM-sagedus nööpnõelatel 9, 10 ja 11/Set PWM kuni 32 kHz tihvtide jaoks 9, 10/Kõigepealt tühjendage kõik kolm diviidi eelnevat bitti: int prescalerval = 0x07;
/Looge muutuja, mida nimetatakse prescalervaliks, ja seage see võrdsustama binaarset numbrit \ '00000111 \' tccr1b & = ~ prescaler
/ja väärtus tccr0b-s binaarse arvuga \ '11111000 \'
/Seadke Prescalerval võrdsusega binaarse arvuga \ '00000001 \' TCCR1B | = Prescalerval2;
/Või väärtus tccr0b-s binaarse arvuga \ '00000001 \' /seadistage PWM kuni 32 kHz PIN 3,11 jaoks (
see programm kasutab ainult tihvti 11)
/tühjendage kõik kolm eelkalendieelset bitti kõigepealt: TCCR2B & = ~ Pre-CalerVal;
/Ja väärtus TCCR0B-s binaarse arvuga \ '11111000 \'/Nüüd määrake sobiv eelkodeerimise bit: TCCR2B | = Eelneva bitti 2;
binaarse arvuga \ '00000001 \'/Kõigepealt puhastage kõik kolm eelkodeeritud bitti:}
s
/ Või väärtus tccr0b-
Aeg pärast printimisprogrammi algust. println (aeg); // seeria. print (\ '\');
Drossel = analoograam (0);
/Drossel potentsiomeeter MSPS = MAP (
drossel, 512 1023, 0,255);
/Sõit kaardistatakse potentsiomeetri bspeed = kaart (gaasipedaali, ülemise poole
(0,511,255, 0);
/Pooleosa regeneratiivpidurdus poti allosas/MSPS ED = 100;
/Hallstate1 silumiseks = digitaalneRead (2);
/Lugege sisendväärtust saalist 1 2 = digitaalne lugemine (3);
/Lugege sisendväärtust saalist 2 3 = digitaalne lugemine (4);
Lugege sisendväärtust/numbrilist kirjutamist saalist (8, Hallstate1);
/Kui vastav andur on suure võimsusega, lülitub LED
algselt sisse, mida kasutatakse DigitalWrite silumiseks (9, Hallstate2);
// DigitalWrite (10, Hallstate3); Hallval = (Hallstate1)+ (2*Hallstate2)+ (4*Hallstate3);
/Arvutage 3 saali anduri binaarsed väärtused/* seeria. print (\ 'h 1: \');
Seeriasadama silumiseks. println (Hallstate1); Seeria. print (\ 'h 2: \'); Seeria. println (Hallstate2); Seeria. print (\ 'h 3: \'); Seeria. println (Hallstate3); Seeria. println (\ '\');
*/// seeria. println (mspeed); // seeria. println (Hallval); // seeria. print (\ '\');
/Jälgida transistori väljundit/viivitus (1000);
/* T1 = digitaalneRead (2); // t1 = ~ t1;
T2 = digitaalRead (4); // T2 = ~ T2;
T3 = digitaalread (5); // T3 = ~ T3; Seeria. print (T1); Seeria. print (\ '\ t \'); Seeria. print (T2); Seeria. print (\ '\ t \'); Seeria. print (T3); Seeria. print (\ '\'); Seeria. print (\ '\'); Seeria. print (DigitalRead (3)); Seeria. print (\ '\ t \'); Seeria. print (DigitalRead (9)); Seeria. print (\ '\ t \'); Seeria. println (DigitalRead (10)); Seeria. print (\ '\'); Seeria. print (\ '\'); // viivitus (500);
*/Sõidufaasi muutmine/Igal binaarnumbril on juhtum, mis vastab erinevatele transistoridele sisse lülitatud/bitti matemaatika, mida kasutatakse väljundi Arduino:/PORTD väärtuse muutmiseks sisaldab L6234 draiveri PIN -i väljundit/väljundit, mida kasutatakse, et teha kindlaks, kas ülemise ülemise või madalama transistori/EN PIN -i iga etapi alamjuhataja 0 -le on kontrollitud, 55 -aastast, mis on 255
-ga. kontrollib potentsiomeeter). if (drossel> 511) {Switch (Hallval) {
juhtum 3:/portd = 1111xxx00;
/PIN-koodi eeldatav väljund 0–7
xxx viitab saali sisendile ja portd & = b00011111 ei tohiks muuta;
Portd | = B01100000;
/Analowrit (9, mspeed);
PWM faasis (
tipptasemel transistor) analoogkirjutamine (10,0);
B etapi sulgemine (kohustus = 0) analoogkirjutamine (11 255); // C -etapp -DUTY = 100% (
madala kvaliteediga transistori) paus;
1. juhtum:/portd = b001xxx00;
/PIN-i eeldatav väljund 0-
7 PORTD & = B00011111;
/Portd | = B00100000;
/Analowrit (9, mspeed);
PWM faasis (
tipptasemel transistor) analoogkirjutamine (10 255); // faas B (
madala nuti transistori) analoogkirjutamine (11,0); // B etapp välja lülitatud (kohustus = 0) paus;
Juhtum 5:/PORTD = B101XXX00;
/PIN-i eeldatav väljund 0-
7 PORTD & = B00011111;
/Portd | = B10100000; AnalogWrite (9,0); AnalogWrite (10 255); AnalogWrite (11, MSPEED); paus;
Juhtum 4:/PORTD = B100XXX00;
/PIN-i eeldatav väljund 0-
7 PORTD & = B00011111;
Portd | = BYM000;
/Analowrit (9 255); AnalogWrite (10,0); AnalogWrite (11, MSPEED); paus;
Juhtum 6:/portd = B110xxx00;
/PIN-i eeldatav väljund 0-
7 PORTD & = B00011111;
Portd B11. 000 =;
/Analowrit (9 255); AnalogWrite (10, MSPEED); AnalogWrite (11,0); paus;
2. juhtum:/portd = B010xxx00;
/PIN-i eeldatav väljund 0-
7 PORTD & = B00011111;
B0201700 Portd | =;
/Analowrit (9,0); AnalogWrite (10, MSPEED); AnalogWrite (11 255); paus; }}
/Regeneratiivne pidurdusfaasi muutus /portd (
PIN -i väljund L6234 -l)
Nööpnõelad on alati madalad, seega kasutatakse regeni ajal ainult igas faasis madalaid transistoreid. Pidurdamine. else {
/portd = b000xxx00;
/PIN-i eeldatav väljund 0-
7 PORTD & = B00011111;
Portd | = BYM0000; // Switch (Hallval) {
juhtum 3: analoogia kirjutamine (9, bspeed); // analoogWrite (9,0); AnalogWrite (10,0); AnalogWrite (11,0); paus;
1. juhtum: analoogia kirjutamine (9, bspeed); AnalogWrite (10,0); AnalogWrite (11,0); paus;
5. juhtum: analoogia kirjutamine (9,0); AnalogWrite (10,0); AnalogWrite (11, BSPeed); paus;
4. juhtum: analoogia kirjutamine (9,0); AnalogWrite (10,0); AnalogWrite (11, BSPeed); paus;
6 juhtum: analoogia kirjutamine (9,0); AnalogWrite (10, bspeed); AnalogWrite (11,0); paus;
2. juhtum: analoogia kirjutamine (9,0); AnalogWrite (10, bspeed); AnalogWrite (11,0); paus; }}
/Aeg = Millis ();
Aeg pärast printimisprogrammi algust. println (aeg); // seeria. print (\ '\'); // seeria. loputus ();
/Kui soovite siluda jadaporti abil, palun lakkamine}
Ma arvan, et operatsioon, mida Arduino selles projektis teeb, on nii lihtne, et tundub, et see ülesanne on mikroprotsessoriga.
Tegelikult soovitab L6234 rakenduste märkmed
selle töö tegemiseks lihtsat programmeeritavat väravamassiivi (Gal16v8 valmistatud võre semikdurist).
Ma ei ole selle seadme programmeerimisega kursis, kuid IC maksumus on ainult 2 dollarit. 39 Newarkis.
Ka muud sarnased integreeritud vooluringid on väga odavad.
Teine võimalus on koondada diskreetse loogikaväravad.
Tulin välja mõned suhteliselt lihtsad loogikajärjestused, mis võiksid L6234 IC juhtida kolme saali anduri väljundist.
A -etapi diagramm on näidatud allpool ja kõigi kolme etapi tõestabeli (
B- ja C -faaside loogikaahela jaoks tuleb \ 'mitte \' uks lülitada \ 'või. Selle lähenemisviisi probleemiks on, et igas etapis on peaaegu 20 ühendust,
et see võtab selle koostamiseks üsna palju tööd.
nii