bldc motorkontroll med arduino, berget hd-motor og hallsensorer
Hjem » Blogg » bldc motorkontroll med arduino, berget hd-motor og hallsensorer

bldc motorkontroll med arduino, berget hd-motor og hallsensorer

Visninger: 0     Forfatter: Nettstedredaktør Publiseringstid: 2020-09-02 Opprinnelse: nettsted

Spørre

Facebook delingsknapp
twitter-delingsknapp
linjedelingsknapp
wechat-delingsknapp
linkedin delingsknapp
pinterest delingsknapp
whatsapp delingsknapp
kakao delingsknapp
snapchat delingsknapp
telegramdelingsknapp
del denne delingsknappen

I dag er entusiaster veldig interessert i å kontrollere Brushless DC (BLDC)
Sammenlignet med den tradisjonelle DC-motoren har ytelsen til motoren blitt bedre, energieffektiviteten har også blitt bedre, men den er vanskeligere å bruke. Mange hyllevarer
finnes for dette formålet.
For eksempel er det mange små BLDC-kontrollere som fungerer veldig bra for RC-fly.
For de som ønsker å se nærmere på kontrollen av BLDC, finnes det også mange forskjellige mikrokontrollere og annen elektronisk maskinvare for industrielle brukere, som vanligvis har meget god dokumentasjon.
Så langt har jeg ikke funnet noen utfyllende beskrivelse av hvordan man bruker Arduino mikrokontroller for BLDC-kontroll.
Dessuten, hvis du er interessert i å drive med regenerativ bremsing, eller bruke en BLDC for kraftproduksjon, har jeg ikke funnet mange produkter som egner seg for bruk med små motorer, og jeg har heller ikke funnet ut om hvordan man kontrollerer 3-fase generator.
Denne strukturen var opprinnelig i en historie om
sanntidsberegning, det fortsetter jeg med etter at kurset er over.
Ideen med prosjektet er å vise en proporsjonal modell av en hybridbil med svinghjulsenergilagring og regenerativ bremsing.
Motoren som ble brukt i prosjektet er en liten BLDC-er som er ryddet opp fra den skadede datamaskinens harddisk.
Denne håndboken beskriver hvordan du bruker Arduino-mikrokontrolleren og Hall-
Affects-posisjonssensorene i kjøre- og regenerativ bremsemodus.
Vær oppmerksom på at å besøke oscillisoft er svært nyttig, om ikke avgjørende, for å fullføre dette prosjektet.
Hvis du ikke får tilgang til omfanget, har jeg lagt til noen forslag til hvordan du gjør det uten omfanget (trinn 5).
En ting som dette prosjektet ikke bør inkludere i noen faktiske motorkontroller er noen sikkerhetsfunksjoner som overstrømsbeskyttelse.
Faktisk er det verste at du brenner ut HD-motoren.
Imidlertid er det ikke vanskelig å implementere overstrømsbeskyttelse med gjeldende maskinvare, og kanskje jeg vil gjøre det på et tidspunkt.
Hvis du prøver å kontrollere en større motor, vennligst legg til overstrømsbeskyttelse for å beskytte motoren din og din egen sikkerhet.
Jeg vil prøve å bruke denne kontrolleren med en større motor som kan gjøre noe \'ekte\' arbeid, men jeg har ikke den rette ennå.
Jeg la merke til at eBay solgte en 86 W bil for rundt $40.
Ser ut som en god kandidat.
Det er også et RC-nettsted kalt \'GoBrushless\' som selger sett som setter sammen sine egne BLDC.
Disse er ikke for dyre, og det er verdt opplevelsen å bygge en.
Vær oppmerksom på at det ikke er noen hallsensor for motoren på denne nettsiden. Huff!
Å skrive denne strukturen er en stor jobb.
Jeg håper du finner det nyttig, vennligst kom med kommentarer og forslag.
Digital Multimeter (DMM) -
Hvis DMM har et frekvensmåler oscilloskop (
det er bedre å ha minst 2 kanaler)
T8 Torx-driver (
Du trenger en av dem for å åpne en harddisk).
Det er en god jernvarehandel.
Maskinverksted og rask prototype (
disse er veldig nyttige, men jeg tror dette prosjektet kan gjøres uten dem).
Materiale bldc motor magnetisk ring fra datamaskinens harddisk (
Halvparten av motoren)
Fra en annen harddiskFlere (3-6)
Det er en andre liten motor i sølvskiven på harddisken (DC børstet OK)
Gummibånd eller (fortrinnsvis)
Den børsteløse DC-motoren med et håndtak med en annen motor elektronisk brødplate solid wire month the Arduino Duemilanove 120 k resistor seks ohm resist eller 400hm resist. Poteniometer100 k ohmST mikrokrets L6234 trefase motordriver IC to 100 uF kondensatorer en 10 nF kondensator en 220 nF kondensator en 1 uF kondensator en 100 uF kondensator tre mottaksdioder En 2.
Honeywell SS41 SS41 holder: 5A bipolaruse f.
Mike Anton designet og solgte et produkt som vil erstatte kraftelektronikken og Hall-sensorkretsene jeg har vist i denne håndboken (
den styres ved hjelp av tilbakepotensialinduksjon).
Spesifikasjoner og innkjøpsinformasjon finner du i disse to lenkene: Hvis du skal gjøre dette prosjektet, foreslår jeg at du tar deg tid til å forstå hvordan BLDC fungerer og kontrollerer.
Det finnes et stort antall referanser på nettet (
se nedenfor for noen forslag).
Imidlertid inkluderer jeg noen diagrammer og tabeller i prosjektet mitt som skal hjelpe deg å forstå.
Her er en liste over konseptene som jeg tror er viktigst for å forstå dette prosjektet: MOSFET-transistorer 3-fase halvbro 6-
3-trinns reduksjon av setning
Pulsbreddemodulasjon av fasemotor (PWM)Hall-
Mikrobrikke AVR443: sensorer-generell referanse DC-motor Grunnprinsipper for Digitale posisjonssensorer
Styring av trefase-basert børsteløs DC-motor regulering av DC-motor
DCbrusemotor Phase Flying Star Hall-sensor, en god video av å rydde opp i harddiskmotoren, men forfatteren ser ut til å kjøre motoren som en trinnmotor og som en trinnmotor. En mer spesifikk referansenettside for BLDC på l6234 motordrivkretsen, inkludert datablad, applikasjonsnotater og kjøpsinformasjon.
Gratis prøve for PM børsteløs motordrift for hybridelektriske kjøretøyapplikasjoner.
Dette er det eneste papiret jeg fant som beskriver rekkefølgen av den regenerative bremsefaseendringen.
Dette papiret, regenerativ bremsing i elektriske kjøretøy er nyttig, jeg lånte noen tall fra det, men jeg tror det feilaktig beskriver hvordan regenerering fungerer.
Jeg gjorde dette prosjektet med resirkulert diskstasjonsmotor fordi det var lett å passere gjennom, og jeg liker å bruke en liten lavspentmotor for å lære ledningen kontrollert av BLDC og ikke forårsake noen sikkerhetsproblemer.
I tillegg blir magnetkonfigurasjonen til hallsensoren veldig enkel ved å bruke den magnetiske ringen (rotoren)
Fra den andre av disse motorene (Se trinn 4).
Hvis du ikke vil gå til alt bryet med å installere og kalibrere hallsensoren (trinn 5-7)
vet jeg at det er i det minste noen CD/DVD-stasjonsmotorer innebygd i Hall-sensoren.
For å gi litt dreietreghet til motoren og gi dem litt belastning, satte jeg 5 harddisker på motoren, limte forsiktig sammen med litt sterkt lim og limte til motoren (
Dette gjorde svinghjulet i mitt originale prosjekt).
Hvis du skal fjerne motoren fra harddisken, trenger du en T8 torx-stasjon for å skru av huset (
Vanligvis er det to skruer gjemt bak pinnen i sentermerket)
og interne skruer som holder motoren på plass.
Du må også fjerne hodet Reader (
Sound circle executive)
På denne måten kan du ta ut minnedisken for å nå motoren.
I tillegg trenger du en annen harddiskmotor for å fjerne rotoren fra den motoren (
det er en magnet inni).
For å ta motoren fra hverandre tok jeg tak i rotoren (øverst)
En skrustikke på motoren og lirket den på statoren (nederst)
De to skrutrekkerne er 180 grader fra hverandre.
Det er ikke lett å holde motoren på et tett nok par uten deformasjon.
Det kan være lurt å bygge en v-
blokk av tre som brukes til dette formålet.
Jeg boret et hull i magnetringen på dreiebenken slik at den passer komfortabelt på toppen av motoren.
Hvis du ikke kan bruke dreiebenken, kan du feste den omvendte rotoren på motoren med et sterkt lim.
Bildene 2 og 3 nedenfor viser interiøret i en av motorene jeg har demontert.
I første halvdel er det (rotoren) 8 poler (
magnet pakket inn i plast).
I andre halvdel (statoren)
Det er 12 spor (viklinger).
Hver av de tre motorfasene har 4 spor i serie.
Noen HD-motorer har tre kontakter i bunnen, en kontakt per fase, og den andre er senterkranen til motoren (
hvor tre trinn møtes).
I dette prosjektet kreves det ingen senterkran, men det kan komme godt med i sensorfri kontroll (
jeg håper å slippe et notat om Sensorfri kontroll en dag).
Hvis motoren din har fire kontakter, kan du identifisere fasen med ohmmeter.
Motstanden mellom sentertappen og fasen er halvparten av motstanden mellom to faser.
Det meste av litteraturen om BLDC-motorer omhandler de med en stigeformet bakpotensialbølgeform, men harddiskmotoren ser ut til å ha et bakpotensiale som ser ut som en sinus (se nedenfor).
Så vidt jeg vet fungerer det fint å kjøre en sinusbølgemotor med sinusbølge-PWM, selv om effektiviteten kan falle noe.
Som alle BLDC-motorene består denne av trefase halvtransistorbro
(
se andre bilder nedenfor).
Jeg bruker IC laget av ST Micro (L6234)
for broen, også kjent som motordriveren.
Den elektriske tilkoblingen til L6234 er vist i trinn 8.
Det tredje bildet nedenfor viser et skjematisk diagram av motordriveren og de tre motorfasene.
For at motoren skal fungere med klokken, vil bryteren gjøres i følgende rekkefølge (
Den første bokstaven er den øvre transistoren og den andre bokstaven er den nedre transistoren)
: Trinn 1 2 3 4 5 6 med klokken: CB, AB, AC, BC, BA, CA mot klokken: BC, BA, CA, CB, AB, AC disse
krever 6- The trinnsekvensen av'' 360, men bare en fysisk grad på 90 for disse motorene.
Derfor oppstår rotasjonshastigheten til hver motor fire ganger.
De to sekvensene ser ut til å være de samme, men de er ikke de samme fordi for 6-
trinns sekvens, for CW, er strømretningen gjennom fasen én retning, og for CCW er strømretningen motsatt.
Du kan se dette selv ved å legge spenningen til batteriet eller strømforsyningen på begge motorfasene.
Hvis du legger på spenningen, vil motoren bevege seg litt i én retning og stoppe.
Hvis du raskt kan endre spenningen på fasen i en av sekvensene ovenfor, kan du rotere motoren manuelt.
Transistorer og mikrokontrollere fullfører alle disse bryterne veldig raskt, og bytter hundrevis av ganger per sekund når motoren går med høy hastighet.
Vær også oppmerksom på at hvis spenningen påføres begge fasene, beveger motoren seg litt og stopper deretter.
Dette er fordi dreiemomentet er null.
Du kan se dette på det fjerde bildet nedenfor, som viser bakpotensialet til et par motorfaser.
Dette er en sinusbølge.
Når bølgen går gjennom x-
Shaft, er dreiemomentet gitt av denne fasen null. I seks-
trinns BLDC faseendringssekvens som aldri skjedde.
Før dreiemomentet på en bestemt fase blir lavt, byttes effekten til en annen fasekombinasjon.
Større BLDC-motorer produseres vanligvis av Hall-sensorer inne i motoren.
Hvis du har en slik motor, kan du hoppe over dette trinnet.
Dessuten vet jeg at det i det minste er noen CD/DVD-stasjonsmotorer innebygd i Hall-sensoren.
Når motoren roterer brukes tre hallsensorer for posisjonsdeteksjon, slik at faseendringen utføres i riktig øyeblikk.
Min HD-motor går opp til 9000 RPM (150 Hz).
Siden det er 24 endringer per hjul, ved 9000 RPM, skiftes maskinen hvert 280 mikrosekund.
Arduino-mikrokontrolleren fungerer på 16 MHz, så hver klokkesyklus er 0,06 mikrosekunder.
Jeg vet ikke hvor mange klokkesykluser som kreves for å utføre en reduksjon av setningen, men selv om det kreves 100 klokkesykluser, det vil si at det tar 5 mikrosekunder for hver reduksjon av setningen.
HD-motorer har ikke Hall-sensorer, så det er nødvendig å installere dem på utsiden av motoren.
Sensoren må festes i forhold til motorrotasjonen og eksponeres for en rekke poler som er i samsvar med motorrotasjonen.
Min løsning er å fjerne magnetringen fra samme motor og installere den opp ned på motoren som skal styres.
Jeg installerte deretter tre hallsensorer over denne magnetringen, 30 grader fra hverandre på motorakselen (
120 graders elektrisk motorrotasjon).
Min Hall sensorholder består av en enkel holder som består av tre aluminiumsdeler bearbeidet av meg og tre plastdeler laget på en rask prototype.
Hvis du ikke har disse verktøyene, bør det ikke være vanskelig å finne en annen måte å angi posisjonen på.
Å lage braketter for Hall-sensorer vil være mer utfordrende.
Dette er en mulig måte å jobbe på: 1.
Finn et plastbrett av riktig størrelse og du kan forsiktig epoksyere hallsensoren. 2.
Det skrives ut en mal på papiret, som har samme sirkel som den magnetiske ringradiusen, og de tre merkene er 15 grader 3 fra hverandre.
Lim malen til disken og bruk deretter malen som en veiledning for å forsiktig plassere hallsensor-epoksyen på plass.
Nå som Hall-sensorer er installert på motoren, koble dem til kretsen vist nedenfor og test dem med et DMM eller oscilloskop for å sikre at utgangen blir høyere og lavere ettersom motoren roterer.
Jeg kjører disse sensorene under 5 v ved å bruke Arduinos 5 v-utgang.
Hall-sensoren har høy eller lav effekt (1 eller 0)
Det avhenger av om de føler Antarktis eller Arktis.
Siden de er 15 grader fra hverandre, roterer magnetene under dem og endrer polariteten hver 45. grader, disse tre sensorene vil aldri være høye eller lave samtidig.
Når motoren roterer, er sensorutgangen 6.
Trinnmønsteret vist i følgende tabell.
Sensoren må justeres etter bevegelsen til motoren slik at en av de tre sensorene endres nøyaktig ved motorens faseendringsposisjon.
I dette tilfellet bør den stigende kanten på den første hallsensoren (H1)
stemme overens med åpningen av C-kombinasjonen (høy) og B (lav).
Dette tilsvarer å slå på transistor 3 og 5 i brokretsen.
Jeg justerer sensoren med magneten med et oscilloskop.
For å gjøre dette må jeg bruke tre kanaler med omfang.
Jeg roterer motoren ved å koble til beltet til den andre motoren og måler tilbakepotensialet mellom de to fasekombinasjonene (
A og B, A og C)
Dette er to sinus.
Som bølgene på bildet under
Se så på signalet til Hallsensor 2 på kanal 3 i oscilloskopet.
Hallsensorholderen dreies til den stigende kanten av hallsensoren er helt på linje med punktet der faseendringen skal utføres (se nedenfor).
Jeg innser nå at det bare er to kanaler for å gjøre samme kalibrering.
Hvis BEMF av fasekombinasjon B-
Ved bruk av C, vil den stigende kanten til H2 være relatert til BC-kurven.
Grunnen til at faseendringen bør utføres her er å alltid holde motormomentet så høyt som mulig.
Bakpotensialet er proporsjonalt med dreiemomentet, og du vil legge merke til at hver faseendring skjer når ryggpotensialet passerer under neste trinnskurve.
Derfor består det faktiske dreiemomentet av den høyeste delen av hver fasekombinasjon.
Hvis du ikke får tilgang til omfanget, her er ideen min om justering.
Dette er faktisk en interessant øvelse for alle som vil vite hvordan BLDC-motoren fungerer.
Hvis motoren fase A er koblet (positiv) og B (negativ)
til strømforsyningen og slå på strømforsyningen, vil motoren rotere litt og stoppe.
Deretter, hvis den negative strømledningen flyttes til C-fasen og strømmen slås på, vil motoren dreie videre og stoppe.
Neste del av sekvensen vil være å flytte den positive ledningen til Fase B osv.
Når du gjør dette stopper motoren alltid der momentet er null, noe som tilsvarer ett sted hvor diagrammet går gjennom x-aksen på kartet.
Legg merke til at nullpunktet til tredjefasekombinasjonen tilsvarer faseendringsposisjonen til de to første kombinasjonene.
Derfor er nullmomentposisjonen til B-
C-kombinasjonen der du vil plassere den stigende kanten til h2.
Merk denne posisjonen med fine merker eller skarpe kniver, og juster deretter hallsensorholderen ved hjelp av DMM til utgangen til H2 er nøyaktig høyere på dette merket.
Selv om du avviker litt fra skoleplanen din, bør motoren fungere bra.
De tre motorfasene vil motta strøm fra L6234 trefasemotordriveren.
Jeg fant ut at dette er et godt produkt som tåler tidens tann.
Det er mange måter å steke komponentene dine ved et uhell når du bruker kraftelektronikk, jeg er ikke en elektrisk ingeniør og jeg vet ikke alltid hva som skjer.
I skoleprogrammet mitt gjorde vi vår egen 3-
fase halvbro-utgang på 6 MOSFET-transistorer og 6 dioder.
Vi brukte dette på HIP4086 til den andre driveren Intersil, men vi har mange problemer med dette oppsettet.
Vi brente en haug med transistorer og brikker.
Jeg kjører L6234 (
Så motoren) på 12V.
L6234 har et uvanlig sett med innganger for å kontrollere en halvbro med 6 transistorer.
Ikke hver transistor har en inngang, men en aktiveringsinngang (EN)
for hvert av de tre trinnene, og deretter en annen inngang (IN)
Velg hvilken transistor i åpen fase (øvre eller nedre).
Slå for eksempel på transistor 1 (øvre) og 6 (nedre)
Både EN1 og EN3 er høye (
EN2 lav for å holde scenen lukket)
IN1 Høy, IN3 lav.
Dette gjør fasekombinasjonen-C.
Mens L6234-applikasjonsnotatet foreslo å bruke PWM-en som ble brukt til å kontrollere hastigheten på motoren til IN-pinnen, bestemte jeg meg for å gjøre det på EN-pinnen fordi jeg på det tidspunktet synes det ville være \'merkelig\' å slå på de øvre og nedre transistorene i fasen vekselvis \'.
Faktisk ser det ut til at det ikke er noe galt med å skru på begge potensialet, så de har samme transistorer på samme tidspunkt, fordi de har samme tid
på samme tid. ingen av dem går gjennom strømmen Med min metode er den
et skjema over motordriften, jeg har også lagt til en 2. 5
høye fasen aktivert og deaktivert vekselvis ved PWM-frekvens, mens lavfasen forblir på under hele faseskiftet.
er
Nedenfor
ampere sikring mellom den positive strømforsyningen og g10-kretsen.
Dette tallet er litt lite, så for større versjoner, se dokumentasjonen for L6234.
dette sporet og spare deg for jobben
Merk: Mike Anton har laget PCB for L6234, som vil (tror jeg) erstatte
krusningen i den regenerative strømmen
med å sette sammen det elektroingeniør og vi vil sette pris på eventuelle rettelser til min forklaring Ved kjøring sender styresystemet strømmen inn i tre motorfaser på en måte
regenerativ bremsing maksimerer styresystemet
som maksimerer dreiemomentet Ved
strømmen å flyte fra
også dreiemomentet, men denne gangen er det et
negativt dreiemoment som får motoren til å bremse ned mens den sender strømmen tilbake til eiken Laboratory in the United States S. govt. det er mulig for
B
til.
Kritisk til regenerativ bremsing, lav-ende transistorer slås på og av raskt (
Tusenvis av PWM-brytere per sekund
Når high-end transistoren er slått
på, flyter strømmen som vist på det første bildet.
negativt
god artikkel som forklarer hvordan boost-omformeren fungerer).
Denne energien frigjøres når low-end-transistoren er slått av, men ved en høyere spenning flyter strømmen øyeblikkelig gjennom \'anti-eksitasjonsdioden\' ved siden av hver transistor og går deretter tilbake til batteriet
. Transistoren på
kommuteringen
kjører , skifter
dreiemoment som bremser motoren
lav side bruker en PWM-bryter, og driftssyklusen til PWM styrer bremsingen når du
av motoren fra en kombinasjon til den neste for å opprettholde høyest mulig dreiemoment første trinn, du kan se at
den regenerative bremsen
fungerer bra, men den fungerer ikke bra.
Jeg tror hovedårsaken er at harddiskmotoren jeg bruker er en motor med veldig lavt dreiemoment, så den produserer ikke mye BEMF bortsett fra ved den høyeste hastigheten
, er det veldig lite regenerativ bremsing (hvis noen ).
jeg
reduserer spenningen med flere volt, dette reduserer også effektiviteten
bruker vanlige likeretterdioder, og jeg kan få bedre ytelse hvis jeg bruker noen spesielle dioder med lavere spenningsfall.
Nedenfor er en liste over innganger og utganger på arduino.
3
digitale innganger-
120 K motstand av Gnd 5 1 Digital utgang i serie med 400 ohm motstand 6 2
Digitale utganger i serie med
400 ohm motstand 7
3 Digitale
100
utganger i serie med 400 ohm
motstand 9- Digital utgang på EN 1
i serie med 400 ohm i seriemotstand på 400 Digital utgang
11- Den digitale utgangen EN 3 er i serie med en 400 ohm motstand ,
på 402
k Ohm potensiometer, med 5 v og gnd tilkoblet i begge ender og analog pinne 0 tilkoblet i midten.
Dette potensiometeret brukes til å kontrollere motorhastighet og bremsevolum.
kjører skivedrivmotor
bldc_congroller 3. 1.
1*3 av David Glazer
X-serien er ST L6234 3- fase motordriver IC *
med klokken * med regenerativ bremsing * motorhastighet og bremsing kontrollert av et enkelt potensiometer * motorposisjon av tre Hall-
effektsensor * Arduino mottar utgang fra 3-fase
-kombinasjon til 3, 4-sensorer. trinn på pinnene 9, 10, 11 ved 32 kHz * PWM-utgang (
Tilsvarende EN 1,2, 3*3 DO på henholdsvis pinnene 5,6, 7 (IN 1,2,3)
Koble simuleringen i 0 til potensiometeret for å endre PWM-driftsyklusen og Skift * mellom 9 brems- * 9 regenerativ bremsing og * 9.
500- 523
: Taxi * 524-
1023: motoring * kommenterer mange linjer for
*/Int allstate1
*
. /
feilsøking ved å skrive ut forskjellige verdier til en seriell tilkobling
Speed level int bSpeed = 0 for motor;
level of throttle = 0
/Denne variabelen brukes sammen med den analoge inn for å måle posisjonen til spaltepotensiometeret (){pinMode(2,INPUT
/
Brems
Hall 1
pinMode (3,INPUT/Hall 2P
/4PUT); motor driver
/
(5,OUTPUT);
/In 1 pinMode (6,OUTPUT);
/In 2 pinMode (7,OUTPUT); /
a
The
In 3 pinMode (9,OUTPUT); /EN 1 pinMode (10,OUTPUT); /EN 2 pinMode (11,OUTPUT); /EN 3/serial. begin(9600); If you will be using
serial connection, please uncomment this line.
flush command på slutten av
= 0x07 Prescaler
pinnene 9, 10 og 11/sett PWM til 32 kHz for pinnene 9, 10
programmet /* Sett PWM-frekvensen på
/først fjern alle tre pre-divider-bitene: int pre-scalerVal
/Og verdien i TCCR0B med et binært tall på \'11111000\'/sett nå den passende pre-encoding biten: int pre-encoding bit 2 = 1; \'00000001\'/
/Slett alle tre pre-caler bits først: TCCR2B & =
sett PWM til 32 kHz for pin 3,11 (
)
Dette programmet bruker bare pin
11
~ Pre-calerval /Og verdien
biten
i TCCR0B med et binært tall på \'000 som setter den passende
.
:'/0; TCCR2B |
= Pre-encoding bit 2; /Eller
verdien i TCCR0B med et binært tall på \'00000001'
millis (
/t.'
/først tøm alle tre forhåndskodede biter :} Hovedsløyfen i/Tid =
);
analogRead (0); /Throttle potensiometer MSPs (Throttle, 512,1023, 0,255); HallState1 = digitalRead (2)
; /Les inngangsverdi fra Hall
1 2 = Digital Read (3). HallVal = (HallState1)+ (4*HallState3); 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
change/each binary
(\'\'); Serial. print(\'\'); //delay(500); */Driving phase
number
har
utgangen
et
tilfelle som tilsvarer de forskjellige transistorene slått på/bit matematikk som brukes til å endre verdien
til
på utgangs-arduino: /PORTD inneholder
5
OFF
5
=
ON
kontrollverdi
(rottle = 5 potensiometer). hvis (gass
IN-pinnen på L6234-driveren/utgangen som brukes til å bestemme om den øvre transistoren eller den nedre transistoren/EN-pinnen for hver fase styres av Arduino-kommandoanalogien, sett driftssyklusen til PWM, rottle =
511
)
{Switch (HallVal){
:/
>
Case
PORTD = 1111xxx00; (High-end transistor) analogWrite
3
(10,0) Phase B closure
)
(duty = 0
= B00100000;
analogWrite(11,255) |
/ Analowrite (9,mSpeed)
on A phase ( High-end transistor)
;
PWM
analogWrite(10,255); //Phase B on ( Low-end transistor)analogWrite(11,0); //Phase B off (duty = 0)break; Case 5:
PORTD
/
=
B101xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD |.
/Analowrite(11,mSpeed = B110xxx00) (9,255); analogWrite (11,255); 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(11,bSpeed skriving (9,0 analogWrite
Time = millis ()
(11,bSpeed skriving, 10,0); analogWrite(10,bSpeed); analogWrite(11,0); break;
}} /
; Time after the printing program starts. println(time); //Serial. print(\'\'); //Serial. flush(); /
If you want to
debug using a serial
port, please uncomment} I think the operation that Arduino does in this project is
so simple that it seems like a waste to do denne oppgaven med
en mikroprosessor.
Faktisk anbefaler L6234 en enkel programmerbar gate-array (GAL16V8 laget av Lattice Semiconductor ) for å gjøre denne
jobben, men kostnaden for IC er bare 39 dollar sammen med en annen logg relativt enkle logiske sekvenser
som kan drive L6234 IC fra utgangen til de
tre hallsensorene. Diagrammet for trinn A er vist nedenfor, og sannhetstabellen for alle tre trinn (For at den logiske kretsen til B- og C-fasene skal kunne byttes til den andre siden av \'eller. Problemet med denne tilnærmingen er at det er nesten 2 koblinger. sammen
Det er best å programmere det som en programmerbar logisk port.

HOPRIO-gruppen, en profesjonell produsent av kontroller og motorer, ble etablert i 2000. Gruppens hovedkontor i Changzhou City, Jiangsu-provinsen.

Hurtigkoblinger

Kontakt oss

WhatsApp: +86 18921090987 
Tlf: +86- 18921090987 
Legg til: No.19 Mahang South Road, Wujin High-tech District, Changzhou City, Jiangsu-provinsen, Kina 213167
Legg igjen en melding
KONTAKT OSS
Copyright © 2024 ChangZhou Hoprio E-Commerce Co., Ltd. Med enerett. Sitemap | Personvernerklæring