bldc motorvezérlés arduino-val, megmentett hd motorral és Hall érzékelőkkel
Otthon » Blog » bldc motorvezérlés arduino-val, megmentett HD motorral és Hall érzékelőkkel

bldc motorvezérlés arduino-val, megmentett hd motorral és Hall érzékelőkkel

Megtekintések: 0     Szerző: Site Editor Közzététel ideje: 2020-09-02 Eredet: Telek

Érdeklődni

Facebook megosztás gomb
Twitter megosztás gomb
vonalmegosztás gomb
wechat megosztási gomb
linkedin megosztás gomb
pinterest megosztási gomb
WhatsApp megosztási gomb
kakao megosztás gomb
snapchat megosztási gomb
táviratmegosztó gomb
oszd meg ezt a megosztási gombot

Manapság a rajongók nagyon érdeklődnek 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 megvizsgálni a BLDC vezérlését, számos különféle mikrokontroller és egyéb elektronikus hardver 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ágnesgyű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 egyenáramú motor fogantyúval másik motorral elektronikus kenyérlap tömör huzal 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 Honeywell bipoláris tartó Hall 2. 3
Megjegyzés: Mike Anton tervezett és értékesített egy 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 szeretné 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 a projekt 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: érzékelők - á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 szenzor 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ákat.
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ő beszerelé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ítsam a motornak, és egy kis terhelést adjak, 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 motort a helyén tartják.
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ése érdekében 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ó.
Néhány HD motornak három érintkezője van az alján, egy érintkező fázisonként, 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 csatlakoztatá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ően 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)
: Lépés 1 2 3 4 5 6 ó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\ ezeket\'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 mikrokontrollerek nagyon gyorsan végrehajtják ezeket a kapcsolásokat, másodpercenként több százszor kapcsolnak át, 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 megmunkált alumínium részből és három, gyors prototípuson készült műanyag ré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 vagy oszcilloszkóp segítségével, 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 fér hozzá a hatókörhöz, itt van 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 bekapcsolják, 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 helyzetének.
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 magasabbra nem kerül ezen a jelzésen.
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 bemeneti készlettel 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 szolgáló 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, ha 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 letiltjuk a PWM frekvencián, míg az alacsony fázis bekapcsolva marad a teljes fázisváltás alatt,
az Arduino kártyához hozzáadtam a tűs csatlakozást.
A pozitív akkuvezeték és az áramkör között egy 5 amperes biztosítékot 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,
amely (azt hiszem)
kicseréli ezt a pályát, és megtakarítja az összeszerelést
(
,
helyesbítés a magyarázatomhoz,
a vezérlőrendszer úgy küldi az áramot, hogy maximalizálja a forgatónyomatékot
de ez egy negatív nyomaték, ami miatt a motor visszaküldi az akkumulátort Az alábbi táblázat egy másik dokumentumból származik, amely bemutatja, hogyan működik (azonban a második cikkben leírt magyarázatok részben helytelenek, mert az ábrán a BEMF feszültsége felfelé és lefelé ingadozik). fékezés, a low-end tranzisztorok gyorsan kapcsolnak be és kikapcsolnak
ha
a high-end tranzisztor
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ő \'
PWM kapcsolót
diódán az egyes tranzisztorok mellett A tranzisztor
használ, és a PWM működési ciklusa 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 nagyon
- Hall 1 120 K ellenállása Gnd 3 Digitális bemeneti csarnok 2
alacsony nyomatékú, ezért nem termel túl sok BEMF-et, kivéve a legnagyobb fordulatszámon Használjon normál egyenirányító diódákat, és jobb teljesítményt érhetek el, ha alacsonyabb feszültségeséssel rendelkező diódákat használok. Az alábbiakban az arduino bemeneteinek és kimeneteinek listája található.
2-
Digitális
120 K ellenállása 1-es
digitális kimenet 1
belépő
. 400 ohmos ellenállással 6 2 soros digitális kimenet 400 ohmos ellenállással 7 3 soros digitális kimenet 400 ohmos ellenállással 9- EN 1
digitális kimenete sorosan 400 ohmos ellenállással 10- EN 2 digitális kimenete soros 400 ohmos kimenettel A
-es csarnokban
Ez a potenciométer a motor fordulatszámának és a fékezési hangerőnek a szabályozására szolgál (lásd az 5.
400 ohm-os EN3 ellenállás 40 100 k Ohm potenciométer, 5 V és Gnd csatlakoztatva a közepén
/* 1 bl. .3.)
lépést, amit az Ardjuino-
potenciométerrel szabályozható * motor helyzete
hoz írtam,
amely tartalmazza a következő megjegyzéseket:
regeneratív fékezéssel * motor fordulatszáma és fékezése
ST L6234 3-fázisú motormeghajtó IC * lemezmeghajtó motor óramutató járásával megegyező irányban *
három Hall-effektus érzékelővel * Az Arduino 3
érzékelő
Hall
kimenetét kapja
egyetlen
(2, 3, 4 láb) * És ezek kombinációját 6
különböző fázisváltó lépésre alakítja át 10 W, 2 M 9,1 érintkezőkön
Megfelel
szimulációt a 0-ban a potenciométerhez a
az EN 1,2, 3*3 DO-nak az 5,6, 7 érintkezőkön
PWM munkaciklus megváltoztatásához, és Váltás * a vezetési és a visszatápláló fékezés között * * 0-499: fék * 500-
(IN 1,2,3) * Csatlakoztassa a
megjegyzés .
xi-*23-53
Ez a változó a fojtószelep
sorok hibakeresése a soros kapcsolathoz 0; /
résbeállításának mérésére szolgál (){pinMode(2,INPUT) 2
pinMode (7,OUTPUT); /In 3 pinMode
(9,OUTPUT); /EN 1 pinMode (
10, OUTPUT
); / EN
using
a serial connection, please uncomment this line. The
; /EN 3/serial. begin(9600); If you will be
2 pinMode (11,OUTPUT)
* Set PWM frequency on pins 9, 10 és 11 /
-re a 9
flush command at the end of the program. /
10
állítsa be a PWM-et 32 kHz
-es érintkezőknél,
/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 számmal \'00000111\' a ~ TCCR1B & =B
bináris
Set prescalerVal egyenlőnek a
értékkel. \'11111000\'/most állítsa be a megfelelő előkódolási bitet: int előkódolási bit 2 = 1
/
Ez a program csak a
0B értékkel; PWM 32 kHz-re a 3,11 érintkezőhöz (
\'00000001\' TCCR1B = prescalerVal2 /vagy00 bináris TCCR
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ő pre-kódolást
() potenciométer MSPs = térkép
(
Throttle, 512,1023, 0,255) A vezetés
:-TC2B | /Vagy a TCCR0B bináris számmal \'00000001\'/először törölje a/PRGROM-ot
2);
/Read input value from Hall 2 3 = Read input value from Hall 3 (8, HallState1); (HallState1)+
a potenciométer felső felére van leképezve (
(2*HallState3
Serial. print(\'H 3: \'); Serial.
println (
/3 HallState /* sorozat
)
bináris értékeinek kiszámítása
(\' \');
HallState3); Serial. println
*/
//Serial. println(mSpeed);
//Serial. println(HallVal);
//
Serial. print(\'\') ;
/Monitor transistor output/delay (1000); /* T1 = digitalRead (2);
= ~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(
(\'\'
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(\'\'); //delay(500);
*/Fázisváltás meghajtása/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/a kimenet annak meghatározásához, hogy a felső tranzisztort vagy az alsó tranzisztort/EN lábat az egyes fázisokhoz az Arduino parancsciklusa vezérli (a
PW, ONty2 analógia = 50, állítsa be a
eset :/
/A 0-7 érintkező várható kimenete
a Hall bemenetre vonatkozik
PORTD = 1111xxx00;
> 511){Switch (HallVal){ 3.
PW
, ONty2 analógiát vagy potenciométerrel vezérelt fojtószelep (fojtószelep
0 0.1.0
, a PORTD &
= B00011111 =
pin 0-
7 PORTD &
=
(9,mSpeed); //PORTD B101xxx00; /Expected output
of
B00011111; /PORTD |
= B10100000; analogWrite(9,0); analogWrite(10,255); analogWrite(11,mSpeed); break;
Case 4:/PORTD
/Expected output
= B100xxx00;
analowrite (10,mSpeed
érintkezőjének
of pin 0-
7 PORTD & = B00011111. 000 =;
0;
analógWrite(11,255
2. eset: / PORTD = B010xx00; = B0001111 ;
kimenete ) A fékezés során csak
Case
Az L6234
) /Regenerative brake phase change/PORTD (
3: analogy writing (9,bSpeed)
tranzisztorok kerülnek felhasználásra B00011111; PORTD | = bym0000; // switch (HallVal){
alacsony
;
//analogWrite(9,0); analogWrite(10,0); analogWrite(11,0); break; Case 1: analogy writing (9,bSpeed);
analogWrite(
analogWrite
;
(
10,0)
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
(); Time after the printing program starts. println(time); //Serial. print(\'\'); //Serial. flush(); /If you want
to
think the operation that Arduino does in this project is so simple that it seems like Ez
debug using a serial port, please uncomment}
a feladat egy mikroprocesszorral való feladat. Valójában az L6234
I
is csak 39 dollárba kerül kitalált néhány viszonylag egyszerű logikai szekvenciát, amelyek az L6234 IC-t
programozható kaputömböt
ajánlják ennek az eszköznek a programozásához, de az IC költsége
a három Hall érzékelő kimenetéről vezérelhetik. Az alábbiakban látható az A szakasz 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 a 2-es szakaszban nagyon közel van a probléma. összeállításához
a legjobb programozható logikai kapunak programozni.

A HOPRIO csoport a vezérlők és motorok professzionális gyártója, 2000-ben alakult. A csoport központja Changzhou városában, Jiangsu tartományban található.

Gyors linkek

Lépjen kapcsolatba velünk

WhatsApp: +86 18921090987 
Tel: +86- 18921090987 
Cím: No.19 Mahang South Road, Wujin High-tech District, Changzhou City, Jiangsu tartomány, Kína 213167
Hagyj üzenetet
KAPCSOLATOT
Copyright © 2024 ChangZhou Hoprio E-Commerce Co., Ltd. Minden jog fenntartva. Webhelytérkép | Adatvédelmi szabályzat