Nuförtiden är entusiaster mycket intresserade av att styra Brushless DC (BLDC)
Jämfört med den traditionella DC-motorn har motorns prestanda förbättrats, energieffektiviteten har också förbättrats, men den är svårare att använda. Många hylla-
produkter finns för detta ändamål.
Till exempel finns det många små BLDC-styrenheter som fungerar mycket bra för RC-flygplan.
För den som vill undersöka kontrollen av BLDC mer på djupet finns det även många olika mikrokontroller och annan elektronisk hårdvara för industriella användare, som vanligtvis har mycket bra dokumentation.
Hittills har jag inte hittat någon heltäckande beskrivning av hur man använder Arduino mikrokontroller för BLDC-kontroll.
Dessutom, om du är intresserad av att göra regenerativ bromsning, eller använda en BLDC för kraftgenerering, har jag inte hittat många produkter som är lämpliga för användning med små motorer, och jag har inte heller fått reda på hur man styr en 3-fasgenerator.
Denna struktur fanns ursprungligen i en berättelse om
realtidsberäkning, jag fortsätter att göra det efter att kursen är över.
Tanken med projektet är att visa en proportionell modell av en hybridbil med svänghjulsenergilagring och regenerativ bromsning.
Motorn som används i projektet är en liten BLDC som rensats upp från den skadade datorns hårddisk.
Den här handboken beskriver hur du använder Arduino-mikrokontrollern och Hall-
Affects-lägessensorer i kör- och regenerativa bromslägen.
Observera att ett besök på oscillisoft är till stor hjälp, om inte nödvändigt, för att slutföra detta projekt.
Om du inte kan komma åt omfånget har jag lagt till några förslag på hur du gör det utan omfattningen (steg 5).
En sak som detta projekt inte bör inkludera i någon egentlig motorstyrenhet är någon säkerhetsfunktion som överströmsskydd.
Det värsta är faktiskt att du bränner ut HD-motorn.
Att implementera överströmsskydd med nuvarande hårdvara är dock inte svårt, och jag kanske kommer att göra det någon gång.
Om du försöker styra en större motor, lägg till överströmsskydd för att skydda din motor och din egen säkerhet.
Jag vill prova att använda den här kontrollern med en större motor som kan göra lite \'riktigt\' arbete men jag har inte rätt än.
Jag märkte att eBay sålde en 86 W bil för ungefär $40.
Ser ut som en bra kandidat.
Det finns också en RC-webbplats som heter \'GoBrushless\' som säljer kit som sätter ihop sina egna BLDC.
Dessa är inte för dyra och det är värt erfarenheten att bygga en.
Observera att det inte finns någon hallsensor för motorn på denna webbplats. Wow!
Att skriva den här strukturen är ett stort jobb.
Jag hoppas att du tycker det är användbart, vänligen kom med dina kommentarer och förslag.
Digital Multimeter (DMM) -
Om din DMM har ett frekvensmätaroscilloskop (
det är bättre att ha minst 2 kanaler)
T8 Torx-drivrutin (
Du behöver en av dem för att öppna en hårddisk).
Det finns en bra järnaffär.
Maskinverkstad och snabb prototyp (
dessa är mycket användbara men jag tror att det här projektet kan göras utan dem).
Material bldc motor magnetisk ring från datorns hårddisk (
Hälften av motorn)
Från en annan hårddisk Flera (3-6)
Det finns en andra liten motor i silverskivan på hårddisken (DC borstad OK)
Gummiband eller (helst)
Den borstlösa DC-motorn med ett handtag med en annan motor elektronisk brödplatta massiv tråd månad Arduino Duemilanove 120 k ohm resist eller sex resist eller 400hm resist eller Poteniometer100 k ohmST mikrokrets L6234 trefasmotordrivenhet IC två 100 uF kondensatorer en 10 nF kondensator en 220 nF kondensator en 1 uF kondensator en 100 uF kondensator tre mottagningsdioder En 2.
Honeywell SS41 SS41 hållare: 5A bipolaruse F 5A
Mike Anton designade och sålde en produkt som kommer att ersätta kraftelektroniken och Hall-sensorkretsarna som jag har visat i den här handboken (
Den styrs med bakpotentialinduktion).
Specifikationer och upphandlingsinformation finns i dessa två länkar: Om du ska göra det här projektet föreslår jag att du tar dig tid att grundligt förstå hur BLDC fungerar och kontrollerar.
Det finns ett stort antal referenser online (
se nedan för några förslag).
Men jag inkluderar några diagram och tabeller i mitt projekt som borde hjälpa dig att förstå.
Här är en lista på de begrepp som jag tror är viktigast för att förstå detta projekt: MOSFET-transistorer 3-fas halvbrygga 6-
3-stegs minskning av meningen
Pulsbreddsmodulering av fasmotor (PWM) Hall-
Mikrochip AVR443: sensorer-generell referens DC-motor Grundprinciper för digitala positionssensorer
Styrning av trefasmotor baserad på likströmsborstlös likströmsmotor BL-styrning
av likströmsborstlös motor BL Flying Star Hall-sensor, en bra video om att städa upp hårddiskmotorn, men författaren verkar köra motorn som en stegmotor och som en stegmotor. En mer specifik referenswebbsida för BLDC på l6234 motordrivenhet IC, inklusive datablad, applikationsnoteringar och köpinformation.
Gratis prov för PM borstlös motordrift för hybridelektriska fordonsapplikationer.
Detta är det enda papper jag hittade som beskriver ordningen för den regenerativa bromsfasändringen.
Detta papper, regenerativ bromsning i elfordon är användbart, jag lånade några siffror från det, men jag tror att det felaktigt beskriver hur regenerering fungerar.
Jag gjorde det här projektet med återvunnen diskdrivemotor eftersom det var lätt att passera och jag gillar att använda en liten lågspänningsmotor för att lära mig sladden som styrs av BLDC och inte orsaka några säkerhetsproblem.
Dessutom blir magnetkonfigurationen av hallsensorn mycket enkel genom att använda magnetringen (rotorn)
från den andra av dessa motorer (se steg 4).
Om du inte vill gå till allt krångel med att installera och kalibrera hallsensorn (steg 5-7)
vet jag att det finns åtminstone några CD/DVD-drivmotorer inbyggda i Hall-sensorn.
För att ge lite vridtröghet till motorn och ge dem lite belastning, satte jag 5 hårddiskar på motorn, limmade försiktigt ihop med lite starkt lim och limmade till motorn (
Detta gjorde svänghjulet i mitt ursprungliga projekt).
Om du ska ta bort motorn från hårddisken behöver du en T8 torx-enhet för att skruva loss höljet (
Vanligtvis finns det två skruvar gömda bakom pinnen i mitten av etiketten)
och invändiga skruvar som håller motorn på plats.
Du måste också ta bort huvudet Reader (
Sound circle executive)
På så sätt kan du ta ut minnesskivan för att nå motorn.
Dessutom behöver du en andra hårddiskmotor för att ta bort rotorn från den motorn (
det finns en magnet inuti).
För att ta isär motorn tog jag tag i rotorn (överst)
Ett skruvstäd till motorn och bände det på statorn (nederst)
De två skruvmejslarna är 180 grader från varandra.
Det är inte lätt att hålla motorn på ett tillräckligt tätt par utan deformation.
Du kanske vill bygga ett trä v-
block som används för detta ändamål.
Jag borrade ett hål i magnetringen på svarven så att den passar bekvämt på toppen av motorn.
Om du inte kan använda svarven kan du fixera den inverterade rotorn på motorn med ett starkt lim.
Bilderna 2 och 3 nedan visar insidan av en av motorerna jag har demonterat.
I den första halvan (rotorn) finns 8 poler (
magnet insvept i plast).
I den andra halvan (statorn)
Det finns 12 slitsar (lindningar).
Var och en av de tre motorfaserna har 4 spår i serie.
Vissa HD-motorer har tre kontakter i botten, en kontakt per fas, och den andra är motorns mittkran (
Där tre steg möts).
I det här projektet krävs ingen mittkran, men den kan komma väl till pass i sensorfri styrning (
jag hoppas kunna släppa en notering om Sensorfri styrning en dag).
Om din motor har fyra kontakter kan du identifiera fasen med ohmmeter.
Motståndet mellan mittuttaget och fasen är hälften av motståndet mellan två olika faser.
Det mesta av litteraturen om BLDC-motorer handlar om de med en stegformad bakpotentialvågform, men hårddiskmotorn verkar ha en bakpotential som ser ut som en sinus (se nedan).
Så vitt jag vet fungerar det bra att köra en sinusvågsmotor med sinusvåg PWM, även om effektiviteten kan sjunka något.
Liksom alla BLDC-motorer består denna av trefas halvtransistorbrygga
(
se andra bilderna nedan).
Jag använder IC från ST Micro (L6234)
för bron, även känd som motordrivaren.
Den elektriska anslutningen av L6234 visas i steg 8.
Det tredje fotot nedan visar ett schematiskt diagram över motordrivaren och de tre motorfaserna.
För att motorn ska fungera medurs görs omkopplaren i följande ordning (
Den första bokstaven är den övre transistorn och den andra bokstaven är den nedre transistorn)
: Steg 1 2 3 4 5 6 medurs: CB, AB, AC, BC, BA, CA moturs: BC, BA, CA, CB, AB, AC dessa
kräver en sekvens av 6-\' 360, men endast en fysisk grad på 90 för dessa motorer.
Därför inträffar rotationshastigheten för varje motor fyra gånger.
De två sekvenserna verkar vara desamma, men de är inte samma eftersom för 6-
stegssekvensen, för CW, är strömriktningen genom fasen en riktning, och för CCW är strömriktningen motsatt.
Du kan se detta själv genom att applicera spänningen från batteriet eller strömförsörjningen till endera motorfas.
Om du lägger på spänningen kommer motorn att röra sig lite åt ena hållet och stanna.
Om du snabbt kan ändra spänningen på fasen i en av ovanstående sekvenser kan du rotera motorn manuellt.
Transistorer och mikrokontroller slutför alla dessa switchar mycket snabbt och byter hundratals gånger per sekund när motorn går med hög hastighet.
Observera också att om spänningen appliceras på båda faserna, rör sig motorn lite och sedan stannar.
Detta beror på att vridmomentet är noll.
Du kan se detta på det fjärde fotot nedan, som visar bakpotentialen för ett par motorfaser.
Detta är en sinusvåg.
När vågen går genom x-
axeln är vridmomentet som tillhandahålls av denna fas noll. I sexstegs
BLDC-fasförändringssekvensen som aldrig hände.
Innan vridmomentet på en viss fas blir lågt, växlas effekten till en annan faskombination.
Större BLDC-motorer tillverkas vanligtvis av Hall-sensorer inuti motorn.
Om du har en sådan motor kan du hoppa över detta steg.
Dessutom vet jag att det finns åtminstone några CD/DVD-drivmotorer inbyggda i Hall-sensorn.
När motorn roterar används tre hallsensorer för positionsdetektering, så fasändringen utförs i rätt ögonblick.
Min HD-motor går upp till 9000 RPM (150 Hz).
Eftersom det är 24 byten per hjul, vid 9000 RPM, byts maskinen var 280:e mikrosekund.
Arduino mikrokontroller fungerar på 16 MHz, så varje klockcykel är 0,06 mikrosekunder.
Jag vet inte hur många klockcykler som krävs för att utföra en minskning av meningen, men även om 100 klockcykler krävs, det vill säga, det tar 5 mikrosekunder för varje minskning av meningen.
HD-motorer har inga Hall-sensorer, så det är nödvändigt att installera dem på utsidan av motorn.
Sensorn måste fixeras i förhållande till motorrotationen och exponeras för en serie poler som överensstämmer med motorrotationen.
Min lösning är att ta bort magnetringen från samma motor och installera den upp och ner på motorn som ska styras.
Jag installerade sedan tre hallsensorer ovanför denna magnetiska ring, 30 grader från varandra på motoraxeln (
120 graders rotation av elmotorn).
Min Hall sensorhållare består av en enkel hållare som består av tre aluminiumdelar bearbetade av mig och tre plastdelar gjorda på en snabb prototyp.
Om du inte har dessa verktyg borde det inte vara svårt att hitta ett annat sätt att ange positionen.
Att skapa konsoler för Hall-sensorer kommer att bli mer utmanande.
Det här är ett möjligt sätt att arbeta: 1.
Hitta en plastbricka av rätt storlek så kan du försiktigt epoxyra hallsensorn. 2.
En mall skrivs ut på papperet, som har samma cirkel som den magnetiska ringens radie, och de tre märkena är 15 grader 3 från varandra.
Limma fast mallen på skivan och använd sedan mallen som en guide för att försiktigt placera hallsensorns epoxi på plats.
Nu när Hall-sensorer är installerade på motorn, anslut dem till kretsen som visas nedan och testa dem med ett DMM eller oscilloskop för att säkerställa att utgången blir högre och lägre när motorn roterar.
Jag kör dessa sensorer under 5 v med Arduinos 5 v-utgång.
Hallsensorn har hög eller låg effekt (1 eller 0)
Det beror på om de känner Antarktis eller Arktis.
Eftersom de är 15 grader ifrån varandra, roterar magneterna under dem och ändrar polariteten var 45:e grader, dessa tre sensorer kommer aldrig att vara höga eller låga samtidigt.
När motorn roterar är sensorutgången 6.
Stegmönstret som visas i följande tabell.
Sensorn måste vara i linje med motorns rörelse så att en av de tre sensorerna ändras exakt vid motorns fasändringsposition.
I detta fall bör den stigande kanten på den första hallsensorn (H1)
överensstämma med öppningen av C-kombinationen (hög) och B (låg).
Detta motsvarar att slå på transistorerna 3 och 5 i bryggkretsen.
Jag riktar in sensorn med magneten med ett oscilloskop.
För att göra detta måste jag använda tre räckviddskanaler.
Jag roterar motorn genom att ansluta till den andra motorns rem och mäter backpotentialen mellan de två faskombinationerna (
A och B, A och C)
Detta är två sinus.
Som vågorna på bilden nedan
Titta sedan på signalen från Hallsensor 2 på kanal 3 i oscilloskopet.
Hallsensorhållaren vrids tills hallsensorns stigande kant är helt i linje med den punkt där fasändringen ska utföras (se nedan).
Jag inser nu att det bara finns två kanaler för att göra samma kalibrering.
Om BEMF för faskombination B-
Använder C, kommer den stigande kanten av H2 att relateras till BC-kurvan.
Anledningen till att fasändringen bör utföras här är att alltid hålla motorns vridmoment så högt som möjligt.
Bakpotentialen är proportionell mot vridmomentet och du kommer att märka att varje fasförändring sker när bakpotentialen passerar under nästa stegskurva.
Därför består det faktiska vridmomentet av den högsta delen av varje faskombination.
Om du inte kan komma åt räckvidden, här är min idé om anpassning.
Detta är faktiskt en intressant övning för alla som vill veta hur BLDC-motorn fungerar.
Om motorn Fas A är ansluten (positiv) och B (negativ)
till strömförsörjningen och slå på strömförsörjningen, kommer motorn att rotera lite och stanna.
Sedan, om den negativa strömkabeln flyttas till C-fasen och strömmen slås på, kommer motorn att vrida ytterligare och stanna.
Nästa del av sekvensen blir att flytta den positiva ledningen till Fas B etc.
När du gör detta stannar motorn alltid där vridmomentet är noll, vilket motsvarar ett ställe där diagrammet passerar genom x-axeln på diagrammet.
Observera att nollpunkten för den tredje faskombinationen motsvarar fasändringspositionen för de två första kombinationerna.
Därför är nollvridmomentpositionen för B-
C-kombinationen där du vill placera den stigande kanten av h2.
Markera denna position med fina märken eller vassa blad och justera sedan hallsensorhållaren med DMM tills uteffekten av H2 är exakt högre på denna markering.
Även om du avviker lite från ditt skolschema bör motorn fungera bra.
De tre motorfaserna kommer att få ström från L6234 trefasmotordrivrutinen.
Jag upptäckte att detta är en bra produkt som kan stå sig över tid.
Det finns många sätt att av misstag steka dina komponenter när du använder kraftelektronik, jag är inte en elingenjör och jag vet inte alltid vad som händer.
I mitt skolprogram gjorde vi vår egen 3-
fas halvbrygga-utgång med 6 MOSFET-transistorer och 6 dioder.
Vi använde detta på HIP4086 från den andra föraren Intersil, men vi har många problem med den här installationen.
Vi brände ett gäng transistorer och chips.
Jag kör L6234 (
Så motorn) på 12V.
L6234 har en ovanlig uppsättning ingångar för att styra en halvbrygga med 6 transistorer.
Inte varje transistor har en ingång, utan en aktiveringsingång (EN)
för vart och ett av de tre stegen, och sedan en annan ingång (IN)
Välj vilken transistor i öppen fas (övre eller nedre).
Slå till exempel på transistor 1 (övre) och 6 (nedre)
Både EN1 och EN3 är höga (
EN2 låg för att hålla scenen stängd)
IN1 hög, IN3 låg.
Detta gör faskombinationen-C.
Medan L6234-anteckningen föreslog att man skulle applicera PWM som används för att styra motorns hastighet på IN-stiftet, bestämde jag mig för att göra det på EN-stiftet eftersom jag vid den tidpunkten tycker att det skulle vara \'konstigt\' att slå på de övre och nedre transistorerna i fasen omväxlande \'.
Det verkar faktiskt som att det inte är något fel med att slå på båda fasens låga potential, så de har samma transistorer vid samma tidpunkt, eftersom de har samma låga potential. ingen
går igenom strömmen Med min metod
förblir
aktiveras och avaktiveras den höga fasen växelvis vid PWM-frekvensen, medan den låga fasen
av dem
Nedan visas ett schema över motordriften, jag har också lagt till en 2. 5 amperes säkring mellan den positiva strömförsörjningen och
på under hela fasbytet.
. Den här siffran är lite liten, så för större versioner, se dokumentationen för L6234, vilket kommer (tror jag) att ersätta det
här spåret och spara dig jobbet med att montera det eltekniker och vi
skulle uppskatta eventuella korrigeringar av
g0-kretsen. krusningen i den regenerativa strömmen
min förklaring Vid körning skickar styrsystemet strömmen i tre
Vid regenerativ bromsning maximerar styrsystemet också vridmomentet
som maximerar vridmomentet
Ett laboratorium som gör
, men den här gången är det ett negativt vridmoment som gör att motorn saktar ner från strömmen till pappret Laboratorium i USA.
motorfaser på ett sätt
mycket forskning för bilmotorer. Diagrammet
möjligt för strömmen att flöda från B till.
nedan kommer från ett annat dokument som hjälper till att illustrera hur det fungerar (Jag tror att förklaringen i detta andra dokument är delvis
felaktig.
är
Det
Transistorn
bra artikel som förklarar hur boost-omvandlaren fungerar).
Denna energi frigörs när low-end-transistorn stängs av, men vid en högre spänning flyter strömmen omedelbart genom \'anti-excitations\'-dioden bredvid varje transistor och går sedan tillbaka till batteriet negativt vridmoment som saktar ner motorn.
på
vid körning, växlar kommuteringen av motorn från en kombination
till
låga
sidan använder en PWM-omkopplare, och arbetscykeln för PWM styr mängden bromsning
nästa i sinom tid för att bibehålla högsta möjliga vridmoment
Jag
första steget, du kan se att den regenerativa bromsen fungerar bra, men den fungerar inte bra.
tror att huvudorsaken är att hårddiskmotorn jag använder är en motor med mycket lågt vridmoment, så den producerar inte mycket BEMF förutom vid den högsta hastigheten,
det finns väldigt lite regenerativ bromsning (om någon ). minskar spänningen med flera volt, detta minskar
också
effektiviteten avsevärt.
Jag använder normala likriktardioder och jag kan få bättre prestanda om jag använder några speciella dioder med lägre spänningsfall.
Nedan finns en lista över ingångar och utgångar på arduino.
3
digitala ingångar-
120 K resistans av Gnd
utgång
motstånd 6 2 Digitala utgångar i serie med 400 ohm motstånd 7
Digital
5 1
i serie med 400 ohm
utgångar i serie med 400 ohm motstånd 9-
3 Digitala
Digital utgång på EN 1 i serie med 400 ohm
i serie motstånd med 400 ohm Digital utgång med EN 402 11-
Den digitala utgången EN 3 är i serie med ett 400 ohm motstånd, 100 k Ohm potentiometer, med 5 v och gnd ansluten i båda ändar och analog stift 0 ansluten i mitten.
bldc_congroller
3.
1.
1*3 av David Glazer
X-serien är ST L6234 3-
fas motordrivenhet IC * kör skivdrivningsmotor medurs * med regenerativ bromsning * motorhastighet och bromsning styrd av en enda potentiometer * motorposition av tre Hall-
effektsensor * Arduino tar emot utsignal från 3 hall- och stiftkombinationer (3,4 stift)
. steg på stift 9, 10, 11 vid 32 kHz * PWM-utgång (
Motsvarar EN 1,2, 3*3 DO på stift 5,6, 7, respektive (IN 1,2,3)
523
*
simuleringen
:
Anslut
i 0 till potentiometern för att ändra PWM-driftcykeln och Ändra * mellan 0-4 regenerativ bromsning och *9 regenerativ
bromsning. 500-
Taxi * 524- 1023: motoring
för
/Hastighetsnivå int bHastighet = 0
* kommenterar många rader för felsökning genom att skriva ut olika värden till en seriell anslutning *
Int allstate1.
/
gas; motor driver (5,OUTPUT);
/In 1 pinMode (6,OUTPUT);
/In 2 pinMode (7,OUTPUT
) ; /
3 pinMode (9,OUTPUT);
/EN
1
please uncomment this line . The
In
pinMode (10,OUTPUT); /EN 2 pinMode (11,OUTPUT); /EN 3/serial. begin(9600); If you will be using a serial connection,
flush command i slutet av programmet
/* Ställ in PWM-frekvensen på stift 9, 10 och 11/
\
ställ in PWM till 32 kHz för stift 9, 10/först rensa alla tre pre-divider-bitar: int prescalerVal = 0x07 Prescaler /Och värdet i TCCR0B med ett binärt nummer på \'11111000\'
/ställ nu in den lämpliga förkodningsbiten: int förkodningsbit 2 = 1
;
'
00000001\'/ställ in PWM till 32 kHz för
stift 3,11 ( Detta program använder endast stift
11) / Rensa alla tre pre-caler-bitar först: TCCR2B
\'00 00 som
& = ~ Pre -calerval /Och värdet
i TCCR0B med ett binärt nummer av
;
ställer in den lämpliga biten:'
/0
| . = Förkodningsbit 2;
TCCR2B
/Eller värdet i TCCR0B med ett binärt nummer av \'00000001\'
/först rensa alla tre förkodade bitar :}
av/PrGROM void loop (){ /Tid = millis (l.'
Den huvudsakliga slingan
);
analogRead (0);
/Throttle potentiometer MSPs = karta ( Throttle, 0,255 ; HallState1 = digitalRead (2); /Read input value from 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
(
har
));
Serial. print(\'\');
påslagna /
Serial. print(\'\'); //delay(500); *
/Driving phase change/each binary number
ett
PORTD innehåller
fall som motsvarar
bitmatte som används för att ändra värdet på utgången arduino: /
stiftet på L6234
-
de olika transistorerna
utgången från IN
-drivrutinen
/ utgången som används
för att bestämma om den övre transistorn eller den nedre transistorn/EN-
stiftet för varje fas styrs av Arduino-kommandoanalogin, ställ in arbetscykeln för PWM, 20
5 =
5
rottle) potentiometer). om (gaspådrag >
511){switch (HallVal){ Fall 3:/PORTD
eller kontrollvärde (
styrvärde
; (High-end transistor)
analogWrite(10,0 Fas B-stängning
= 1111xxx00
( tull = 0)analogWrite(11,255)
;
| = B00100000
/Analowrite (9,mSpeed); PWM
(
on
A phase ( High -end transistor)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 stift 0- 7 PORTD & = B00011111;
PORTD
|. /
Analowrite(11,mSpeed = B110xxx00) (9,255) analogWrite(11,0) analogWrite (11,255); bym0000; // switch (HallVal){
Case 3: analogy writing (9,bSpeed); //analogWrite(9,0);
(10,0); analogWrite(11,0); break; Case 1: analogy writing (9,bSpeed
analogWrite
10
,
); analogWrite(10,0); analogWrite(11,0); break; Case 5: analogy writing (9,0); analogWrite(11,bSpeed skriv (9,0 analogWrite(11,bSpeed skriv(10,0); analogWrite(
bSpeed
the
); analogWrite(11,0); break; }} /Time = millis (); Time after
the
operation
printing program starts. println(time); //Serial. print(\'\'); //Serial. flush(); /
If you want to debug using a serial port, please uncomment} I think
that Arduino does in this project is so simple
that it seems like a waste to do Denna uppgift med en mikroprocessor. I själva verket rekommenderar L6234 en enkel programmerbar gate array (GAL16V8 av Lattice Semiconductor) för att göra detta jobb relativt enkla logiska sekvenser som skulle kunna driva L6234 IC från utgången från de tre hallsensorerna. Tabellen för steg A visas nedan, och sanningstabellen för alla tre stegen (För att logiska kretsen för B- och C-faserna ska kunna kopplas om till andra sidan av \'eller. Problemet med det här tillvägagångssättet är att det finns nästan 2 anslutningar. tillsammans
Det är bäst att programmera den som en programmerbar logisk gate.