Tänapäeval on entusiastid väga huvitatud Brushless DC (BLDC) juhtimisest
Võrreldes traditsioonilise alalisvoolumootoriga on mootori jõudlus paranenud, paranenud on ka energiatõhusus, kuid seda on raskem kasutada. palju valmistooteid .
Sel eesmärgil on
Näiteks on palju väikeseid BLDC-kontrollereid, mis töötavad RC-lennukite jaoks väga hästi.
Neile, kes soovivad BLDC juhtimist põhjalikumalt uurida, on ka palju erinevaid tööstuskasutajatele mõeldud mikrokontrollereid ja muud elektroonilist riistvara, millel on tavaliselt väga hea dokumentatsioon.
Siiani pole ma leidnud ühtegi põhjalikku kirjeldust selle kohta, kuidas Arduino mikrokontrollerit BLDC juhtimiseks kasutada.
Samuti, kui olete huvitatud regeneratiivpidurdamisest või BLDC kasutamisest energia tootmiseks, ei ole ma leidnud palju tooteid, mis sobivad väikeste mootoritega kasutamiseks, ega ka 3-faasilise generaatori juhtimise kohta.
See struktuur oli algselt reaalajas arvutamise loos
, jätkan seda ka pärast kursuse lõppu.
Projekti idee on näidata hooratta energiasalvesti ja regeneratiivpidurdusega hübriidauto proportsionaalset mudelit.
Projektis kasutatud mootoriks on kahjustatud arvuti kõvakettalt puhastatud väike BLDC-d.
Selles juhendis kirjeldatakse, kuidas kasutada Arduino mikrokontrollerit ja Hall-
Affectsi asendiandureid sõidu- ja regeneratiivpidurduse režiimides.
Pange tähele, et oscillisofti külastamine on selle projekti lõpuleviimiseks väga kasulik, kui mitte hädavajalik.
Kui te ei pääse ulatusele juurde, olen lisanud mõned soovitused, kuidas seda ilma ulatuseta teha (5. samm).
Üks asi, mida see projekt ei peaks sisaldama ühtegi tegelikku mootorikontrolleri, on mis tahes ohutusfunktsioon, näiteks ülevoolukaitse.
Tegelikult on kõige hullem see, et põletate HD-mootori läbi.
Ülevoolukaitse rakendamine praeguse riistvaraga ei ole aga keeruline ja võib-olla kunagi teen seda.
Kui proovite juhtida suuremat mootorit, lisage oma mootori ja enda ohutuse tagamiseks ülevoolukaitse.
Ma tahan proovida seda kontrollerit kasutada suurema mootoriga, mis saaks \'päris\' tööd teha, kuid mul pole veel seda õiget.
Märkasin, et eBay müüs 86 W auto umbes 40 dollari eest.
Tundub hea kandidaat olevat.
Samuti on olemas RC veebisait nimega \'GoBrushless\', mis müüb komplekte, mis panevad kokku oma BLDC-d.
Need ei ole liiga kallid ja selle ehitamiseks on kogemusi väärt.
Pange tähele, et sellel veebisaidil pole mootori jaoks hallandurit. Vau!
Selle struktuuri kirjutamine on suur töö.
Loodan, et see on teile kasulik, palun andke oma kommentaarid ja ettepanekud.
Digitaalne multimeeter (DMM) –
kui teie DMM-il on sagedusmõõdiku ostsilloskoop (
parem on vähemalt 2 kanalit)
T8 Torxi draiver (
kõvaketta avamiseks on vaja ühte neist).
Seal on korralik ehituspood.
Masinatöökoda ja kiire prototüüp (
need on väga kasulikud, kuid ma arvan, et seda projekti saab teha ka ilma nendeta).
Materjal bldc mootori magnetrõngas arvuti kõvakettalt (
Pool mootorist)
Teiselt kõvakettalt Mitu (3-6) Kõvakettal
on hõbedases kettas teine väike mootor (DC harjatud OK)
Kummipael või (soovitavalt)
Harjadeta alalisvoolumootor käepidemega teise mootoriga elektrooniline leivaplaat täistraat kuu Arduino Duemilanove resistor kuus või 4 resistor 120 k kuni 4 resistorm pöörlev Poteniomeeter100 k ohmST mikroahel L6234 kolmefaasiline mootoridraiver IC kaks 100 uF kondensaatorit üks 10 nF kondensaator üks 220 nF kondensaator üks 1 uF kondensaator üks 100 uF kondensaator kolm vastuvõtudioodi Üks
FSS41 A15Ampusehoidja Hall-2. 3
Märkus: Mike Anton kavandas ja müüs toote, mis asendab selles juhendis näidatud jõuelektroonikat ja Halli anduri ahelaid (
Seda juhitakse tagasipotentsiaali induktsiooni abil).
Tehnilised andmed ja hanketeave leiate nendelt kahelt lingilt: Kui kavatsete seda projekti teha, soovitan teil võtta aega, et põhjalikult mõista, kuidas BLDC töötab ja kontrollib.
Internetis on palju viiteid (
mõned soovitused leiate altpoolt).
Siiski lisan oma projekti mõned diagrammid ja tabelid, mis peaksid aitama teil mõista.
Siin on nimekiri mõistetest, mis on minu arvates selle projekti mõistmiseks kõige olulisemad: MOSFET-transistorid 3-faasiline poolsild 6-
3-astmeline lause vähendamine Faasimootori
impulsi laiuse modulatsioon (PWM) Hall-
Mikrokiip AVR443: andurid-üldreferentsi alalisvoolumootor Põhiprintsiibid digitaalsele asendiandurile põhineva
alalisvoolumootori juhtimine kolmefaasilisel ph-faasil brushless control
Flying Star Halli anduri BLDC mootori juhtimine, hea video kõvaketta mootori puhastamisest, kuid autor tundub, et mootor töötab sammumootorina ja sammumootorina. Konkreetsem viiteveebileht BLDC kohta l6234 mootorajami IC-s, sealhulgas andmelehed, rakenduse märkused ja ostuteave.
Tasuta näidis PM-harjadeta mootoriajami jaoks hübriidelektrisõidukite jaoks.
See on ainus paber, mille leidsin, mis kirjeldab regeneratiivpidurduse faasi muutmise järjekorda.
See paber, regeneratiivpidurdus elektrisõidukites on kasulik, laenasin sealt paar numbrit, aga arvan, et see kirjeldab valesti regeneratsiooni toimimist.
Tegin selle projekti taaskasutatud kettaajami mootoriga, kuna seda oli lihtne läbida ja mulle meeldib kasutada väikest madalpingemootorit, et õppida BLDC juhitavat juhet ja mitte tekitada ohutusprobleeme.
Lisaks muutub saalianduri magneti konfiguratsioon väga lihtsaks, kasutades
nendest teisest mootorist pärinevat magnetrõngast (rootorit) (vt 4. sammu).
Kui te ei soovi tegeleda saalianduri paigaldamise ja kalibreerimisega (sammud 5–7),
tean, et vähemalt mõned CD-/DVD-draivi mootorid on sisseehitatud Halli andurisse.
Mootorile mõningase pöördeinertsi andmiseks ja neile väikese koormuse andmiseks panin mootorile 5 kõvaketast, liimisin õrnalt vähese tugeva liimiga kokku ja liimisin mootori külge (
Sellest sai hooratas minu esialgses projektis).
Kui kavatsete mootori kõvakettalt eemaldada, vajate korpuse lahti keeramiseks T8 torx-draivi (
tavaliselt on tsentroni sildil pulga taha peidetud kaks kruvi)
ja sisemised kruvid, mis hoiavad mootorit paigal.
Samuti peate eemaldama pea lugeja (
Sound circle executive )
Nii saate mootorini jõudmiseks mäluketta välja võtta.
Lisaks on teil vaja teist sama kõvaketta mootorit, et eemaldada sellelt mootorilt rootor (
Sees on magnet).
Mootori lahtivõtmiseks haarasin rootorist (ülemine)
Mootori kruustang ja kangutasin selle staatori külge (alumine)
Kaks kruvikeerajat on teineteisest 180 kraadi kaugusel.
Mootorit ei ole lihtne hoida piisavalt tihedal paaril ilma deformatsioonita. Võib-olla soovite ehitada
puidust v- ploki.
selleks otstarbeks kasutatava
Treipingi magnetrõngasse puurisin augu, et see sobiks mugavalt mootori peale.
Kui te ei saa treipinki kasutada, võite ümberpööratud rootori kinnitada tugeva liimiga mootorile.
Allolevatel piltidel 2 ja 3 on ühe mootori sisemus, mille olen lahti võtnud.
Esimeses pooles (rootor) on 8 poolust (
plasti mähitud magnet).
Teises pooles (staator)
on 12 pilu (mähised).
Kõigil kolmel mootorifaasil on 4 järjestikust pesa.
Mõnel HD-mootoril on kolm kontakti allosas, üks kontakt faasi kohta ja teine on mootori keskmine kraan (
kus kohtuvad kolm etappi).
Selles projektis pole keskmist kraani vaja, kuid see võib andurivaba juhtimisel kasuks tulla (
loodan ühel päeval avaldada märkuse andurivaba juhtimise kohta).
Kui teie mootoril on neli kontakti, saate faasi tuvastada ohmmeetri abil.
Keskmise kraani ja faasi vaheline takistus on pool mis tahes kahe faasi vahelisest takistusest.
Enamik BLDC-mootoreid käsitlevast kirjandusest käsitleb neid, millel on redelikujuline tagumine potentsiaali lainekuju, kuid kõvaketta mootoril näib olevat siinuse moodi tagakülg (vt allpool).
Minu teada töötab siinuslaine PWM-iga mootoriga sõitmine hästi, kuigi kasutegur võib mõnevõrra langeda.
Nagu kõik BLDC mootorid, koosneb ka see kolmefaasilisest pooltransistorsillast
(
vt 2. fotot allpool).
kasutan ST Micro (L6234) valmistatud IC-d , mida tuntakse ka mootori draiverina.
Silla jaoks
L6234 elektriühendus on näidatud sammus 8.
Alloleval kolmandal fotol on skemaatiline diagramm mootori draiverist ja mootori kolmest faasist.
Selleks, et mootor töötaks päripäeva, tehakse lüliti järgmises järjekorras (
esimene täht on ülemine transistor ja teine täht on alumine transistor)
: Samm 1 2 3 4 5 6 päripäeva: CB, AB, AC, BC, BA, CA vastupäeva: BC, BA, CA, CB, AB, AC 360
, kuid nende mootorite puhul ainult füüsiline kraad 90.
Seetõttu toimub iga mootori pöörlemiskiirus neli korda.
Need kaks jada tunduvad olevat samad, kuid nad ei ole samad, sest 6-
astmelise jada puhul on CW puhul voolu suund läbi faasi üks suund ja CCW puhul on voolu suund vastupidine.
Saate seda ise näha, rakendades mõlemale mootorifaasile aku või toiteallika pinget.
Kui rakendate pinget, liigub mootor veidi ühes suunas ja peatub.
Kui saate faasi pinget kiiresti mõnes ülaltoodud järjestuses muuta, saate mootorit käsitsi pöörata.
Transistorid ja mikrokontrollerid lõpetavad kõik need lülitid väga kiiresti, lülituvad sadu kordi sekundis, kui mootor töötab suurel kiirusel.
Samuti pidage meeles, et kui mõlemale faasile rakendatakse pinget, liigub mootor veidi ja seejärel peatub.
Seda seetõttu, et pöördemoment on null.
Seda näete alloleval neljandal fotol, mis näitab mootori faaside paari tagumist potentsiaali.
See on siinuslaine.
Kui laine läbib x-
võlli, on selle faasi pöördemoment null. Kuueastmelises
BLDC faasimuutuste järjestuses, mida kunagi ei juhtunud.
Enne kui pöördemoment konkreetsel faasil muutub madalaks, lülitatakse võimsus teisele faasikombinatsioonile.
Suuremaid BLDC mootoreid toodavad tavaliselt mootori sees olevad Halli andurid.
Kui teil on selline mootor, võite selle sammu vahele jätta.
Samuti tean, et vähemalt mõned CD/DVD-draivi mootorid on juba Halli andurisse sisse ehitatud.
Mootori pöörlemisel kasutatakse asendi tuvastamiseks kolme Halli andurit, seega toimub faasivahetus õigel hetkel.
Minu HD-mootor töötab kuni 9000 p/min (150 Hz).
Kuna ratta kohta on 24 vahetust, siis 9000 p/min juures vahetatakse masinat iga 280 mikrosekundi järel.
Arduino mikrokontroller töötab sagedusel 16 MHz, seega on iga taktisagedus 0,06 mikrosekundit.
Ma ei tea, mitu takttsüklit on vaja lause vähendamiseks, kuid isegi kui on vaja 100 taktisagedust, see tähendab, et iga lause vähendamiseks kulub 5 mikrosekundit.
HD mootoritel pole Halli andureid, mistõttu on vaja need paigaldada mootori välisküljele.
Andur tuleb fikseerida mootori pöörlemiskiiruse suhtes ja eksponeerida mitmetele poolustele, mis on kooskõlas mootori pöörlemisega.
Minu lahendus on eemaldada samalt mootorilt magnetrõngas ja paigaldada see tagurpidi juhitavale mootorile.
Seejärel paigaldasin kolm saaliandurit selle magnetrõnga kohale, üksteisest 30 kraadi kaugusel mootori võllile (
elektrimootori pöörlemine 120 kraadi).
Minu Halli andurihoidik koosneb lihtsast hoidikust, mis koosneb kolmest minu poolt töödeldud alumiiniumosast ja kolmest kiirprototüübil valmistatud plastosast.
Kui teil neid tööriistu pole, ei tohiks olla raske leida teist võimalust positsiooni märkimiseks.
Halli andurite jaoks sulgude loomine on keerulisem.
See on võimalik tööviis: 1.
Otsige üles sobiva suurusega plastalus ja saate saalianduri hoolikalt epoksiidiga üle kanda. 2.
Paberile trükitakse mall, millel on magnetrõnga raadiusega sama ring ja kolm märki on üksteisest 15 kraadi 3 kaugusel.
Liimige mall kettale ja kasutage seejärel malli juhisena, et asetada saalianduri epoksiid ettevaatlikult oma kohale.
Nüüd, kui Halli andurid on mootorile paigaldatud, ühendage need allpool näidatud vooluringiga ja testige neid DMM-i või ostsilloskoobiga, et veenduda, et väljund muutub mootori pöörlemisel kõrgemaks ja madalamaks.
Ma käitan neid andureid alla 5 V, kasutades Arduino 5 V väljundit.
Halli anduri väljundvõimsus on kõrge või madal (1 või 0)
See sõltub sellest, kas nad tunnevad Antarktikat või Arktikat.
Kuna nende vaheline kaugus on 15 kraadi, magnetid pöörlevad nende all ja muudavad polaarsust iga 45 kraadi järel, ei ole need kolm andurit kunagi korraga kõrgel ega madalal.
Kui mootor pöörleb, on anduri väljund 6-
Järgmises tabelis näidatud astmeline muster.
Andur peab olema joondatud mootori liikumisega nii, et üks kolmest andurist muutuks täpselt mootori faasimuutusasendis.
Sel juhul peaks esimese saalianduri (H1) tõusev serv
olema kooskõlas kombinatsiooni C (kõrge) ja B (madal) avaga.
See on samaväärne transistoride 3 ja 5 sisselülitamisega sillaahelas.
Anduri joondan ostsilloskoobiga magnetiga.
Selleks pean kasutama kolme ulatuskanalit.
Pööran mootorit, ühendades teise mootori rihmaga ja mõõdan kahe faasikombinatsiooni vahelist tagapotentsiaali (
A ja B, A ja C)
See on kaks siinust.
Nagu alloleval pildil olevad lained
Seejärel vaadake Halli anduri 2 signaali ostsilloskoobi kanalil 3.
Halli anduri hoidikut pööratakse, kuni saalianduri tõusev serv on täielikult joondatud punktiga, kus faasimuutus tuleks läbi viia (vt allpool).
Nüüd mõistan, et sama kalibreerimiseks on ainult kaks kanalit.
Kui faasikombinatsiooni B BEMF -
kasutades C, on H2 tõusev serv seotud BC kõveraga.
Põhjus, miks siin tuleks faasivahetus läbi viia, on see, et mootori pöördemoment on alati võimalikult kõrge.
Tagumine potentsiaal on võrdeline pöördemomendiga ja te märkate, et iga faasimuutus toimub siis, kui tagumine potentsiaal läheb alla järgmise etapi kõvera.
Seetõttu koosneb tegelik pöördemoment iga faasikombinatsiooni suurimast osast.
Kui te ei pääse ulatusele juurde, siis siin on minu idee joondamisest.
See on tegelikult huvitav harjutus kõigile, kes tahavad teada, kuidas BLDC mootor töötab.
Kui mootori faas A (positiivne) ja B (negatiivne) on ühendatud
toiteallikaga ja lülitate toite sisse, pöörleb mootor veidi ja peatub.
Seejärel, kui negatiivne toitejuhe viiakse C-faasi ja toide on sisse lülitatud, pöörleb mootor edasi ja peatub.
Jada järgmiseks osaks on positiivse juhtme viimine faasi B jne.
Kui teete seda, peatub mootor alati kohas, kus pöördemoment on null, mis vastab ühele kohale, kus diagramm läbib diagrammi x-telge.
Pange tähele, et kolmanda faasi kombinatsiooni nullpunkt vastab kahe esimese kombinatsiooni faasimuutuse positsioonile.
Seetõttu on kombinatsiooni B-C kombinatsiooni nullmomendi asend koht,
kuhu soovite asetada h2 tõusva serva.
Märgistage see asend peente märkide või teravate teradega ja seejärel reguleerige hallanduri hoidikut DMM-i abil, kuni H2 väljund on sellel märgil täpselt kõrgem.
Isegi kui kooligraafikust veidi kõrvale kaldud, peaks mootor hästi töötama.
Kolm mootorifaasi saavad toite L6234 kolmefaasilise mootori draiverilt.
Leidsin, et see on hea toode, mis peab ajaproovile vastu.
Jõuelektroonika kasutamisel on komponente kogemata praadida mitmel viisil, ma ei ole elektriinsener ja ma ei tea alati, mis toimub.
Minu kooliprogrammis tegime oma 3-
faasilise poolsilla väljundi 6 MOSFET-transistorist ja 6 dioodist.
Kasutasime seda teise draiveri Intersili HIP4086 puhul, kuid meil on selle seadistusega palju probleeme.
Põletasime hunniku transistore ja kiipe.
Käitan L6234 (
mootorit) 12V juures.
L6234-l on ebatavaline sisendite komplekt 6 transistorist koosneva poolsilla juhtimiseks.
Igal transistoril ei ole sisendit, vaid lubamissisend (EN)
iga kolme astme jaoks ja seejärel teine sisend (IN)
Valige, milline transistor on 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 (
EN2 madal, et aste oleks suletud)
IN1 kõrge, IN3 madal.
See muudab faasikombinatsiooni-C.
Kui rakenduse L6234 märkus soovitas kasutada mootori kiiruse juhtimiseks kasutatavat PWM-i IN-viikule, siis otsustasin seda teha EN-viiguga, sest tol ajal oli minu arvates \'veider\' vaheldumisi faasi ülemist ja alumist transistorit sisse lülitada.
kumbki ei läbi voolu
Minu meetodiga on kõrge faas sisse lülitatud ja välja lülitatud vaheldumisi PWM sagedusel, samas kui madal faas jääb põlema kogu faasimuutuse ajal.
Allpool on toodud skeem, mis on ühendatud Arduino plaadiga. Lisan ka 2.
5 amprise kaitsme positiivse aku juhtme ja vooluahela vahele.
Taastusvoolus on see arv veidi väike, nii et suuremate versioonide jaoks vaadake L6234 dokumentatsiooni
, mis (ma usun)
asendab selle raja ja säästab teid selle kokkupanemise kohta parandused minu selgitusele Automootorite uurimine Allolev diagramm on pärit
teisest dokumendist,
mis aitab illustreerida, kuidas see toimib ( Kuid ma arvan, et selles teises
artiklis esitatud seletus on vale, pidage meeles, et BEMF-i
pinge kõigub mootori faasis üles ja alla). pidurdades lülituvad madalad transistorid kiiresti
sisse ja
,
kõrval oleva \'anti-ergutus\' dioodi ja seejärel naaseb akusse.
välja (Tuhanded PWM-lülitid sekundis, kui madala transistor on sisse lülitatud, voolab vool nagu esimesel pildil). vabastatakse
kui
voolab vool koheselt läbi iga transistori
madala astme transistor on välja lülitatud, kuid kõrgemal pingel
Samal ajal ei lase vool akust mootorisse (vastupidiselt mootorile, mis töötab negatiivselt).
reguleerib pidurdamise sagedust ei tööta hästi
PWM-lülitit ja PWM-i töötsükkel
Transistor kasutab
. Arvan, et minu kasutatav
kõvaketta mootor on väga väikese pöördemomendiga, nii et see ei tekita palju BEMF-i, välja arvatud suurimal kiirusel Kasutage tavalisi alaldioode ja
ja väljundite loend.
kui kasutan väiksema pingelangusega spetsiaalseid dioode. Allpool on toodud arduino sisendite
ma võin saada paremaid tulemusi,
digitaalväljund
K takistus Gnd 1-sisend 4-sisend . 400 oomi
takistiga 6
2- Digitaalne sisenemissaal 120 K takistus Gnd 3 Digitaalne sisend saali 2 120
2 digitaalset väljundit järjestikku 400 oomi takistiga 7 3 digitaalset väljundit seerias 400 oomi takistiga 9- EN 1 digitaalne väljund seerias 400 oomi takistiga 10- EN 2
jadamisi 400 oomi takistiga, on seeria EN3 takistiga 11, 0 seeria takistiga 11 100 k Ohm potentsiomeeter, mille mõlemas
ning keskel on ühendatud 0 voolutugevust. Seda
potentsiomeetrit kasutatakse ka Halli andurite käitamiseks
(vt. 5. sammu, mis
otsas on ühendatud 5 v ja gnd
kolme Halli efekti anduriga *
faasiline mootoridraiver IC * töötab ketasmootor päripäeva * regeneratiivpidurdusega * mootori kiirust ja pidurdamist juhib üks
Arduino saab väljundi 3
sisaldab kommentaare:/* .1 .1 .1 ST L6234 3-
potentsiomeetri *
mootori asend
2,
3, 4) *
Halli andurilt (kontaktid
10 W, 2 M z
Ja teisendab nende kombinatsiooni 6 erinevaks faasimuutusastmeks
kontaktidel *
3 DO tihvtidel 5,6, 7 ( IN 1,2,3) *
Vastab standardile EN
1,2, 3*
vahetada * sõidu- ja regeneratiivpidurduse vahel * * 0-499: pidur * 500- *10-23 kommentaar * 10-23
Ühendage simulatsioon 0-s potentsiomeetriga, et muuta PWM-i töötsüklit ja
:4.
read silumiseks trükkides jadaühendusele */Int allstate1 muutujad
int HallState3 /
The binary value of int MSPs = 0/tttle; 0; /Seda muutujat
kasutatakse koos gaasipedaali potentsiomeetri vahe seadistusega ()
{pinMode(2,INPUT) /Hall 2 pinMode
/
(4,INPUT /PUT, /
5PUT); 2 pinMode (7,OUTPUT); /In 3 pinMode (9,OUTPUT);
EN
1
3/serial. begin(9600)
pinMode
(10,OUTPUT); /EN 2 pinMode (
11,OUTPUT);
/ EN
on
; If you will be using a serial
connection, please uncomment this line. The flush command at the end of the program. /* Set PWM frequency
sagedusele 32 kHz kontaktide 9 jaoks
pins 9, 10 ja 11/seadistage PWM
, 10/esmalt tühjendage
int prescalerVal = 0x07; /
Looge
kõik kolm eeljagaja bitti:
muutuja nimega prescalerVal ja määrake see võrdseks kahendarvuga \'
00000111\
' TCCR1 väärtusega ~ TCCR1B & =Binary number \'11111000\'/nüüd määrake
sobiv eelkodeeringu bitt :
int eelkodeeringu
bit 2 = 1; /Määra prescalerVal võrduma kahendarvuga
\'00000001\' TCCR1B = prescalerVal2
/ või väärtus 0 binaararvuga 0B 0B; PWM kuni 32 kHz viigu 3,11 jaoks (See programm kasutab
/Kõigepealt tühjendage kõik kolm eelkaleri bitti: TCCR2B & = ~ Pre-calerval
/Ja väärtus TCCR0B-s kahendarvuga \'11111000\' /
ainult viiku 11)
'
now set pre-encoding bit:- TC2B; /Või TCCR0B-s olev binaarne arv \
00000001\'/tühjendage kõik kolm eelkodeeritud bitti potentsiomeeter MSPs = kaart ( Gaasihoob, 512,1023, 0,255) (
2) /Read input value from Hall 2 = Digital Read (3
= Read input value/numeric write
Hall 3) (8
from
/ Kui
, HallState1)
on suure võimsusega, lülitub LED sisse, et
, Hall1/digital) . (HallState1)+
vastav andur
siluda digitalWrite (9
\') println
(2*HallState3) /Arvuta 3 saalianduri väärtused (
1:
\'H
(\'serial);
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(\'\'); //
500); * /Faasimuutuse juhtimine/igal kahendarvul
kasutatud
arduino väärtuse muutmiseks
delay
(
on juhtum, mis vastab erinevatele
sisselülitatud transistoridele / väljundi
sisendi viigu väljundit
ülemist transistori või alumist
bitimatemaatika: /PORTD sisaldab L6234
draiveri
P = 50 = ON 2 analoogia PW
/ väljundit , mida kasutatakse määramaks
, 50 või
, kas iga faasi
transistor / EN viigu juhib Arduino käsu tsükkel
(HallVal){
Juhtum 3:/PORTD = 1111xxx00; (9, mSpeed)
potentsiomeetriga juhitav drossellüliti
; B00011111
(9,mSpeed) AnalogWrite (10,255) B101xxx00;
|. /Analowrite
/Expected output of pin 0-
7 PORTD & = B00011111;
|
analogWrite(9,0); analogWrite(10,255); analogWrite(
B10100000;
/ PORTD
=
11
,mSpeed); break;
Case 4:/PORTD = B100xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111
/
Analowrite (11,mSpeed) 000 =; analoogWrite (11,0) analoogWrite(11,255 break }}
/Regenerative brake phase change/PORTD) (
kontakti väljund)
//
B00011111
L6234
; PORTD | = 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(10,bSpeed); analogWrite(11,0
; break; }} /Time = millis (
);
after
a
Time
Serial. print(\'\'); //Serial. flush(); /If you want to debug using
the printing program starts. println(time); //
serial port, please uncomment} I think the operation that Arduino does in this project is so simple
that it seems like Selle ülesande täitmiseks mikroprotsessoriga soovitatakse L6234-s kasutada lihtsat programmeerimismassiivi (GAL16V8) selle seadme programmeerimisega, kuid IC-i hind on ka 39 dollarit tuli välja mõned suhteliselt lihtsad loogilised jadad, mis võiksid juhtida L6234 IC-d kolme saalianduri väljundist. Allpool on näidatud A etapi diagramm ja kõigi kolme astme tõetabel ( B- ja C-faaside loogikaahela jaoks tuleb \'mitte\' uks lülitada \' teisele poole, ehk siis selles etapis on probleem üsna lähedal. selle kokku panemiseks
on kõige parem programmeerida see programmeeritava loogikaväravana.