Manapság a rajongók nagy érdeklődést mutatnak a Brushless DC (BLDC) vezérlése iránt
A hagyományos egyenáramú motorhoz képest javult a motor teljesítménye, javult az energiahatékonyság is, de nehezebben használható. Számos késztermék
létezik erre a célra.
Például sok kisméretű BLDC vezérlő van, amelyek nagyon jól működnek RC repülőgépeken.
Azok számára, akik behatóbban szeretnének foglalkozni a BLDC vezérlésével, számos különféle mikrokontroller és egyéb elektronikus hardver is található az ipari felhasználók számára, amelyek általában nagyon jó dokumentációval rendelkeznek.
Eddig nem találtam átfogó leírást az Arduino mikrokontroller BLDC vezérlésére való használatáról.
Továbbá, ha érdekli a regeneratív fékezés, vagy a BLDC használata energiatermelésre, nem találtam sok olyan terméket, amely alkalmas kis motorokhoz, és nem tudtam meg a háromfázisú generátor vezérléséről sem.
Ez a struktúra eredetileg a valós idejű számításról szóló történetben szerepelt
, a tanfolyam végeztével folytatom.
A projekt ötlete egy hibrid autó arányos modelljének bemutatása lendkerekes energiatárolóval és regeneratív fékezéssel.
A projektben használt motor egy kis BLDC, amelyet a számítógép sérült merevlemezéről tisztítottak meg.
Ez a kézikönyv leírja, hogyan kell használni az Arduino mikrovezérlőt és a Hall-
Affects helyzetérzékelőket vezetési és regeneratív fékezési módokban.
Kérjük, vegye figyelembe, hogy az oscillisoft felkeresése nagyon hasznos, ha nem elengedhetetlen a projekt befejezéséhez.
Ha nem tud hozzáférni a hatókörhöz, hozzáadtam néhány javaslatot arra vonatkozóan, hogyan teheti ezt meg a hatókör nélkül (5. lépés).
Egy dolog, amit ennek a projektnek nem szabad belefoglalnia egyetlen tényleges motorvezérlőbe sem, az olyan biztonsági funkciók, mint például a túláramvédelem.
Valójában az a legrosszabb, hogy kiégeted a HD motort.
Azonban a túláram elleni védelem megvalósítása jelenlegi hardverrel nem nehéz, és talán egyszer meg is fogom tenni.
Ha nagyobb motort próbál vezérelni, kérjük, adjon hozzá túláramvédelmet a motor és saját biztonsága érdekében.
Szeretném megpróbálni ezt a vezérlőt egy nagyobb motorral használni, ami \'igazi\' munkát végez, de még nincs meg a megfelelő.
Észrevettem, hogy az eBay egy 86 W-os autót adott el körülbelül 40 dollárért.
Jó jelöltnek tűnik.
Van egy \'GoBrushless\' nevű RC-webhely is, amely saját BLDC-jüket összeállító készleteket árul.
Ezek nem túl drágák, és megéri a tapasztalat, hogy megépítsünk egyet.
Felhívjuk figyelmét, hogy ezen a weboldalon nincs hall-érzékelő a motorhoz. Tyűha!
Ennek a szerkezetnek a megírása nagy munka.
Remélem, hasznosnak találja, kérjük, tegye meg észrevételeit és javaslatait.
Digitális multiméter (DMM) –
Ha a DMM-je frekvenciamérő oszcilloszkóppal rendelkezik (
jobb, ha legalább 2 csatornája van)
T8 Torx illesztőprogram (
az egyikre szüksége van a merevlemez megnyitásához).
Van egy jó vasbolt.
Gépműhely és gyors prototípus (
Nagyon hasznosak, de úgy gondolom, hogy ez a projekt nélkülük is megvalósítható).
Anyaga bldc motor mágneses gyűrű a számítógép merevlemezéről (
A motor fele)
Másik merevlemezről Több (3-6)
A merevlemezen lévő ezüst lemezben van egy második kis motor (DC szálcsiszolt OK)
Gumiszalag vagy (lehetőleg)
A kefe nélküli DC motor fogantyúval másik motorral elektronikus kenyérlap tömör drót hónap az Arduino Duemilanove resiar hat vagy 4 resistorm 120 k to 4 resistorm forgó potenciométer 100 k ohmST mikroáramkör L6234 háromfázisú motor meghajtó IC két 100 uF kondenzátor egy 10 nF kondenzátor egy 220 nF kondenzátor egy 1 uF kondenzátor 1 100 uF kondenzátor három vevő dióda Egy
FSS41 A 5 Amp tartó Hall 2. 3
Megjegyzés: Mike Anton tervezett és értékesített egy olyan terméket, amely helyettesíti az ebben a kézikönyvben bemutatott teljesítményelektronikát és Hall-érzékelő áramköröket (
visszapotenciál indukcióval vezérlik).
A specifikációk és a beszerzési információk ezen a két linken találhatók: Ha ezt a projektet kívánja megvalósítani, azt javaslom, szánjon időt a BLDC működésének és vezérlésének alapos megértésére.
Számos hivatkozás található az interneten (
lásd alább néhány javaslatot).
Mindazonáltal beépítek néhány diagramot és táblázatot a projektembe, amelyek segítenek megérteni.
Íme egy lista azokról a fogalmakról, amelyek szerintem a legfontosabbak ennek a projektnek a megértéséhez: MOSFET tranzisztorok 3 fázisú félhíd 6-
3 lépéses mondatcsökkentés
A fázismotor impulzusszélesség-modulációja (PWM) Hall-
Microchip AVR443: szenzorok - általános referencia DC motor A digitális helyzetérzékelők alapelvei
DC DC motor vezérlése háromfázisú Phase nélküli vezérlés
A Flying Star Hall érzékelő BLDC motorvezérlése, jó videó a merevlemez motorjának tisztításáról, de úgy tűnik, hogy a szerző léptetőmotorként és léptetőmotorként működteti a motort. Egy konkrétabb referencia weboldal az l6234 motormeghajtó IC-n található BLDC-hez, adatlapokkal, alkalmazási megjegyzésekkel és vásárlási információkkal.
Ingyenes minta PM szénkefe nélküli motorhajtáshoz hibrid elektromos járművekhez.
Ez az egyetlen papír, amit találtam, amely leírja a regeneratív fékezés fázisváltásának sorrendjét.
Hasznos ez a papír, a regeneratív fékezés elektromos járművekben, pár számot kölcsönöztem belőle, de szerintem rosszul írja le a regenerálás működését.
Ezt a projektet újrahasznosított lemezmeghajtó motorral csináltam, mert könnyű volt áthaladni, és szeretek egy kis alacsony feszültségű motort használni, hogy megtanuljam a BLDC által vezérelt kábelt, és ne okozzon biztonsági problémát.
Ezenkívül a Hall-érzékelő mágneses konfigurációja nagyon egyszerűvé válik
a második motor mágnesgyűrűjének (rotorának) használatával (lásd a 4. lépést).
Ha nem akar belemenni a csarnok-érzékelő telepítésével és kalibrálásával járó sok fáradságba (5-7. lépés),
tudom, hogy legalább néhány CD/DVD-meghajtó motor beépített Hall érzékelővel rendelkezik.
Annak érdekében, hogy némi forgási tehetetlenséget biztosítsak a motornak, és egy kis terhelést adjak nekik, 5 merevlemezt tettem a motorra, finoman összeragasztottam egy kis erős ragasztóval, és a motorra ragasztottam (az
eredeti projektemben ez készült a lendkerék).
Ha eltávolítja a motort a merevlemezről, szüksége van egy T8 torx meghajtóra a ház lecsavarásához (
általában két csavar van elrejtve a pálca mögött a centeron címkén)
és belső csavarok, amelyek a helyén tartják a motort.
A Reader fejet is el kell távolítani (
Sound circle executive)
Így kiveheti a memórialemezt, hogy elérje a motort.
Ezenkívül szüksége lesz egy másik merevlemez-motorra is, hogy eltávolítsa a rotort a motorról (
van benne egy mágnes).
A motor szétszedéséhez megfogtam a forgórészt (felső)
A motor satuját és ráfeszítettem az állórészre (alul)
A két csavarhúzó 180 fokban van egymástól.
Nem könnyű a motort elég szoros páron tartani deformáció nélkül.
Érdemes lehet építeni egy fa v-
blokkot erre a célra.
Az esztergagépen lévő mágnesgyűrűbe lyukat fúrtam, hogy kényelmesen elférjen a motor tetején.
Ha nem tudja használni az esztergagépet, a fordított forgórészt erős ragasztóval rögzítheti a motoron.
Az alábbi 2. és 3. képen az egyik általam szétszedett motor belseje látható.
Az első felében (a rotorban) 8 pólus található (
mágnes műanyagba csomagolva).
A második felében (az állórészben)
12 rés (tekercselés) található.
Mind a három motorfázisban 4 soros nyílás található.
Egyes HD motorok alján három érintkező van, fázisonként egy érintkező, a másik pedig a motor középső csapja (
ahol három fokozat találkozik).
Ebben a projektben nincs szükség középső csapra, de jól jöhet az érzékelő nélküli vezérlésben (
remélem, egyszer kiadok egy megjegyzést az érzékelő nélküli vezérlésről).
Ha a motornak négy érintkezője van, ohméterrel azonosíthatja a fázist.
A középső csap és a fázis közötti ellenállás fele bármely két fázis közötti ellenállásnak.
A BLDC motorokról szóló irodalom nagy része létra alakú hátsó potenciál hullámformával foglalkozik, de úgy tűnik, hogy a merevlemez-motor hátsó potenciálja szinusznak tűnik (lásd alább).
A szinuszos PWM-mel végzett szinuszos motor vezetése tudtommal jól működik, bár a hatásfok némileg csökkenhet.
Mint minden BLDC motor, ez is háromfázisú féltranzisztoros
hídból áll (
lásd a 2. képet lent). A hídhoz
az ST Micro (L6234) által gyártott IC-t használom
, más néven motormeghajtót.
Az L6234 elektromos csatlakozása a 8. lépésben látható.
Az alábbi harmadik képen a motor meghajtó és a három motorfázis sematikus diagramja látható.
Annak érdekében, hogy a motor az óramutató járásával megegyező irányban működjön, a kapcsolás a következő sorrendben történik (
az első betű a felső tranzisztor, a második betű az alsó tranzisztor)
: 1 2 3 4 5 6 lépés az óramutató járásával megegyezően: CB, AB, AC, BC, BA, CA
az óramutató járásával ellentétes irányban: BC, BA, CA, CB, AB, AC lépések'c6-fok szükséges' 360, de ezeknél a motoroknál csak 90 fizikai fok.
Ezért minden motor forgási sebessége négyszer fordul elő.
A két szekvencia azonosnak tűnik, de nem ugyanaz, mert a 6-
lépéses sorozatnál CW esetén a fázison áthaladó áram iránya egyirányú, míg CCW esetén az áram iránya ellentétes.
Ezt saját maga is láthatja, ha az akkumulátor vagy a tápfeszültség feszültségét a motor bármelyik fázisára kapcsolja.
Ha rákapcsolja a feszültséget, a motor egy kicsit elmozdul az egyik irányba és leáll.
Ha gyorsan megváltoztathatja a fázis feszültségét a fenti szekvenciák egyikével, akkor a motort kézzel is elforgathatja.
A tranzisztorok és a mikrokontrollerek nagyon gyorsan végrehajtják ezeket a kapcsolásokat, másodpercenként több százszor kapcsolnak, amikor a motor nagy sebességgel jár.
Kérjük, vegye figyelembe, hogy ha mindkét fázisra feszültséget kapcsolunk, a motor egy kicsit mozog, majd leáll.
Ez azért van, mert a nyomaték nulla.
Ezt láthatja az alábbi negyedik fotón, amely egy motorfázispár hátsó potenciálját mutatja.
Ez egy szinuszhullám.
Amikor a hullám áthalad az x-
tengelyen, akkor ennek a fázisnak a nyomatéka nulla. A hatlépéses
BLDC fázisváltási szekvenciában, ami soha nem történt meg.
Mielőtt egy adott fázis nyomatéka alacsony lesz, a teljesítmény átkapcsol egy másik fáziskombinációra.
A nagyobb BLDC motorokat általában a motor belsejében lévő Hall-érzékelők gyártják.
Ha van ilyen motorja, akkor ezt a lépést kihagyhatja.
Azt is tudom, hogy legalább néhány CD/DVD-meghajtó motor be van építve a Hall-érzékelőbe.
Amikor a motor forog, három Hall érzékelőt használnak a helyzetérzékelésre, így a fázisváltás a megfelelő pillanatban történik.
A HD motorom 9000 RPM-ig (150 Hz) működik.
Mivel kerekenként 24 csere történik 9000 ford./percnél, a gépet 280 mikromásodpercenként cserélik.
Az Arduino mikrokontroller 16 MHz-en működik, így minden órajelciklus 0,06 mikroszekundum.
Nem tudom, hány órajelre van szükség a mondatcsökkentés végrehajtásához, de még ha 100 órajelre is szükség van, vagyis minden mondatcsökkentéshez 5 mikroszekundum kell.
A HD motorok nem rendelkeznek Hall érzékelőkkel, ezért ezeket a motor külső oldalára kell felszerelni.
Az érzékelőt a motor forgásához képest rögzíteni kell, és ki kell téve egy sor pólusnak, amely összhangban van a motor forgásával.
Az én megoldásom az, hogy ugyanarról a motorról leszedem a mágnesgyűrűt, és fejjel lefelé szerelem a vezérelendő motorra.
Ezután három Hall érzékelőt szereltem fel e mágnesgyűrű fölé, egymástól 30 fokos távolságban a motor tengelyére (
120 fokos villanymotor forgás).
A Hall szenzortartóm egy egyszerű tartóból áll, amely három általam feldolgozott alumínium alkatrészből és három, gyors prototípuson készült műanyag alkatrészből áll.
Ha nem rendelkezik ezekkel az eszközökkel, nem lehet nehéz más módot találni a pozíció megjelölésére.
A Hall-érzékelők tartóinak létrehozása nagyobb kihívást jelent.
Ez egy lehetséges munkamódszer: 1.
Keressen egy megfelelő méretű műanyag tálcát, és gondosan epoxizálja a hall-érzékelőt. 2.
A papírra egy sablont nyomtatunk, amelynek köre megegyezik a mágneses gyűrű sugarával, és a három jel 15 fokra 3 távolságra van egymástól.
Ragassza fel a sablont a lemezre, majd használja a sablont útmutatóként, hogy óvatosan helyezze a helyére a hall-érzékelő epoxigyantát.
Most, hogy a Hall-érzékelők fel vannak szerelve a motorra, csatlakoztassa őket az alább látható áramkörhöz, és tesztelje őket DMM-mel vagy oszcilloszkóppal, hogy megbizonyosodjon arról, hogy a motor forgása közben a kimenet egyre magasabb és alacsonyabb lesz.
Ezeket az érzékelőket 5 V alatt futtatom az Arduino 5 V-os kimenetén.
A Hall-érzékelő nagy vagy alacsony teljesítményű (1 vagy 0)
Attól függ, hogy az Antarktist vagy az Északi-sarkot érzik-e.
Mivel 15 fokra vannak egymástól, a mágnesek forognak alattuk és 45 fokonként változtatják a polaritást, ez a három érzékelő soha nem lesz egyszerre magas vagy alacsony.
Amikor a motor forog, az érzékelő kimenete 6-
A következő táblázatban látható lépésminta.
Az érzékelőt a motor mozgásához kell igazítani, hogy a három érzékelő közül az egyik pontosan a motor fázisváltási pozíciójában változzon.
Ebben az esetben az első Hall érzékelő felfutó élének (H1)
összhangban kell lennie a C kombináció (magas) és B (alacsony) nyílásával.
Ez megegyezik a 3. és 5. tranzisztor bekapcsolásával a hídáramkörben.
Oszcilloszkóppal az érzékelőt a mágneshez igazítom.
Ennek érdekében három hatóköri csatornát kell használnom.
A motort úgy forgatom, hogy a második motor övéhez csatlakozik, és megmérem a két fáziskombináció (
A és B, A és C) közötti visszapotenciált
. Ez két szinusz.
Az alábbi képen látható hullámokhoz hasonlóan.
Ezután nézze meg a Hall-érzékelő 2 jelét az oszcilloszkóp 3. csatornáján.
A Hall-érzékelő tartóját addig kell forgatni, amíg a hall-érzékelő felfutó éle teljesen egy vonalba nem kerül azzal a ponttal, ahol a fázisváltást végre kell hajtani (lásd alább).
Most már rájöttem, hogy csak két csatorna van ugyanarra a kalibrálásra.
Ha a B fáziskombináció BEMF-je -
C-t használva, a H2 felfutó éle a BC görbéhez kapcsolódik.
A fázisváltást azért kell itt végrehajtani, mert a motor nyomatékát mindig a lehető legmagasabb szinten kell tartani.
A visszacsatolási potenciál arányos a nyomatékkal, és észre fogod venni, hogy minden fázisváltozás akkor következik be, amikor a hátsó potenciál a következő szakasz görbe alá megy.
Ezért a tényleges nyomaték az egyes fáziskombinációk legmagasabb részéből áll.
Ha nem tud hozzáférni a hatókörhöz, itt az én ötletem az igazításról.
Ez valójában egy érdekes gyakorlat mindenkinek, aki szeretné tudni, hogyan működik a BLDC motor.
Ha a motor A fázis (pozitív) és B (negatív) csatlakozik
a tápegységhez, és bekapcsolja a tápegységet, a motor egy kicsit forog és leáll.
Ezután, ha a negatív tápkábel a C fázisba kerül, és a tápfeszültséget bekapcsolja, a motor tovább forog és leáll.
A sorozat következő része a pozitív vezeték áthelyezése a B fázisba stb.
Amikor ezt megteszi, a motor mindig ott áll le, ahol a nyomaték nulla, ami megfelel annak a helynek, ahol a diagram áthalad a diagram x tengelyén.
Vegye figyelembe, hogy a harmadik fázis kombináció nullapontja megfelel az első két kombináció fázisváltási pozíciójának.
Ezért a B-
A C kombináció nulla nyomaték pozíciója az, ahová a h2 felfutó élét el kívánja helyezni.
Jelölje meg ezt a pozíciót finom jelölésekkel vagy éles pengékkel, majd állítsa be a hall-érzékelő tartóját DMM segítségével addig, amíg a H2 kimenete pontosan magasabb lesz ennél a jelölésnél.
Még ha egy kicsit el is tér az iskolai menetrendtől, a motornak jól kell működnie.
A három motorfázis az L6234 háromfázisú motormeghajtótól kap áramot.
Úgy találtam, hogy ez egy jó termék, amely kiállja az idő próbáját.
Sokféle módon lehet véletlenül megsütni az alkatrészeket teljesítményelektronika használatakor, nem vagyok villamosmérnök, és nem mindig tudom, mi történik.
Iskolai programomban elkészítettük a saját 3
fázisú félhíd kimenetünket 6 MOSFET tranzisztorból és 6 diódából.
Ezt a másik Intersil meghajtó HIP4086-án használtuk, de sok problémánk van ezzel a beállítással.
Egy rakás tranzisztort és chipet égettünk el. Az L6234-et (
futtatom .
tehát a motort) 12V-on
Az L6234 szokatlan bemenetekkel rendelkezik a 6 tranzisztorból álló félhíd vezérléséhez.
Nem minden tranzisztornak van bemenete, hanem engedélyező (EN)
bemenete mindhárom fokozathoz, majd egy másik bemenet (IN)
Válassza ki, melyik tranzisztor a nyitott fázisban (felső vagy alsó).
Például kapcsolja be az 1-es (felső) és a 6-os (alsó) tranzisztort.
Mind az EN1, mind az EN3 magas (
EN2 alacsony, hogy a fokozat zárva maradjon)
IN1 Magas, IN3 alacsony.
Ez a -C fáziskombinációt eredményezi.
Míg az L6234 alkalmazási megjegyzés a motor fordulatszámának szabályozására használt PWM alkalmazását javasolta az IN érintkezőre, úgy döntöttem, hogy ezt az EN lábon teszem meg, mert akkoriban szerintem \'furcsa\' lenne felváltva bekapcsolni a fázis felső és alsó tranzisztorát.
Tulajdonképpen úgy tűnik, semmi baj nincs azzal, hogy mindkét fázist ugyanabban az időben kapcsolják be. egyik sem megy át az áramon
Az én módszeremnél a magas fázist felváltva kapcsoljuk be és tiltjuk le a PWM frekvencián, míg az alacsony fázis bekapcsolva marad a teljes fázisváltás alatt, az
kártyához hozzáadtam a tűs csatlakozást.
A pozitív akkumulátor tápkábel és az áramkör között egy 5 amperes biztosítékot is adok. A visszatápláló áramban
ez a szám egy kicsit kicsi, ezért kérjük, olvassa el az L6234 dokumentációját helyesbítés a magyarázatomhoz A vezérlőrendszer úgy küldi az áramot, hogy maximalizálja a
Arduino
forgatónyomatékot, de ezúttal a motor lelassul, miközben az áramot visszaküldi az Egyesült Államok laboratóriumából
Az alábbi táblázat
bemutatja, hogyan működik ( azonban a második cikkben
leírt magyarázatok részben helytelenek).
fékezés,
a low-end tranzisztorok gyorsan kapcsolnak be és kikapcsolnak
egy másik dokumentumból származik, amely
,
(
ha a high-end tranzisztoros kapcsoló ki van kapcsolva, az áram az első képen látható módon folyik). felszabadul, amikor az alsó kategóriás tranzisztort kikapcsolják, de magasabb feszültségnél az áram azonnal átfolyik az \'anti-gerjesztő\' diódán az egyes tranzisztorok mellett A tranzisztor PWM kapcsolót használ, és a PWM munkaciklusa szabályozza a fékezés mértékét Nem működik jól
szerintem
a fő oka az, hogy az általam használt merevlemez-motor
egy nagyon
alacsony nyomatékú motor
,
, így nem termel túl sok BEMF-et, kivéve a legnagyobb fordulatszámon Használjon normál egyenirányító diódákat
Az alábbiakban található
és
az arduino bemeneteinek és kimeneteinek listája.
jobb teljesítményt érhetek el, ha alacsonyabb feszültségeséssel rendelkező diódákat használok.
Tartalmazza a kártyám grafikonjait és fényképeit is. 400 ohmos ellenállással 6 2 soros digitális kimenet 400 ohmos
sorosan 400 ohmos ellenállással 10- EN 2 digitális
ellenállással 7 3 soros
digitális kimenet 400 ohmos ellenállással 9- EN 1 digitális kimenete
kimenete sorosan 400 ohmos kimenettel A40 soros EN3 ellenállás 11 100 k Ohm potenciométer, 5 V és Gnd
a közepén Ez a potenciométer a motor fordulatszámának és fékezési hangerejének szabályozására szolgál
csatlakoztatva
(lásd az 5. lépést, amit az Ardjuino-hoz írtam, amely tartalmazza a
következő megjegyzéseket: /* 1 bl. .3.) ST L6234 3-fázisú motormeghajtó IC * tárcsahajtású motor óramutató járásával megegyező irányban *
regeneratív fékezéssel * motor fordulatszáma és fékezése
(2, 3, 4 érintkezők) * És ezek
egyetlen potenciométerrel szabályozható * motor helyzete három Hall-effektus érzékelővel *
kombinációját 6 különböző fázisváltó lépésre alakítja át 10 W, 2 M
Az Arduino 3 Hall érzékelő kimenetét kapja
. Megfelel az
9, 1 érintkezőkön
EN
érintkezőkön
szabványnak az
DO
1,2, 3*3
5,6, 7
(IN 1,2,3) * Csatlakoztassa a szimulációt a 0-ban
a potenciométerhez
a PWM munkaciklus megváltoztatásához, és Váltás * a vezetési és a regeneratív
fékezés között * * 0-499: fék * 500- xi- *10-23-as motor
. sorok hibakeresése a soros kapcsolathoz
a fojtószelep rés
beállításának mérésére szolgál (){pinMode(
*/Int allstate1 Változók HallState3 Int HallVal = 1 / Az összes 3
2,INPUT /Hall 2 pinMode) (4,
változó
csarnok érzékelője = 0 / ttle; 0; /Ez a
INPUT/Output of pinMode,PUT); 2 pinMode (7,OUTPUT); /In 3 pinMode (9
; / EN 1 pinMode (10,OUTPUT); /EN
,OUTPUT)
pinMode (11 ,OUTPUT
9600)
2
; If you will be using a serial connection, please uncomment this line. The flush command at the end of the program. /
); /EN 3/serial. begin(
* Set PWM frequency on pins 9, 10 és 11/állítsa be
\
\
számmal
'
a PWM-et 32 kHz-re a 9-es érintkezőknél, a 10/először törölje mind a három előosztó bitet: int prescalerVal = 0x07 /Hozzon létre egy prescalerVal nevű változót, és állítsa egyenlőre a bináris
00000111
'
TCCR1B & =B bináris
a ~
értékkel . \'11111000\'/most
int előkódolási
bit 2 = 1
; / Set prescalerVal egyenlőre a
\'00000001\' TCCR1B =
állítsa be a megfelelő előkódolási bitet:
(ez a program
-ban; PWM 32 kHz-re a 3,11-es érintkezőhöz
prescalerVal2 /vagy00 bináris 0B értékkel a TCCR 0
csak a 11-es tűt használja) /Először törölje mind a három előkaler-bitet: TCCR2B & = ~ Pre-calerval /És a TCCR0B értéke bináris számmal \'11111000\'/now beállítja a megfelelő előkódot:
/
Vagy a TCCR0B bináris számmal \'00000001\'/először törölje a/PRGROM alaphurkát () potenciométer MSPs = térkép ( Throttle, 512,1023
, 0,255) A
-TC2B:-encoding |
2);
/Read input value from Hall 2 3 = Read input value from Hall 3 (8, HallState1
vezetés a potenciométer felső felére van leképezve (
) ; (HallState1)
(4*HallState3) print(\'H 1: \'). Serial.
+
(\'H 3
: \');
print
); Serial. println
Serial. println(HallState3
(\' \'); */ //
Serial. println(mSpeed); //Serial. println
digitalRead ( 2);
(HallVal) ;
//Serial. print(\'\'
); /Monitor transistor output/delay (1000); /* T1 =
= ~T1; T2 = digitalRead (4); //
//T1
T2 = ~T2; T3 = digitalRead (5); //T3 = ~T3; Serial. print(T1); Serial. print(\'\t\'); Serial. print(T2); Serial
. print(\'\t\'); Serial. print(
; Serial .
T3); Serial. print (\'\')
print(\'\');
Serial. print(digitalRead(3)); Serial. print(\'\t\'); Serial. print(digitalRead(9)); Serial. print(\'\t\'); Serial. println(digitalRead(10)); Serial. print(\'\'); Serial. print(\'\'); //delay(500);
*/Fázisváltás vezetése/minden bináris számnak van egy esete, amely megfelel a különböző bekapcsolt tranzisztoroknak/bit matematikai a kimeneti arduino értékének megváltoztatásához: /PORTD tartalmazza az L6234 illesztőprogram IN érintkezőjének kimenetét/az a kimenet, amely annak meghatározására szolgál, hogy a felső tranzisztort vagy az alsó tranzisztort/EN lábat az egyes fázisokhoz az Arduino parancsciklusa vezérli (=50 =50 duuino parancsciklus, állítsa be a PW,
vagy potenciométerrel vezérelhető fojtószelep (fojtószelep > 511){ kapcsoló (HallVal
/
érintkező
ONty2
0-7
A
analógiát
)
{
,
3. eset:/PORTD = 1111xxx00;
várható kimenete a Hall bemenetre vonatkozik
a PORTD & = B00011111 =001.0.0
; //PORTD
(9,mSpeed)
of
B101xxx00; /Expected output
analogWrite(9,0)
/PORTD | = B10100000;
pin 0- 7 PORTD & = B00011111;
; analogWrite
(10,255); analogWrite(11,mSpeed); break; Case
4:/PORTD = B100xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111.
11,255
000 =; analowrite (10,mSpeed 2. eset:/PORTD = B010xxx00 - 7 PORTD,0.0 analógWrite(
) /Regenerative brake phase change/PORTD
érintkezőjének kimenete
(
Az L6234
) A fékezés során csak alacsony
bym0000; // switch (HallVal){ Case 3: analogy
tranzisztorok kerülnek felhasználásra
B00011111; PORTD | =
writing
analogWrite
(
;
(9,bSpeed); //analogWrite(9,0); analogWrite(10,0); analogWrite(11,0); break; Case 1: analogy writing (9,bSpeed)
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 )
Serial
. flush();
; break; }} /Time = millis (); Time after the printing program starts. println(time); //Serial. print(\'\'); //
I
/If you want to debug using a serial port, please uncomment}
A feladat elvégzéséhez mikroprocesszorral az L6234-es feljegyzések egy egyszerű programozható
think the operation that Arduino does in this project is so simple that it seems like
költsége is csak 39 dollárba kerül kitalált néhány viszonylag egyszerű logikai szekvenciát, amelyek az L6234 IC-t
tömböt
ajánlanak ennek az eszköznek a programozásához, de az IC
a három Hall érzékelő kimenetéről vezérelhetik. Az alábbiakban látható az A fokozat
diagramja, valamint mindhárom fokozat igazságtáblázata ( A B és C fázis logikai áramköréhez
a \'nem\' ajtót át kell kapcsolni a \' másik oldalára, vagy az a probléma, hogy ez a 2. szakasz közel van. összeállításához
a legjobb programozható logikai kapunak programozni.