bldc-motorbeheer met arduino, geredde HD-motor en saalsensors
Tuis » Blog » bldc-motorbeheer met arduino, herstelde HD-motor en saalsensors

bldc-motorbeheer met arduino, geredde HD-motor en saalsensors

Kyke: 0     Skrywer: Werfredakteur Publiseertyd: 2020-09-02 Oorsprong: Werf

Doen navraag

Facebook-deelknoppie
Twitter-deelknoppie
lyn deel knoppie
wechat-deelknoppie
linkedin-deelknoppie
pinterest-deelknoppie
whatsapp deel knoppie
kakao-deelknoppie
snapchat-deelknoppie
telegram deel knoppie
deel hierdie deelknoppie

Deesdae stel entoesiaste baie belang in die beheer van Brushless DC (BLDC)
In vergelyking met die tradisionele DC-motor het die werkverrigting van die motor verbeter, energiedoeltreffendheid het ook verbeter, maar dit is moeiliker om te gebruik. Baie van die
rak produkte bestaan ​​vir hierdie doel.
Daar is byvoorbeeld baie klein BLDC-beheerders wat baie goed werk vir RC-vliegtuie.
Vir diegene wat die beheer van die BLDC in meer diepte wil ondersoek, is daar ook baie verskillende mikrobeheerders en ander elektroniese hardeware vir industriële gebruikers, wat gewoonlik baie goeie dokumentasie het.
Tot dusver het ek geen omvattende beskrywing gevind van hoe om Arduino-mikrobeheerder vir BLDC-beheer te gebruik nie.
Ook, as jy belangstel om regeneratiewe rem te doen, of 'n BLDC vir kragopwekking te gebruik, het ek nie baie produkte gevind wat geskik is vir gebruik met klein motors nie, en ek het ook nie uitgevind hoe om 3-Fase kragopwekker te beheer nie.
Hierdie struktuur was oorspronklik in 'n storie oor intydse
berekening, ek gaan voort om dit te doen nadat die kursus verby is.
Die idee van die projek is om 'n proporsionele model van 'n hibriede motor met vliegwielenergieberging en regeneratiewe rem te wys.
Die motor wat in die projek gebruik word, is 'n klein BLDC's wat van die beskadigde rekenaarhardeskyf skoongemaak is.
Hierdie handleiding beskryf hoe om die Arduino-mikrobeheerder en Hall-
Affekte-posisiesensors in ry- en regeneratiewe remmodusse te gebruik.
Neem asseblief kennis dat die besoek van oscillisoft baie nuttig is, indien nie noodsaaklik nie, om hierdie projek te voltooi.
As jy nie toegang tot die omvang kan kry nie, het ek 'n paar voorstelle bygevoeg oor hoe om dit sonder die omvang te doen (stap 5).
Een ding wat hierdie projek nie in enige werklike motorbeheerder moet insluit nie, is enige veiligheidsfunksie soos oorstroombeskerming.
Trouens, die ergste is dat jy die HD-motor uitbrand.
Die implementering van oorstroombeskerming met huidige hardeware is egter nie moeilik nie, en miskien sal ek dit een of ander tyd doen.
As jy probeer om 'n groter motor te beheer, voeg asseblief oorstroombeskerming by om jou motor en jou eie veiligheid te beskerm.
Ek wil probeer om hierdie beheerder te gebruik met 'n groter motor wat 'n paar \'regte\' werk kan doen, maar ek het nog nie die regte een nie.
Ek het opgemerk dat eBay 'n 86 W-motor vir sowat $40 verkoop het.
Lyk na 'n goeie kandidaat.
Daar is ook 'n RC-webwerf genaamd \'GoBrushless\' wat stelle verkoop wat hul eie BLDC saamstel.
Dit is nie te duur nie en dit is die ervaring werd om een ​​te bou.
Neem asseblief kennis dat daar geen saalsensor vir die motor op hierdie webwerf is nie. Sjoe!
Die skryf van hierdie struktuur is 'n groot taak.
Ek hoop jy vind dit nuttig, maak asseblief jou kommentaar en voorstelle.
Digitale multimeter (DMM) -
As jou DMM 'n frekwensiemeter-ossilloskoop het (
dit is beter om ten minste 2 kanale te hê)
T8 Torx-bestuurder (
Jy het een van hulle nodig om enige hardeskyf oop te maak).
Daar is 'n goeie hardewarewinkel.
Masjienwerkswinkel en vinnige prototipe (
Dit is baie nuttig, maar ek dink hierdie projek kan daarsonder gedoen word).
Materiaal bldc motor magnetiese ring vanaf rekenaar hardeskyf (
Helfte van die motor)
Vanaf 'n ander hardeskyf Verskeie (3-6)
Daar is 'n tweede klein motortjie in die silwer skyf op die hardeskyf (DC geborsel OK)
Rubberband of (verkieslik)
Die borsellose DC motor met 'n handvatsel met 'n ander motor elektroniese broodplaat soliede draad maand die Arduino Duemilanove 120 ohm resistor of ses ohm resistor of ses ohm resistant Poteniometer100 k ohmST mikrostroombaan L6234 driefase motoraandrywer IC twee 100 uF kapasitors een 10 nF kapasitor een 220 nF kapasitor een 1 uF kapasitor een 100 uF kapasitor drie ontvangsdiodes Een 2.
Honeywell SS41 houer F 5A
SS41 Mike Anton het 'n produk ontwerp en verkoop wat die kragelektronika en Hall-sensorkringe wat ek in hierdie handleiding gewys het, sal vervang (
Dit word beheer deur terugpotensiaal-induksie).
Spesifikasies en verkrygingsinligting kan in hierdie twee skakels gevind word: As jy hierdie projek gaan doen, stel ek voor dat jy die tyd neem om deeglik te verstaan ​​hoe die BLDC werk en beheer.
Daar is 'n groot aantal verwysings aanlyn (
Sien hieronder vir 'n paar voorstelle).
Ek sluit egter 'n paar kaarte en tabelle by my projek in wat jou behoort te help verstaan.
Hier is 'n lys van die konsepte wat ek dink die belangrikste is om hierdie projek te verstaan: MOSFET-transistors 3-fase halfbrug 6-
3-stap vermindering van sin
Polswydte Modulasie van fasemotor (PWM) Hall-
Mikroskyfie AVR443: sensors-algemene verwysing GS-motor Basiese Beginsels vir Digitale posisiesensors
Beheer van driefase-motor-borsellose GS-motorbeheer van PhaDC-motor-
beheer van GS-motor BL. Flying Star Hall-sensor, 'n goeie video van die skoonmaak van die hardeskyfmotor, maar dit lyk of die skrywer die motor as 'n stapmotor en as 'n stapmotor laat loop. 'n Meer spesifieke verwysingswebblad vir die BLDC op die l6234-motoraandrywing-IC, insluitend datablaaie, toepassingsnotas en aankoopinligting.
Gratis monster vir PM-borsellose motoraandrywing vir hibriede elektriese voertuigtoepassings.
Dit is die enigste vraestel wat ek gevind het wat die volgorde van die regeneratiewe remfase-verandering beskryf.
Hierdie vraestel, regeneratiewe rem in elektriese voertuie is nuttig, ek het 'n paar nommers daaruit geleen, maar ek dink dit beskryf verkeerdelik hoe regenerasie werk.
Ek het hierdie projek met herwinde skyfaandrywingmotor gedoen omdat dit maklik was om deur te gaan en ek hou daarvan om 'n klein laespanningmotor te gebruik om die koord te leer wat deur BLDC beheer word en geen veiligheidsprobleme veroorsaak nie.
Daarbenewens word die magneetkonfigurasie van die saalsensor baie eenvoudig deur die magnetiese ring (rotor) te gebruik
vanaf die tweede van hierdie motors (Sien Stap 4).
As jy nie al die moeite wil doen om die saalsensor te installeer en te kalibreer nie (stappe 5-7),
weet ek daar is ten minste 'n paar CD/DVD-aandrywersmotors wat in die saalsensor ingebou is.
Om 'n mate van draaitraagheid aan die motor te gee en hulle 'n bietjie las te gee, het ek 5 hardeskywe op die motor gesit, saggies aanmekaar geplak met 'n bietjie sterk gom en aan die motor vasgegom (
Dit het die vliegwiel in my oorspronklike projek gemaak).
As jy die motor van die hardeskyf gaan verwyder, benodig jy 'n T8 torx-aandrywer om die behuising los te skroef (
Gewoonlik is daar twee skroewe agter die stok in die middelste etiket versteek)
En interne skroewe wat die motor in plek hou.
Jy moet ook die kop verwyder Reader (
Sound circle executive)
Op hierdie manier kan jy die geheue skyf uithaal om die motor te bereik.
Daarbenewens sal jy 'n tweede dieselfde hardeskyfmotor nodig hê om die rotor van daardie motor te verwyder (
Daar is 'n magneet binne).
Om die motor uitmekaar te haal, het ek die rotor (bo) gegryp.
'n Skroef van die motor en pik dit op die stator (onder)
Die twee skroewedraaiers is 180 grade uitmekaar.
Dit is nie maklik om die motor op 'n styf genoeg paar te hou sonder vervorming nie.
Jy sal dalk 'n hout v-blok wil bou
wat vir hierdie doel gebruik word.
Ek het 'n gat in die magnetiese ring op die draaibank geboor sodat dit gemaklik bo-op die motor pas.
As jy nie die draaibank kan gebruik nie, kan jy die omgekeerde rotor met 'n sterk gom op die motor vasmaak.
Die foto's 2 en 3 hieronder wys die binnekant van een van die motors wat ek uitmekaar gehaal het.
In die eerste helfte is daar (die rotor) 8 pole (
magneet toegedraai in plastiek).
In die tweede helfte (die stator)
Daar is 12 gleuwe (wikkelings).
Elk van die drie motorfases het 4 gleuwe in serie.
Sommige HD-motors het drie kontakte aan die onderkant, een kontak per fase, en die ander is die middelste kraan van die motor (
Waar drie fases ontmoet).
In hierdie projek word geen middelkraan benodig nie, maar dit kan handig te pas kom in sensorvrye beheer (
ek hoop om eendag 'n nota oor Sensorvrye beheer vry te stel).
As jou motor vier kontakte het, kan jy die fase met 'n ometer identifiseer.
Die weerstand tussen die middelkraan en die fase is die helfte van die weerstand tussen enige twee fases.
Die meeste van die literatuur oor BLDC-motors handel oor dié met 'n leervormige terugpotensiaalgolfvorm, maar die hardeskyfmotor het blykbaar 'n agterpotensiaal wat soos 'n sinus lyk (Sien hieronder).
Sover ek weet, werk die bestuur van 'n sinusgolfmotor met 'n sinusgolf PWM goed, hoewel die doeltreffendheid ietwat kan daal.
Soos al die BLDC-motors, bestaan ​​hierdie een uit driefase halftransistorbrug
(
Sien 2de foto's hieronder).
Ek gebruik die IC gemaak deur ST Micro (L6234)
Vir die brug, ook bekend as die motorbestuurder.
Die elektriese verbinding van L6234 word in stap 8 getoon.
Die derde foto hieronder toon 'n skematiese diagram van die motorbestuurder en die drie motorfases.
Om die motor kloksgewys te laat werk, sal die skakelaar in die volgende volgorde gemaak word (
Die eerste letter is die boonste transistor en die tweede letter is die onderste transistor)
: Stap 1 2 3 4 5 6 kloksgewys: CB, AB, AC, BC, BA, CA antikloksgewys: BC, BA, CA, CB, AB, AC hierdie
vereis 'n graad van 6- The' 360, maar slegs 'n fisiese graad van 90 vir hierdie motors.
Daarom vind die rotasiespoed van elke motor vier keer plaas.
Die twee rye blyk dieselfde te wees, maar hulle is nie dieselfde nie, want vir 6-
stap ry, vir CW, is die stroomrigting deur die fase een rigting, en vir CCW is die stroomrigting teenoorgestelde.
Jy kan dit self sien deur die spanning van die battery of kragtoevoer op enige motorfase toe te pas.
As jy die spanning toepas, sal die motor 'n bietjie in een rigting beweeg en stop.
As jy vinnig die spanning op die fase in een van die bogenoemde rye kan verander, kan jy die motor met die hand draai.
Transistors en mikrobeheerders voltooi al hierdie skakelaars baie vinnig, en skakel honderde kere per sekonde wanneer die motor teen hoë spoed loop.
Neem ook asseblief kennis dat as die spanning op beide fases toegepas word, die motor 'n bietjie beweeg en dan stop.
Dit is omdat die wringkrag nul is.
Jy kan dit sien in die vierde foto hieronder, wat die agterpotensiaal van 'n paar motorfases toon.
Dit is 'n sinusgolf.
Wanneer die golf deur x-as gaan
, is die wringkrag wat deur hierdie fase verskaf word nul. In die ses-
stap BLDC fase verander volgorde wat nooit gebeur het nie.
Voordat die wringkrag op 'n bepaalde fase laag word, word die krag na 'n ander fasekombinasie oorgeskakel.
Groter BLDC-motors word gewoonlik deur Hall-sensors in die motor vervaardig.
As jy so 'n motor het, kan jy hierdie stap oorslaan.
Ek weet ook daar is ten minste 'n paar CD/DVD-aandrywersmotors wat reeds in Hall-sensor ingebou is.
Wanneer die motor draai, word drie saalsensors gebruik vir posisiebespeuring, dus word die faseverandering op die regte oomblik uitgevoer.
My HD-motor loop tot 9000 RPM (150 Hz).
Aangesien daar 24 veranderinge per wiel is, teen 9000 RPM, word die masjien elke 280 mikrosekondes verander.
Die Arduino-mikrobeheerder werk op 16 MHz, so elke kloksiklus is 0,06 mikrosekondes.
Ek weet nie hoeveel kloksiklusse benodig word om 'n sinvermindering uit te voer nie, maar selfs al word 100 kloksiklusse vereis, dit wil sê, dit neem 5 mikrosekondes vir elke sinvermindering.
HD-motors het nie Hall-sensors nie, daarom is dit nodig om dit aan die buitekant van die motor te installeer.
Die sensor moet vasgemaak word met betrekking tot die motorrotasie en blootgestel word aan 'n reeks pole wat ooreenstem met die motorrotasie.
My oplossing is om die magnetiese ring van dieselfde motor te verwyder en dit onderstebo op die motor te installeer wat beheer moet word.
Ek het toe drie saalsensors bokant hierdie magnetiese ring geïnstalleer, 30 grade van mekaar af op die motoras (
120 grade elektriese motorrotasie).
My Hall-sensorhouer bestaan ​​uit 'n eenvoudige houer wat bestaan ​​uit drie aluminiumonderdele wat deur my verwerk is en drie plastiekonderdele wat op 'n vinnige prototipe gemaak is.
As jy nie hierdie gereedskap het nie, behoort dit nie moeilik te wees om 'n ander manier te vind om die posisie aan te dui nie.
Die skep van hakies vir Hall-sensors sal meer uitdagend wees.
Dit is 'n moontlike manier om te werk: 1.
Soek 'n plastiekbak van die regte grootte en jy kan die saalsensor versigtig epoksieer. 2.
'n Sjabloon word op die papier gedruk, wat dieselfde sirkel as die magnetiese ringradius het, en die drie merke is 15 grade 3 uitmekaar.
Plak die sjabloon aan die skyf vas en gebruik dan die sjabloon as 'n gids om die saalsensor-epoksie versigtig in plek te plaas.
Noudat Hall-sensors op die motor geïnstalleer is, koppel hulle aan die stroombaan wat hieronder getoon word en toets hulle met 'n DMM of ossilloskoop om seker te maak dat die uitset hoër en laer word soos die motor draai.
Ek gebruik hierdie sensors onder 5 v met Arduino se 5 v-uitset.
Die Hall sensor is hoog of laag in uitset (1 of 0)
Dit hang af of hulle die Antarktiese of die Arktiese voel.
Aangesien hulle 15 grade uitmekaar is, roteer die magnete onder hulle en verander die polariteit elke 45 grade, hierdie drie sensors sal nooit terselfdertyd hoog of laag wees nie.
Wanneer die motor draai, is die sensoruitset 6-
Die stappatroon wat in die volgende tabel getoon word.
Die sensor moet in lyn wees met die beweging van die motor sodat een van die drie sensors presies by die motorfaseveranderingsposisie verander.
In hierdie geval moet die stygende rand van die eerste saalsensor (H1)
ooreenstem met die opening van die C-kombinasie (hoog) en B (laag).
Dit is gelykstaande aan die aanskakel van transistors 3 en 5 in die brugkring.
Ek bring die sensor in lyn met die magneet met 'n ossilloskoop.
Om dit te kan doen, moet ek drie kanale van omvang gebruik.
Ek draai die motor deur aan die band van die tweede motor te koppel en meet die terugpotensiaal tussen die twee fasekombinasies (
A en B, A en C)
Dit is twee sinus.
Soos die golwe in die prentjie hieronder
Kyk dan na die sein van Hallsensor 2 op kanaal 3 van die ossilloskoop.
Die Hall-sensorhouer word gedraai totdat die stygende rand van die saalsensor ten volle in lyn is met die punt waar die faseverandering uitgevoer moet word (Sien hieronder).
Ek besef nou dat daar net twee kanale is om dieselfde kalibrasie te doen.
As die BEMF van fasekombinasie B-
Gebruik C, sal die stygende rand van H2 verband hou met BC-kromme.
Die rede waarom die faseverandering hier uitgevoer moet word, is om altyd die motorwringkrag so hoog as moontlik te hou.
Die rugpotensiaal is eweredig aan die wringkrag en jy sal agterkom dat elke faseverandering plaasvind wanneer die rugpotensiaal onder die volgende stadiumkromme beweeg.
Daarom bestaan ​​die werklike wringkrag uit die hoogste deel van elke fasekombinasie.
As jy nie toegang tot die omvang het nie, hier is my idee van belyning.
Hierdie is eintlik 'n interessante oefening vir almal wat wil weet hoe die BLDC Motor Werk.
As die motor Fase A (positief) en B (negatief)
aan die kragtoevoer gekoppel is en die kragtoevoer aanskakel, sal die motor 'n bietjie draai en stop.
Dan, as die negatiewe kragleiding na die C-fase geskuif word en die krag aangeskakel word, sal die motor verder draai en stop.
Die volgende deel van die ry sal wees om die positiewe voorsprong na Fase B te skuif, ens.
Wanneer jy dit doen, stop die motor altyd waar die wringkrag nul is, wat ooreenstem met een plek waar die grafiek deur die x-as op die grafiek gaan.
Let daarop dat die nulpunt van die derde-fase kombinasie ooreenstem met die faseverandering posisie van die eerste twee kombinasies.
Daarom is die nul-wringkragposisie van B-
Die C-kombinasie is waar jy die stygende rand van h2 wil posisioneer.
Merk hierdie posisie met fyn merke of skerp lemme, en verstel dan die saalsensorhouer met DMM totdat die uitset van H2 presies hoër op hierdie merk is.
Selfs as jy 'n bietjie van jou skoolskedule afwyk, behoort die motor goed te werk.
Die driemotorfase sal krag van die L6234-driefasemotorbestuurder ontvang.
Ek het gevind dat dit 'n goeie produk is wat die toets van die tyd kan deurstaan.
Daar is baie maniere om per ongeluk jou komponente te braai wanneer jy kragelektronika gebruik, ek is nie 'n elektriese ingenieur nie en ek weet nie altyd wat aangaan nie.
In my skoolprogram het ons ons eie 3-
fase halfbrug-uitset van 6 MOSFET-transistors en 6 diodes gedoen.
Ons het dit op die HIP4086 van die ander bestuurder Intersil gebruik, maar ons het baie probleme met hierdie opstelling
Ons het 'n klomp transistors en skyfies verbrand.
Ek loop L6234 (
dus die motor) op 12V.
Die L6234 het 'n ongewone stel insette om 'n halfbrug van 6 transistors te beheer.
Nie elke transistor het 'n inset nie, maar 'n aktiveer (EN)
Inset vir elk van die drie fases, en dan 'n ander inset (IN)
Kies watter transistor in die oop fase (boonste of onderste).
Skakel byvoorbeeld transistor 1 (boonste) en 6 (onder) aan.
Beide EN1 en EN3 is hoog (
EN2 laag om die verhoog gesluit te hou)
IN1 Hoog, IN3 laag.
Dit maak die fasekombinasie-C.
Terwyl die L6234-toepassingsnota voorgestel het dat die PWM wat gebruik word om die spoed van die motor te beheer op die IN-pen toegepas word, het ek besluit om dit op die EN-pen te doen, want op daardie tydstip dink ek dit sou \'vreemd\' wees om die boonste en onderste transistors van die fase afwisselend \
aan te skakel. Trouens, dit blyk dat daar niks fout is met die
aanskakeling van beide fases nie, dus dieselfde tyd het die transistors op dieselfde tyd, want hulle het dieselfde transistors op dieselfde tyd. nie een van hulle gaan deur die stroom
nie. Met my metode word die
hoë fase beurtelings geaktiveer en gedeaktiveer by PWM-frekwensie, terwyl die lae fase aan bly tydens die hele faseverandering.
Hieronder is 'n skema
van die
die battery-toevoer en g0-toevoer bygevoeg. die rimpeling in die regeneratiewe stroom
Hierdie syfer is 'n bietjie klein, so vir groter weergawes, verwys asseblief
Laboratorium
motoraandrywing , ek het ook 'n 2. 5 amps lont tussen
wat
baie
na die dokumentasie vir L6234 elektriese ingenieur en ons sal enige regstellings aan my verduideliking waardeer Wanneer jy bestuur, stuur die beheerstelsel die stroom in drie motorfases op 'n manier wat wringkrag maksimeer In regeneratiewe rem, die beheerstelsel maksimeer ook die wringkrag, maar hierdie keer is dit 'n negatiewe wringkrag wat veroorsaak dat die motor vertraag word, terwyl die stroom teruggestuur word na die battery Laboratorium in die Verenigde State van Amerika 'n
Die
grafiek hieronder kom uit 'n ander
navorsing
doen vir motormotors.
artikel wat help om te illustreer hoe dit werk.
dit is moontlik vir die stroom om te vloei van B na.
goeie artikel wat verduidelik hoe die
hupstoot-omskakelaar werk).
lae-end transistor afgeskakel word
wanneer die
Hierdie energie word vrygestel
dienssiklus
, maar teen 'n hoër spanning vloei die stroom onmiddellik deur die \'anti-opwekking\' diode langs elke transistor en keer dan terug na die battery negatiewe wringkrag wat die motor vertraag Die lae-kant transistor gebruik 'n PWM skakelaar, en die
van PWM beheer die hoeveelheid rem Wanneer jy ry,
mettertyd
skakel die kommutasie van die motor
om die hoogste moontlike wringkrag te behou eerste stap, jy kan sien dat die regeneratiewe rem
goed werk, maar dit werk nie goed nie, ek dink die hoofrede is dat die hardeskyfmotor wat ek gebruik 'n baie lae wringkrag- motor is, so dit produseer nie veel BEMF
enige ).
verminder die spanning met
nie, behalwe by 'n laer spoed, is daar baie min regeneratiewe rem (indien
dit verminder ook die doeltreffendheid baie. Ek gebruik normale gelykrigter diodes en ek kan 'n paar spesiale diodes gebruik
verskeie volts,
met 'n laer spanningsval. Hieronder is 'n lys van insette en uitsette op arduino. 3 digitale insette- 120 K
-weerstand van Gnd 5 1 Digitale uitset in serie met 400 ohm-weerstand 6
serie met 400 ohm-weerstand 7 3
Digitale uitsette in serie met
2 Digitale uitsette in
Digitale uitset van EN 1
400 ohm-weerstand 9-
11-
ohm in serie-weerstand 10- ohm Digitale uitset van EN402
EN 3 digitale
Die
in serie met 400
3. 1. 1*3 deur David Glazer Die X-reeks is ST L6234 3- Fase motoraandrywer IC
uitset is in serie met 'n 400 ohm weerstand, 100 k
Ohm potensiometer, met 5 v en gnd gekoppel aan beide kante en analoog pen 0 gekoppel aan die middel.
bldc_congroller
met regeneratiewe rem *
* loop skyfaandrywing motor kloksgewys *
fase-sensors (3, 4).
trap
penne
3, 4-
motorspoed en rem beheer deur 'n enkele potensiometer * motor posisie deur drie Hall-Effek Sensor * Arduino ontvang uitset van 3 saal-kombinasie,
op
9, 10, 11 by 32 kHz * PWM-uitset (
Ooreenkom met EN 1,2, 3*3 DO op onderskeidelik penne 5,6, 7 (IN 1,2,3)
* Koppel die simulasie in 0 aan die potensiometer om die PWM-dienssiklus te verander en Verander * tussen * regeneratiewe rem en * 9 rem: * 9 rem.
500-
523: Taxi * 524-
1023: motoring * comments many lines for debugging by printing different values to a serial connection
*/Int allstate1
of three hall-sensors (3,2,1)int HallState2
Variables
int HallVal = 0-sensors;
/Speed level int bSpeed = 0 for motor;
/Brake level of throttle = 0
/Hierdie veranderlike word saam met die analoog in gebruik om die posisie van die throttle potentiometer te meet (){pinMode(2,INPUT
/Hall 1
3,INPUT/
Hall 3,PUT/4P); motor driver (
pinMode (
5,OUTPUT
);
/In 1 pinMode (6,OUTPUT);
/In 2 pinMode (7,OUTPUT);
/
serial
connection
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 a
, please uncomment this line. The flush command aan die einde van die program /* Stel PWM frekwensie op penne 9, 10 en 11
pre-divider bisse uit: int
0x07 en stel dit gelyk aan die ~10B-getal en stel dit gelyk aan die ~10B-nommer. Prescaler
/stel PWM na 32 kHz vir penne 9, 10 /vee
eers al drie
prescalerVal =
/En die waarde in TCCR0B met 'n binêre getal van \'11111000\'/stel nou die gepaste pre-enkoderingsbis: int pre-encoding bit 2 = 1; \'00000001\'/stel
&
PWM op 32 kHz
TCCR2B
vir pen 3,11 (Hierdie program gebruik net pen 11) /Vee eers al drie pre-caler bisse uit:
= ~ Pre-
calerval /En die waarde in
stel die toepaslike
TCCR0B met 'n binêre getal van
01111'/0
\ '
by: TCCR2B |. = Pre-encoding bit 2;
/Of die waarde in TCCR0B met 'n binêre getal van '00000001'
/vee eers al drie voorafgekodeerde bisse uit:}
/PRGROM void-lus (){
Die hooflus van die
/Time = millis (');
analogRead (0); /Throttle potensiometer MSP's (Throttle, 512,1023, 0,255) HallState1 = digitalRead (2);
/Lees insetwaarde van 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(\'\'); Serial. print(\'\')
;
// delay(
met
500
); */Driving phase change/ each binary number
die verskillende
transistors aangeskakel/bis wiskunde wat
uitset van die
gebruik word om die waarde van die uitset arduino te verander: /PORTD bevat die
het 'n geval wat ooreenstem
pen op die
L6234 drywer
IN
/ die uitset wat gebruik word om te bepaal
vir elke fase beheer word deur die Arduino opdrag analogie
of die boonste transistor of die onderste transistor/EN pen
, stel die dienssiklus
5 5 beheer waarde = 5 potentiometer). as (gasklep > 511){Switch (HallVal){ Geval 3:/PORTD =
van PWM,
of
1111xxx00;
(10,0);
(High-end transistor) analogWrite
/
| = 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 pin 0-
PORTD & =
B00011111
; PORTD |.
Analowrite (11,mSpeed
7
/
= 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); analoogSkryf(11,bSpeed skrif (9,0
analoogWrite(11,bSpeed breek)(10,0 skrif); 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 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 hierdie taak met 'n mikroverwerker
In werklikheid, L6234 se aansoek notas beveel 'n eenvoudige programmeerbare hek skikking (
gemaak van Lattice Semiconductor) om hierdie werk te doen
Ek is nie vertroud met die programmering van hierdie toestel, maar die koste van IC
is net $
GAL16V8
2,000,00 relatief eenvoudige logika-reekse wat die L6234 IC vanaf die uitset van die drie saalsensors kan dryf.
Die grafiek vir fase A word hieronder getoon, en die waarheidstabel vir al drie fases (
Om die logikakring van die B- en C-fases te gebruik, moet die \'nie\'-
deur na die ander kant van die \' oorgeskakel word. Die probleem met hierdie benadering is dus dat dit byna 2 werk. saam
Dit is die beste om dit as 'n programmeerbare logiese hek te programmeer.

HOPRIO groep 'n professionele vervaardiger van kontroleerder en motors, is gestig in 2000. Groep hoofkwartier in Changzhou City, Jiangsu Provinsie.

Vinnige skakels

Kontak ons

WhatsApp: +86 18921090987 
Tel: +86- 18921090987 
Voeg by: No.19 Mahang South Road, Wujin High-tech District, Changzhou City, Jiangsu Provinsie, China 213167
Los 'n Boodskap
KONTAK ONS
Kopiereg © 2024 ChangZhou Hoprio E-Commerce Co., Ltd. Alle regte voorbehou. Werfkaart | Privaatheidsbeleid