nadzor motorja bldc z arduinom, rešen motor HD in Hallovi senzorji
domov » Blog » Krmiljenje motorja bldc z arduinom, obnovljenim motorjem HD in Hallovimi senzorji

nadzor motorja bldc z arduinom, rešen motor HD in Hallovi senzorji

Ogledi: 0     Avtor: Urednik mesta Čas objave: 2020-09-02 Izvor: Spletno mesto

Povprašajte

facebook gumb za skupno rabo
gumb za skupno rabo na Twitterju
gumb za skupno rabo linije
gumb za skupno rabo v wechatu
Linkedin gumb za skupno rabo
gumb za skupno rabo na pinterestu
gumb za skupno rabo WhatsApp
gumb za skupno rabo kakao
gumb za skupno rabo snapchat
gumb za skupno rabo telegrama
deli ta gumb za skupno rabo

Dandanes so navdušenci zelo zainteresirani za krmiljenje brezkrtačnega enosmernega toka (BLDC).
V primerjavi s tradicionalnim enosmernim motorjem se je zmogljivost motorja izboljšala, izboljšala se je tudi energetska učinkovitost, vendar je težje uporabljati. veliko izdelkov, ki so že na polici .
Za ta namen obstaja
Na primer, obstaja veliko majhnih krmilnikov BLDC, ki zelo dobro delujejo na letalih RC.
Za tiste, ki se želite bolj poglobljeno posvetiti krmiljenju BLDC, obstaja tudi veliko različnih mikrokrmilnikov in druge elektronske strojne opreme za industrijske uporabnike, ki imajo običajno zelo dobro dokumentacijo.
Doslej nisem našel nobenega izčrpnega opisa uporabe mikrokrmilnika Arduino za nadzor BLDC.
Tudi, če vas zanima regenerativno zaviranje ali uporaba BLDC za proizvodnjo električne energije, nisem našel veliko izdelkov, primernih za uporabo z majhnimi motorji, niti nisem izvedel, kako krmiliti 3-fazni generator.
Ta struktura je bila prvotno v zgodbi o
računanju v realnem času, s tem nadaljujem tudi po koncu tečaja.
Ideja projekta je prikazati proporcionalni model hibridnega avtomobila s hranilnikom energije na vztrajniku in regenerativnim zaviranjem.
Motor, uporabljen v projektu, je majhen BLDC, očiščen s poškodovanega trdega diska računalnika.
Ta priročnik opisuje, kako uporabljati mikrokrmilnik Arduino in
senzorje položaja Hall-Affects v načinih vožnje in regenerativnega zaviranja.
Upoštevajte, da je obisk oscillisofta zelo koristen, če ne nujen, za dokončanje tega projekta.
Če ne morete dostopati do obsega, sem dodal nekaj predlogov, kako to storiti brez obsega (5. korak).
Ena stvar, ki je ta projekt ne bi smel vključevati v noben dejanski krmilnik motorja, je nobena varnostna funkcija, kot je zaščita pred prenapetostjo.
Pravzaprav je najslabše, da zgori HD motor.
Vendar uvedba prenapetostne zaščite s trenutno strojno opremo ni težka in morda bom to kdaj naredil.
Če poskušate krmiliti večji motor, dodajte zaščito pred preobremenitvijo, da zaščitite svoj motor in lastno varnost.
Rad bi poskusil uporabiti ta krmilnik z večjim motorjem, ki lahko opravi nekaj \'pravega\' dela, vendar še nimam pravega.
Opazil sem, da je eBay prodal 86 W avto za približno 40 $.
Izgleda kot dober kandidat.
Obstaja tudi spletno mesto RC, imenovano \'GoBrushless\', ki prodaja komplete, ki sestavijo lasten BLDC.
Ti niso predragi in je vredno izkušenj, da jih zgradite.
Upoštevajte, da na tem spletnem mestu ni Hallovega senzorja za motor. Vau!
Pisanje te strukture je veliko delo.
Upam, da se vam bo zdelo koristno, napišite svoje komentarje in predloge.
Digitalni multimeter (DMM) –
če ima vaš DMM merilnik frekvence, osciloskop (
bolje je imeti vsaj 2 kanala),
gonilnik T8 Torx (
potrebujete enega od njih, da odprete kateri koli trdi disk).
Obstaja dobra trgovina s strojno opremo.
Strojna delavnica in hitri prototip (
to je zelo koristno, vendar menim, da je ta projekt mogoče narediti brez njih).
Material bldc motor magnetni obroč s trdega diska računalnika (
polovica motorja)
z drugega trdega diska Več (3-6)
Obstaja drugi majhen motor v srebrnem disku na trdem disku (DC krtačen v redu)
Gumijasti trak ali (po možnosti)
brezkrtačni enosmerni motor z ročajem z drugim motorjem elektronska plošča za kruh polna žica mesec Arduino Duemilanove 120 k ohm upor šest do 400 ohm linearni upor ali rotacijski Poteniometer 100 k ohmST mikro vezje L6234 trifazni gonilnik motorja IC dva 100 uF kondenzatorja en 10 nF kondenzator en 220 nF kondenzator en 1 uF kondenzator en 100 uF kondenzator tri sprejemne diode Ena 2.
Honeywell SS411A bipolarna Hall-5 Amp varovalka 1 držalo varovalke 3
Opomba: Mike Anton je zasnoval in prodal izdelek, ki bo nadomestil močnostno elektroniko in vezja Hallovih senzorjev, ki sem jih prikazal v tem priročniku (
nadzira se z indukcijo povratnega potenciala).
Specifikacije in informacije o nabavi najdete na teh dveh povezavah: Če se nameravate lotiti tega projekta, predlagam, da si vzamete čas in temeljito razumete, kako deluje in nadzoruje BLDC.
Na spletu je veliko referenc (
glej spodaj za nekaj predlogov).
Vendar sem v svoj projekt vključil nekaj grafikonov in tabel, ki vam bodo pomagale razumeti.
Tukaj je seznam konceptov, za katere menim, da so najpomembnejši za razumevanje tega projekta: MOSFET tranzistorji, 3-fazni polmost, 6-3
-stopenjsko zmanjšanje stavka,
širinska impulzna modulacija faznega motorja (PWM) Hall-
Microchip AVR443: senzorji - splošna referenca enosmernega motorja Osnovna načela za digitalne senzorje položaja
Krmiljenje trifaznega brezkrtačnega enosmernega motorja na osnovi krmiljenja enosmernega motorja brez krtačk
Fazni nadzor motorja BLDC Hallovega senzorja Flying Star, dober videoposnetek čiščenja motorja trdega diska, vendar se zdi, da avtor poganja motor kot koračni motor in kot koračni motor. Podrobnejša referenčna spletna stran za BLDC na IC motornega pogona l6234, vključno s podatkovnimi listi, opombami o uporabi in informacijami o nakupu.
Brezplačni vzorec za brezkrtačni motorni pogon PM za uporabo v hibridnih električnih vozilih.
To je edini dokument, ki sem ga našel in opisuje vrstni red spremembe faze regenerativnega zaviranja.
Ta prispevek, regenerativno zaviranje v električnih vozilih je koristen, iz njega sem si izposodil nekaj številk, vendar mislim, da napačno opisuje, kako regeneracija deluje.
Ta projekt sem izdelal z motorjem recikliranega diskovnega pogona, ker je bil enostaven za prehod in rad uporabljam majhen nizkonapetostni motor za učenje kabla, ki ga nadzira BLDC, in ne povzroča nobenih varnostnih težav.
Poleg tega postane magnetna konfiguracija Hallovega senzorja zelo preprosta z uporabo magnetnega obroča (rotorja)
iz drugega od teh motorjev (glejte 4. korak).
Če se ne želite ukvarjati z vsemi težavami pri nameščanju in umerjanju Hallovega senzorja (koraki 5–7),
vem, da je vsaj nekaj pogonskih motorjev za CD/DVD vgrajeno v Hallov senzor.
Da bi motorju zagotovil nekaj vrtilne vztrajnosti in jih malo obremenil, sem na motor postavil 5 trdih diskov, ki sem jih nežno zlepil skupaj z malo močnega lepila in prilepil na motor (
To je naredilo vztrajnik v mojem izvirnem projektu).
Če nameravate odstraniti motor s trdega diska, potrebujete pogon T8 torx, da odvijete ohišje (
običajno sta dva vijaka skrita za palico na nalepki središča)
in notranje vijake, ki držijo motor na mestu.
Odstraniti morate tudi čitalnik glave (
izvršilni krog zvoka).
Tako lahko odstranite pomnilniški disk, da dosežete motor.
Poleg tega boste potrebovali še en isti motor trdega diska, da odstranite rotor s tega motorja (
v notranjosti je magnet).
Da bi razstavil motor, sem zgrabil rotor (zgoraj)
Primež motorja in ga dvignil na stator (spodaj).
Dva izvijača sta narazen za 180 stopinj.
Motorja ni enostavno držati na dovolj tesnem paru brez deformacije.
Morda boste želeli zgraditi lesen v-
blok, ki se uporablja za ta namen.
V magnetni obroč na stružnici sem izvrtal luknjo, tako da se udobno prilega vrhu motorja.
Če stružnice ne morete uporabljati, lahko obrnjeni rotor pritrdite na motor z močnim lepilom.
Sliki 2 in 3 spodaj prikazujeta notranjost enega od motorjev, ki sem jih razstavil.
V prvi polovici (rotor) je 8 polov (
magnet ovit v plastiko).
V drugi polovici (stator)
je 12 rež (navitij).
Vsaka od treh faz motorja ima 4 reže v seriji.
Nekateri motorji HD imajo tri kontakte na dnu, en kontakt na fazo, drugi pa je osrednji ventil motorja (
kjer se srečajo tri stopnje).
V tem projektu ni potreben sredinski dotik, lahko pa pride prav pri nadzoru brez senzorjev (
upam, da bom nekega dne izdal opombo o nadzoru brez senzorjev).
Če ima vaš motor štiri kontakte, lahko fazo določite z ohmetrom.
Upor med središčno pipo in fazo je polovica upora med katerima koli dvema fazama.
Večina literature o motorjih BLDC obravnava tiste z valovno obliko povratnega potenciala v obliki lestve, vendar se zdi, da ima motor trdega diska povratni potencial, ki je videti kot sinus (glejte spodaj).
Kolikor vem, pogon sinusnega motorja s sinusnim PWM deluje dobro, čeprav lahko učinkovitost nekoliko pade.
Kot vsi motorji BLDC je tudi ta sestavljen iz trifaznega poltranzistorskega
mostu (
glej 2. fotografiji spodaj).
uporabljam IC proizvajalca ST Micro (L6234) , znan tudi kot gonilnik motorja.
Za most
Električna povezava L6234 je prikazana v koraku 8.
Tretja fotografija spodaj prikazuje shematski diagram gonilnika motorja in treh faz motorja.
Da bi motor deloval v smeri urinega kazalca, bo stikalo izvedeno v naslednjem vrstnem redu (
prva črka je zgornji tranzistor in druga črka je spodnji tranzistor)
: Korak 1 2 3 4 5 6 v smeri urinega kazalca: CB, AB, AC, BC, BA, CA v nasprotni smeri urinega kazalca: BC, BA, CA, CB, AB, AC ti 6-
Zaporedje korakov zahteva \'električno stopinja\' 360, vendar le fizična stopnja 90 za te motorje.
Zato se hitrost vrtenja vsakega motorja pojavi štirikrat.
Zdi se, da sta zaporedji enaki, vendar nista enaki, ker je za 6-
stopenjsko zaporedje, za CW, smer toka skozi fazo enosmerna, za CCW pa je trenutna smer nasprotna.
To lahko vidite sami, tako da napetost akumulatorja ali napajalnika priključite na fazo motorja.
Če vključite napetost, se bo motor nekoliko premaknil v eno smer in se ustavil.
Če lahko hitro spremenite napetost na fazi v enem od zgornjih zaporedij, lahko motor zavrtite ročno.
Tranzistorji in mikrokrmilniki dokončajo vsa ta stikala zelo hitro in se preklopijo več stokrat na sekundo, ko motor deluje pri visoki hitrosti.
Upoštevajte tudi, da če napetost deluje na obe fazi, se motor malo premakne in nato ustavi.
To je zato, ker je navor enak nič.
To lahko vidite na spodnji četrti fotografiji, ki prikazuje zadnji potencial para motornih faz.
To je sinusni val.
Ko gre val skozi x-
gred, je navor, ki ga zagotavlja ta faza, enak nič. V šeststopenjskem
zaporedju faznih sprememb BLDC, ki se nikoli ni zgodilo.
Preden navor v določeni fazi postane nizek, se moč preklopi na drugo kombinacijo faz.
Večje BLDC motorje običajno proizvajajo Hallovi senzorji v motorju.
Če imate tak motor, lahko ta korak preskočite.
Prav tako vem, da je vsaj nekaj pogonskih motorjev za CD/DVD vgrajeno v že Hallov senzor.
Ko se motor vrti, se za zaznavanje položaja uporabljajo trije Hallovi senzorji, tako da se menjava faze izvede v pravem trenutku.
Moj HD motor deluje do 9000 vrt/min (150 Hz).
Ker je pri 9000 obratih na minuto 24 menjav na kolo, se stroj zamenja vsakih 280 mikrosekund.
Mikrokrmilnik Arduino deluje pri 16 MHz, tako da je vsak takt 0,06 mikrosekund.
Ne vem, koliko urnih ciklov je potrebnih za izvedbo zmanjšanja stavka, toda tudi če je potrebnih 100 taktov, to pomeni, da traja 5 mikrosekund za vsako zmanjšanje stavka.
HD motorji nimajo Hallovih senzorjev, zato jih je potrebno namestiti na zunanjo stran motorja.
Senzor mora biti fiksiran glede na vrtenje motorja in izpostavljen nizu polov, ki so skladni z vrtenjem motorja.
Moja rešitev je odstraniti magnetni obroč z istega motorja in ga namestiti na glavo na motor, ki ga želite krmiliti.
Nato sem namestil tri Hallove senzorje nad tem magnetnim obročem, 30 stopinj drug od drugega na gred motorja (
120 stopinj vrtenja elektromotorja).
Moje držalo Hall senzorja je sestavljeno iz preprostega držala, sestavljenega iz treh aluminijastih delov, ki sem jih obdelal sam, in treh plastičnih delov, narejenih na hitrem prototipu.
Če teh orodij nimate, ne bi smelo biti težko najti drugega načina za označevanje položaja.
Izdelava nosilcev za Hallove senzorje bo zahtevnejša.
To je možen način dela: 1.
Poiščite plastični pladenj prave velikosti in previdno z epoksidom prekrijte Hallov senzor. 2.
Na papir je natisnjena predloga, ki ima enak krog kot polmer magnetnega obroča, tri oznake pa so 15 stopinj 3 narazen.
Prilepite predlogo na disk in nato uporabite predlogo kot vodilo za previdno namestitev epoksida Hallovega senzorja na mesto.
Zdaj, ko so Hallovi senzorji nameščeni na motorju, jih priključite na spodaj prikazano vezje in jih preizkusite z uporabo digitalnega multimetra ali osciloskopa, da se prepričate, ali bo izhodna vrednost med vrtenjem motorja vedno večja in nižja.
Te senzorje poganjam pod 5 V z uporabo 5 V izhoda Arduino.
Hallov senzor ima visok ali nizek izhod (1 ali 0).
Odvisno je od tega, ali čutijo Antarktiko ali Arktiko.
Ker so med seboj oddaljeni 15 stopinj, se magneti vrtijo pod njimi in spreminjajo polariteto vsakih 45 stopinj, ti trije senzorji ne bodo nikoli visoko ali nizko hkrati.
Ko se motor vrti, je izhod senzorja 6-
Vzorec korakov je prikazan v naslednji tabeli.
Senzor mora biti usklajen z gibanjem motorja, tako da se eden od treh senzorjev spremeni natančno na položaju spremembe faze motorja.
V tem primeru mora biti naraščajoči rob prvega Hallovega senzorja (H1)
skladen z odprtino kombinacije C (visoko) in B (nizko).
To je enakovredno vklopu tranzistorjev 3 in 5 v mostnem vezju.
Z osciloskopom poravnam senzor z magnetom.
Da bi to naredil, moram uporabiti tri kanale obsega.
Motor zavrtim tako, da ga povežem z jermenom drugega motorja in izmerim povratni potencial med dvema kombinacijama faz (
A in B, A in C).
To sta dva sinusa.
Kot valovi na spodnji sliki.
Nato poglejte signal Hallovega senzorja 2 na kanalu 3 osciloskopa.
Nosilec Hallovega senzorja se obrača, dokler ni naraščajoči rob Hallovega senzorja popolnoma poravnan s točko, kjer naj se izvede fazna sprememba (glejte spodaj).
Zdaj se zavedam, da obstajata samo dva kanala za isto kalibracijo.
Če je BEMF fazne kombinacije B-
z uporabo C, bo naraščajoči rob H2 povezan s krivuljo BC.
Razlog, zakaj je treba tukaj izvesti menjavo faze, je, da je navor motorja vedno čim višji.
Povratni potencial je sorazmeren z navorom in opazili boste, da do vsake fazne spremembe pride, ko povratni potencial preide pod krivuljo naslednje stopnje.
Zato je dejanski navor sestavljen iz najvišjega dela vsake fazne kombinacije.
Če ne morete dostopati do obsega, je tukaj moja ideja o poravnavi.
To je pravzaprav zanimiva vaja za vse, ki želijo vedeti, kako deluje motor BLDC.
Če sta faza A motorja (pozitivna) in B (negativna) priključena
na napajanje in vklopite napajanje, se bo motor malo zavrtel in ustavil.
Nato, če se negativni napajalni kabel premakne v fazo C in se napajanje vklopi, se bo motor vrtel naprej in ustavil.
Naslednji del zaporedja bo premik pozitivnega kabla v fazo B itd.
Ko to storite, se motor vedno ustavi, kjer je navor enak nič, kar ustreza enemu mestu, kjer diagram poteka skozi os x na diagramu.
Upoštevajte, da ničelna točka kombinacije tretje faze ustreza položaju spremembe faze prvih dveh kombinacij.
Zato je položaj ničelnega navora B-
kombinacija C tam, kjer želite postaviti naraščajoči rob h2.
Označite ta položaj s finimi oznakami ali ostrimi rezili in nato nastavite držalo Hallovega senzorja z uporabo DMM, dokler ni izhod H2 natančno višji na tej oznaki.
Tudi če malo odstopate od šolskega urnika, mora motor dobro delovati.
Trifazni motor bo prejemal napajanje iz gonilnika trifaznega motorja L6234.
Ugotovil sem, da je to dober izdelek, ki zdrži preizkus časa.
Obstaja veliko načinov, kako pomotoma pokvariti svoje komponente pri uporabi močnostne elektronike. Nisem elektrotehnik in ne vem vedno, kaj se dogaja.
V mojem šolskem programu smo naredili lasten 3-
fazni polmostni izhod s 6 MOSFET tranzistorji in 6 diodami.
To smo uporabili na HIP4086 drugega gonilnika Intersil, vendar imamo s to nastavitvijo veliko težav.
Zažgali smo kup tranzistorjev in čipov.
Poganjam L6234 (
torej motor) pri 12 V.
L6234 ima nenavaden nabor vhodov za krmiljenje pol-mosta 6 tranzistorjev.
Vsak tranzistor nima vhoda, ampak omogoči (EN)
vhod za vsako od treh stopenj in nato še en vhod (IN).
Izberite, kateri tranzistor je v odprti fazi (zgornji ali spodnji).
Na primer, vklopite tranzistor 1 (zgornji) in 6 (spodnji).
Tako EN1 kot EN3 sta visoka (
EN2 nizka, da ostane stopnja zaprta)
IN1 Visoka, IN3 nizka.
To naredi fazno kombinacijo-C.
Medtem ko je opomba o aplikaciji L6234 predlagala uporabo PWM, ki se uporablja za krmiljenje hitrosti motorja, na zatič IN, sem se odločil, da to naredim na zatiču EN, ker takrat mislim, da bi bilo \'čudno\' izmenično vklopiti zgornje in spodnje tranzistorje faze \'.
Pravzaprav se zdi, da ni nič narobe, če vklopite nizke tranzistorje obeh faz hkrati, ker imata enak potencial, tako da nobeden od njih ne prehaja skozi tok.
Pri moji metodi je visoka faza izmenično omogočena in onemogočena pri frekvenci PWM, medtem ko nizka faza ostane vklopljena med celotno spremembo faze.
Spodaj sem dodal pin povezavo na ploščo Arduino. Dodal sem tudi 2,5
ampersko varovalko med pozitivnim vodnikom baterije in vezjem, kondenzator 100 uF med napajalnikom in maso. za zmanjšanje valovanja v regenerativnem toku.
Za večje različice si oglejte dokumentacijo za L6234
, ki bo (verjamem)
zamenjala to stezo in vam prihranila delo pri sestavljanju
Med
vožnjo
Nisem elektroinženir in bi bili veseli kakršnih koli popravkov moje razlage.
krmilni sistem pošilja tok v tri faze motorja tako, da poveča
navor pri regenerativnem zaviranju, vendar je tokrat negativni navor, ki povzroči upočasnitev motorja, medtem ko pošilja tok nazaj v akumulator
Laboratorij v Združenih državah Amerike.
regenerativnega zaviranja, nizkocenovni tranzistorji se hitro
Spodnja tabela pomaga ponazoriti, kako deluje (
vendar menim, da je razlaga, podana v tem drugem dokumentu, delno napačna). V tem primeru
ko je nizkocenovni tranzistor vklopljen, tok teče, kot je prikazano na prvi sliki). faza motorja ( Wikipedia ima dober članek, ki pojasnjuje, kako deluje ojačevalni
je možno, da tok teče od B do
Ta energija se sprosti,
vklopijo (na tisoče tranzistorskih stikal je izklopljeno;
pretvornik).
ko je nizkocenovni tranzistor izklopljen
, vendar tok takoj teče skozi \
'protivzbujevalno\' diodo poleg vsakega tranzistorja in se nato vrne v baterijo. Dioda preprečuje, da bi tok tekel iz baterije v motor magnetni obroč za upočasnitev motorja .
Delovni cikel PWM nadzoruje količino zaviranja.
Preklapljanje motorja sčasoma preklopi z enega možnega navora Oglejte si videoposnetek v prvem koraku, lahko vidite, da regenerativna zavora deluje dobro, vendar mislim, da je glavni razlog
motor z zelo
Poleg tega moj sistem deluje pri relativno nizki napetosti (12 V
če sploh) .
nizkim navorom, tako da ne proizvaja veliko BEMF, razen
). zmanjša napetost za nekaj voltov. Uporabljam običajne usmerniške diode in morda
pri najvišji hitrosti,
je zelo malo regenerativnega zaviranja (
dobim boljše delovanje, če uporabim nekaj posebnih
diod z nižjim padcem napetosti. Spodaj je seznam vhodov in izhodov na moji plošči. vhod- 120 K upornost Gnd 5 1 digitalni izhod v seriji z uporom 400 ohmov 6 2 digitalna izhoda v seriji z
uporom 400 ohmov 7 3 digitalni izhodi
v seriji z uporom 400 ohmov 9- digitalni izhod EN 1 v seriji z uporom 400 ohmov 10- digitalni izhod EN 2 v seriji s 400 ohmi upor 11 - Digitalni izhod EN 3 je v seriji z
krmiljenje hitrosti motorja in zavorne glasnosti.
zatičem 0. Ta potenciometer se uporablja za
Tukaj je celoten program,
sem ga napisal za Ardjuino komentarji: /*
analognim
uporom 400 ohmov, potenciometrom 100 k ohmov, na obeh koncih priključenim
Hallovih senzorjev se uporablja tudi 5 V.
Za zagon
ki
1. 1*3 Davida Glazerja.
bldc_congroller 3.
Serija X je
3-
fazni gonilnik motorja ST L6234 * motor diskovnega pogona v smeri urinega
kazalca * z regenerativnim zaviranjem *
en sam potenciometer * položaj motorja s tremi Hallovimi senzorji * Arduino prejema izhode iz 3 Hallovih senzorjev (pins 2,3,4) * In pretvori njihovo kombinacijo v 6 različnih korakov spreminjanja faze na zatičih
hitrost motorja in zaviranje, ki jih nadzira
(
9, 10, 11 pri 32 kHz * Izhod PWM (Ustreza EN 1,2, 3*3 DO na zatičih 5,6, 7 oziroma
499
0-
IN 1,2,3) * Povežite simulacijo v 0 s potenciometrom, da spremenite delovni cikel PWM in spremenite * med vožnjo in regenerativnim zaviranjem *. *
:
zavora *
1023:
524-
HallState3;
Raven zavore za plin = 0; /Ta
Komentarji za odpravljanje napak v serijski povezavi . */Int allstate1; int
Int HallVal = 1; MSPs = 0; /
spremenljivka se uporablja skupaj z nastavitvijo razmika potenciometra za plin (){pinMode(2,INPUT); /Hall 2 pinMode (4
,INPUT) ; /
);
/IN pinMode (7,OUTPUT);
L6234 gonilnik pinMode (5,OUTPUT
11,OUTPUT); Če boste uporabljali serijsko povezavo, odkomentirajte ta ukaz na koncu programa. /* Nastavite frekvenco PWM na nožice
/EN 2 pinMode (
9, 10/
\ '
vse tri preddelilnike bitov: /Ustvarite spremenljivko, imenovano prescalerVal binarno število \'00000111
TCCR1B & = ~ Prescaler /In vrednost v TCCR0B
nastavite
\'11111000 \'/zdaj nastavite
predkodiranje bit 2 = 1 ; /Nastavite
z binarnim številom
ustrezen predkodirani bit : int
prescalerVal na enako binarnemu številu \'00000001\' TCCR1B |. = prescalerVal2;
/nastavite PWM na 32 kHz za pin 3,11 (Ta program uporablja samo Pin 11) /Najprej počistite vse tri bite pre-calerval
/Ali vrednost v TCCR0B z binarnim številom \'00000001\'
; /In vrednost v TCCR0B binarno število \'11111000\'/zdaj nastavite ustrezen bit predkodiranja:
TCCR2B | = bit predkodiranja 2;
/Ali vrednost v TCCR0B z binarnim številom \'00000001\'/
){ /Čas = millis (); čas po zagonu programa za tiskanje (\'\ '); /potenciometer za
najprej počistite vse tri predkodirane bite :}
Glavna zanka prazne zanke/PRGROM (
plin (512,1023, 0,255); /vožnja je preslikana na zgornjo polovico potenciometra 0,511,255, 0); /Polovično regenerativno
zaviranje na dnu potnika/MSPs ed
= 100;
dvorane 1 2 =
digitalno branje (4);
/Branje vhodne vrednosti iz
(8, HallState1);
branje vhodne vrednosti iz dvorane 3
/ Ko je
ustrezni senzor vklopljen, se prvotno uporablja
za odpravljanje napak v HallState2); //digitalWrite (10,HallState3)
+ (4*HallState3); Serial println(HallState2) Serial println(mSpeed). 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
; Serial. print(T1); Serial. print(\'\t\'); Serial. print(T2); Serial. print(\'\t\');
. 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(\'\'); //zakasnitev(500);vsako binarno število ustreza različnim vklopljenim tranzistorjem/bitna matematika, ki se uporablja za spreminjanje izhoda IN na gonilniku L6234. zgornji tranzistor/
spodnji pin za vsako fazo je krmiljen z analogijo ukaza Arduino, nastavite delovni cikel PWM (0 = IZKLOP, 255 = VKLOP ali vrednost plina, ki jo nadzira potenciometer).{stikalo (HallVal){ Primer 3:/PORTD = 1111xxx00; 7 xxx se nanaša na vhod PORTD in PORTD | 100 % (low-end tranzistor) Case 1: /Pričakovan izhod
Analowrite (9,mSpeed); //Phase B on (Low-end tranzistor)analogWrite( 11,0); //Phase
B00100000; /
pin 0-7
PORTD & =
PORTD = B101xxx00; /
B (duty = 0)break; Case 5:/
Pričakovani
izhod pin 0-7 PORTD & = B10100000; analogWrite (9,0
); analogWrite(10,255); analogWrite(11,mSpeed);
;
Case 4:/PORTD = B100xxx00;
/Expected output of pin 0-
7 PORTD & =
B00011111; PORTD | =
(9,255)
break
bym000; /Analowrite
; analogWrite(10,0); analogWrite(11,mSpeed); break;
Case 6:/PORTD =
/
PORTD & = B0001111;
AnalogWrite(11,0); Case 2:/PRICAT=B010xxx00 0- 7 PORTD;
(11,255 )
/ Analowrite
;regenerative brake change
/PORTD
(izhodi na pinu L6234) regen. braking. else{ /PORTD = B000xxx00
;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD | = bym0000; // switch
analogy writing (9,bSpeed);
(HallVal){ Case 3:
//
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(
;
break;
11,bSpeed)
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 odpravljanje napak z uporabo serijskih vrat, prosim odkomentirajte.}
Mislim, da je operacija, ki jo izvaja Arduino v tem projektu, tako preprosta, da se zdi potrata, če bi to nalogo opravili z mikroprocesorjem.
Pravzaprav je v opombah o aplikaciji L6234
za opravljanje tega dela priporočeno preprosto programabilno polje vrat (GAL16V8).
Nisem seznanjen s programiranjem te naprave, vendar je cena IC samo 2 USD. 39.
Druga podobna integrirana vezja so tudi zelo poceni.
Izmislil
sem nekaj sorazmerno preprostih logičnih sekvenc, ki bi lahko vodile L6234 izhodnih senzorjev.
Spodaj je prikazana tabela resnice za vse tri faze (
da bi bilo logično vezje faz \'not\' preklopljeno na drugo). stran \'ali.
Težava s tem pristopom je, da je na vsaki stopnji skoraj 20 povezav, zato je potrebno kar nekaj dela, da se ga sestavi.
Najbolje je, da ga programirate kot programabilna logična vrata.

Skupina HOPRIO, profesionalni proizvajalec krmilnikov in motorjev, je bila ustanovljena leta 2000. Sedež skupine je v mestu Changzhou, provinca Jiangsu.

Hitre povezave

Kontaktirajte nas

WhatsApp: +86 18921090987 
Tel.: +86- 18921090987 
E-pošta:
Copyright © 2024 ChangZhou Hoprio E-Commerce Co., Ltd. Vse pravice pridržane. Zemljevid spletnega mesta | Politika zasebnosti