Ovládání motoru BLDC s Arduino, zachráněným HD motorem a senzory Hall
Domov » Blog » BLDC Motor Control s Arduino, zachráněné HD Motor a Hall senzory

Ovládání motoru BLDC s Arduino, zachráněným HD motorem a senzory Hall

Zobrazení: 0     Autor: Editor stránek Publikování Čas: 2020-09-02 Původ: Místo

Zeptejte se

Tlačítko sdílení Facebooku
tlačítko sdílení Twitteru
Tlačítko sdílení linky
Tlačítko sdílení WeChat
tlačítko sdílení LinkedIn
Tlačítko sdílení Pinterestu
tlačítko sdílení WhatsApp
Tlačítko sdílení Kakao
tlačítko sdílení Snapchat
Tlačítko sdílení telegramu
Tlačítko sdílení Sharethis

V dnešní době se nadšenci velmi zajímají o kontrolu bezkartáčového DC (BLDC)
ve srovnání s tradičním motorem DC, výkon motoru se zlepšil, energetická účinnost se také zlepšila, ale je obtížnější ji použít. mnoho produktů .
K tomuto účelu existuje
Například existuje mnoho malých ovladačů BLDCS, které fungují velmi dobře pro RC letadlo.
Pro ty, kteří se chtějí podívat na kontrolu BLDC hlouběji, existuje také mnoho různých mikro-kontrolorů a další elektronický hardware pro průmyslové uživatele, které obvykle mají velmi dobrou dokumentaci.
Doposud jsem nenašel žádný komplexní popis toho, jak používat Arduino Micro-Controller pro kontrolu BLDC.
Také, pokud máte zájem dělat regenerační brzdění nebo používat BLDC pro výrobu energie, nenašel jsem mnoho produktů vhodných pro použití s ​​malými motory, ani jsem se nedozvěděl o tom, jak ovládat 3fázový generátor.
Tato struktura byla původně v příběhu o
výpočtu v reálném čase, pokračuji v tom po skončení kurzu.
Myšlenkou projektu je ukázat proporcionální model hybridního automobilu s ukládáním energie setrvačníku a regenerativním brzdění.
Motor použitý v projektu je malý BLDC vyčištěný z poškozeného pevného disku počítače.
Tato příručka popisuje, jak používat arduino mikro-kontrolér a Hall-
ovlivňuje senzory polohy při řízení a regenerativní brzdění.
Vezměte prosím na vědomí, že návštěva Oscillisoft je k dokončení tohoto projektu velmi užitečná, ne -li nezbytná.
Pokud nemůžete získat přístup k rozsahu, přidal jsem několik návrhů, jak to udělat bez rozsahu (krok 5).
Jedna věc, kterou by tento projekt neměl zahrnout do žádného skutečného motorového ovladače, je jakákoli bezpečnostní funkce, jako je nadměrná ochrana.
Ve skutečnosti je nejhorší věc, že ​​vyhoříte motor HD.
Implementace ochrany nadměrného proudu pomocí současného hardwaru však není obtížné a možná to v určitém okamžiku udělám.
Pokud se snažíte ovládat větší motor, přidejte prosím přes aktuální ochranu, abyste chránili váš motor a vlastní bezpečnost.
Chci se pokusit použít tento ovladač s větším motorem, který dokáže dělat nějakou \ skutečnou práci, ale zatím nemám tu pravou.
Všiml jsem si, že eBay prodal 86 W auto za zhruba 40 $.
Vypadá to jako dobrý kandidát.
K dispozici je také webová stránka RC s názvem \ 'Gobrushless \', která prodává soupravy, které sestavují vlastní BLDC.
To není příliš drahé a stojí za to stavět jeden.
Vezměte prosím na vědomí, že na tomto webu neexistuje žádný senzor Hall. Whew!
Psaní této struktury je velká práce.
Doufám, že to bude užitečné, prosím, udělejte své komentáře a návrhy.
Digitální multimetr (DMM)-
Pokud má váš DMM osciloskop měřiče frekvence (
je lepší mít alespoň 2 kanály)
ovladač T8 Torx (
potřebujete jeden z nich k otevření jakéhokoli pevného disku).
Existuje dobrý hardwarový obchod.
Dílčí dílna a rychlý prototyp (
ty jsou velmi užitečné, ale myslím, že tento projekt lze provést bez nich).
Materiál BLDC motorový magnetický kroužek z pevného disku počítače (
polovina motoru)
z jiného pevného hnacího driveseveralu (3-6)
Existuje druhý malý motor na stříbrném disku na pevném disku (DC kartáčovaný OK)
gumový pás nebo (nejlépe)
beztaskorovaný dc motor s úchytkem s rukojetí s pevným vodičem pevným vodičem, který je-lit-lin-lin-lin-lin-lis-lis-lis-lis, nebo rotující se svlék na 400 až 400 na 400 na 400 na 400 až 400 odor11. kHmst Micro Circuit L6234 Třífázový motorový ovladač IC dva 100 uf kondenzátorů jeden 10 nf kondenzátor jeden 220 nf kondenzátor jeden 1 uf kondenzátor jeden 100 uf kondenzátor tři přijímající diody jeden 2.
Honeywell Sss41a Bipolar Hall-5 Amp Fuse Alder Thind a Hall Circur the Hall Sensor Circure a Hall Sensor Circure the Power the Power a Hall Sensor Circur, a Hall Sensor, které
je ukázáno, a Hall Sensor INVELIVE, a Hall Sensor, které je ukázáno, a HOLOR CIRUTION A HOLD HOLD CIRUTION A HOLORES V SHOLLIO Tato příručka (
je řízena pomocí zpětného potenciálního indukce).
Specifikace a informace o zadávání veřejných zakázek lze nalézt v těchto dvou odkazech: Pokud se chystáte udělat tento projekt, navrhuji, abyste si udělali čas, abyste důkladně pochopili, jak BLDC funguje a ovládá.
Existuje velké množství odkazů online (
některé návrhy viz níže).
Do svého projektu však zahrnuji některé grafy a tabulky, které by vám měly pomoci pochopit.
Zde je seznam konceptů, které považuji za nejdůležitější pro porozumění tomuto projektu: MOSFET Transistory 3-fázové poloviční můst 6-
3-kroky Snížení věty
šířky šířky pulsu Modulace fázového motoru (PWM) Hall-
mikročip Avr443: Senzory General Reference DC Motor Základní principy DC Motor Princips Findics Funged Found
Fekon Phase Phase Phase Phase Phase Phase Phase Phase Phase Phase Blls
Bldcbress Feet Bldc Chowbs. Senzor Star Hall, dobré video o čištění motoru pevného disku, ale autor se zdá, že provozuje motor jako odrazový motor a jako odrazový motor. Konkrétnější referenční webová stránka pro BLDC na motorové jednotě L6234, včetně datových listů, poznámek k aplikacím a informací o nákupu.
Vzorek zdarma pro PM bezkartáčový motorový pohon pro hybridní elektrické vozidlo.
Toto je jediný papír, který jsem našel, který popisuje pořadí změny fáze brzdění regenerativní.
Tento článek, regenerativní brzdění v elektrických vozidlech je užitečný, půjčil jsem si z něj několik čísel, ale myslím, že nesprávně popisuje, jak regenerace funguje.
Tento projekt jsem provedl s motorem recyklovaného diskového pohonu, protože bylo snadné projít a ráda používám malý motor s nízkým napětím, abych se naučil šňůru ovládaný BLDC a nezpůsobil žádné bezpečnostní problémy.
Kromě toho se konfigurace magnetu snímače Hall stává velmi jednoduchou pomocí magnetického kroužku (rotoru)
od druhé z těchto motorů (viz krok 4).
Pokud nechcete jít na veškerý problém s instalací a kalibrací senzoru Hall (kroky 5-7),
vím, že existují alespoň některé motory s pohonem CD/DVD postavené v Hall Sensor.
Abych poskytl nějakou setrvačnost na motor a poskytl jim trochu zatížení, dal jsem na motor 5 pevných disků, jemně přilepený dohromady s trochou silného lepidla a nalepený k motoru (
to způsobilo setrvačník v mém původním projektu).
Pokud se chystáte odstranit motor z pevného disku, potřebujete pohon T8 Torx, abyste odšroubovali kryt (
obvykle jsou za tyčivnou štítkem ve středovém štítku ukryté dva šrouby)
a vnitřní šrouby, které drží motor na místě.
Také musíte odstranit čtečku hlavy (
Sound Circle Executive)
tímto způsobem můžete vyjmout paměťový disk, abyste dosáhli motoru.
Kromě toho budete potřebovat druhý stejný motor pevného disku k odstranění rotoru z tohoto motoru (
uvnitř je magnet).
Abych mohl rozložit motor, popadl jsem rotor (horní)
svěráci motoru a nastavil ho na statoru (dole),
dva šroubováky jsou od sebe vzdáleny 180 stupňů.
Není snadné držet motor na dostatečně těsném páru bez deformace.
Možná budete chtít vytvořit blok dřeva,
který se používá pro tento účel.
Vyvrtal jsem díru v magnetickém kroužku na soustruhu, takže se pohodlně vejde na horní část motoru.
Pokud nemůžete použít soustruh, můžete opravit obrácený rotor na motoru silným lepidlem.
Obrázky 2 a 3 níže ukazují interiér jednoho z motorů, které jsem rozebral.
V první polovině (rotor) je 8 pólů (
magnet zabalený do plastu).
Ve druhé polovině (stator)
je 12 slotů (vinutí).
Každá ze tří fází motoru má 4 sloty v sérii.
Některé motory HD mají tři kontakty ve spodní části, jeden kontakt na fázi a druhý je středový kohoutek motoru (
kde se setkávají tři fáze).
V tomto projektu není nutný žádný středový kohoutek, ale může se hodit při kontrole bez senzorů (
doufám, že jednoho dne zveřejním poznámku o ovládání bez senzorů).
Pokud má váš motor čtyři kontakty, můžete identifikovat fázi pomocí Ohmeru.
Odpor mezi středovým kohoutkem a fází je polovina odporu mezi libovolnými dvěma fázemi.
Většina literatury o BLDC Motors se zabývá těmi, kteří mají žebřík ve tvaru zpětného potenciálu vlny, ale zdá se, že motor pevného disku má zadní potenciál, který vypadá jako sinus (viz níže).
Pokud vím, řízení sinusové vlny se sinusovou vlnou PWM funguje dobře, i když účinnost může poněkud klesnout.
Stejně jako všechny motory BLDC je tento, i tento je tvořen třífázovým polovičním
tranzistorovým mostem (
viz 2. fotografie níže).
Používám IC vyrobený od ST Micro (L6234)
pro most, známý také jako ovladač motoru.
Elektrické připojení L6234 je uvedeno v kroku 8.
Třetí fotografie níže ukazuje schematický diagram motorového ovladače a tři motorové fáze.
In order for the motor to operate clockwise, the switch will be made in the following order (
The first letter is the upper transistor and the second letter is the lower transistor)
: Step 1 2 3 4 5 6 clockwise: CB, AB, AC, BC, BA, CA counter clockwise: BC, BA, CA, CB, AB, AC these 6-
The step sequence requires a \'electrical degree\' of 360, but only a physical degree of 90 for tyto motory.
Proto dochází k rychlosti rotace každého motoru čtyřikrát.
Zdá se, že dvě sekvence jsou stejné, ale nejsou stejné, protože pro
sekvenci 6-kroků je pro CW aktuální směr fází jeden směr a pro CCW je aktuální směr opačný.
To můžete vidět sami použitím napětí baterie nebo napájecího zdroje na buď motorovou fázi.
Pokud použijete napětí, motor se trochu posune v jednom směru a zastaví se.
Pokud můžete rychle změnit napětí ve fázi v jedné z výše uvedených sekvencí, můžete motor otáčet ručně.
Tranzistory a mikrokontroléry dokončují všechny tyto přepínače velmi rychle a přepínají stokrát za sekundu, když motor běží vysokou rychlostí.
Také si uvědomte, že pokud je napětí aplikováno na obě fáze, motor se trochu pohybuje a poté se zastaví.
Je to proto, že točivý moment je nulový.
Můžete to vidět na čtvrté fotografii níže, která ukazuje zadní potenciál dvojice motorových fází.
Toto je sinusová vlna.
Když vlna prochází x-
hřídelem, točivý moment poskytovaný touto fází je nulový. V
sekvenci změn fáze BLDC BLDC, která se nikdy nestala.
Před nízkým točivým momentem v určité fázi se napájení přepne na jinou fázovou kombinaci.
Větší motory BLDC se obvykle vyrábějí senzory Hall uvnitř motoru.
Pokud máte takový motor, můžete tento krok přeskočit.
Také vím, že v již ve senzoru Hall jsou alespoň některé motory CD/DVD.
Když se motor otáčí, pro detekci polohy se používají tři senzory Hall, takže změna fáze se provádí ve správný okamžik.
Můj motor HD běží až 9000 ot / min (150 Hz).
Protože se na kola při 9000 ot / min dochází k 24 změnám, stroj se mění každých 280 mikrosekund.
Arduino mikro-kontrolor pracuje na 16 MHz, takže každý cyklus hodin je 06 mikrosekund.
Nevím, kolik cyklů hodin je zapotřebí k provedení snížení věty, ale i když je zapotřebí 100 hodin hodin, to znamená, že pro každou redukci věty trvá 5 mikrosekund.
Motory HD nemají senzory Hall, takže je nutné je nainstalovat na vnější stranu motoru.
Senzor musí být fixován s ohledem na rotaci motoru a vystaven řadě pólů, které jsou v souladu s rotací motoru.
Mým řešením je odstranit magnetický kroužek ze stejného motoru a nainstalovat jej vzhůru nohama na motor, který má být ovládán.
Poté jsem nainstaloval tři senzory haly nad tímto magnetickým kroužkem, 30 stupňů od sebe na motorovou hřídeli (
otočení elektrického motoru 120 stupňů).
Držák senzoru haly se skládá z jednoduchého držáku sestávajícího ze tří hliníkových částí zpracovaných mnou a tří plastových dílů vyrobených na rychlém prototypu.
Pokud tyto nástroje nemáte, nemělo by být obtížné najít jiný způsob, jak označit pozici.
Vytváření závorek pro senzory Hall bude náročnější.
To je možný způsob, jak pracovat: 1.
Najděte plastový podnos správné velikosti a můžete pečlivě epoxidovat senzor Hall. 2.
na papír je vytištěna šablona, ​​která má stejný kruh jako poloměr magnetického kroužku, a tři značky jsou od sebe 15 stupňů 3.
Složte šablonu na disk a poté použijte šablonu jako průvodce, jak pečlivě umístit epoxid senzoru haly na místo.
Nyní, když jsou na motor instalovány senzory Hall, připojte je s níže uvedeným obvodem a vyzkoušejte je pomocí DMM nebo osciloskopu, abyste se ujistili, že se výstup sníží a nižší při otáčení motoru.
Spustím tyto senzory pod 5 V pomocí výstupu Arduino s 5 v.
Senzor Hall je vysoký nebo nízký výstup (1 nebo 0),
záleží na tom, zda cítí Antarktidu nebo Arktidu.
Vzhledem k tomu, že jsou od sebe vzdáleny 15 stupňů, magnety se otočí pod nimi a mění polaritu každých 45 stupňů, tyto tři senzory nikdy nebudou ve stejnou dobu vysoké nebo nízké.
Když se motor otáčí, výstup senzoru je 6-
vzorec kroku zobrazený v následující tabulce.
Senzor musí být zarovnán s pohybem motoru tak, aby se jeden ze tří senzorů změnil přesně v poloze změny fáze motorové fáze.
V tomto případě by stoupající hrana prvního senzoru Hall (H1)
měla být v souladu s otevřením kombinace C (vysoká) a B (nízká).
To je ekvivalentní zapnutí tranzistorů 3 a 5 v mostním obvodu.
Zarovnám senzor s magnetem s osciloskopem.
Abych to mohl udělat, musím použít tři kanály rozsahu.
Otočím motor připojením k pásu druhého motoru a měřím zadní potenciál mezi dvěma fázovými kombinacemi (
A a B, A a C)
Toto jsou dvě sinus.
Stejně jako vlny na obrázku níže,
pak se podívejte na signál senzoru Hall 2 na kanálu 3 osciloskopu.
Držák senzoru Hall se otočí, dokud není stoupající hrana senzoru haly plně zarovnána s bodem, kde by měla být provedena změna fáze (viz níže).
Nyní si uvědomuji, že existují pouze dva kanály pro stejnou kalibraci.
Pokud BEMF fázové kombinace B-
pomocí C bude stoupající hrana H2 souviset s křivkou BC.
Důvodem, proč by zde měla být změna fáze prováděna, je vždy udržovat točivý moment motoru co nejvyšší.
Potenciál zadní části je úměrný točivému momentu a všimnete si, že ke každé změně fáze dochází, když zadní potenciál prochází pod křivkou dalšího stupně.
Skutečný točivý moment se proto skládá z nejvyšší části každé fázové kombinace.
Pokud můžete získat přístup k rozsahu, zde je moje představa o zarovnání.
To je vlastně zajímavé cvičení pro každého, kdo chce vědět, jak funguje motor BLDC.
Pokud je motorová fáze A připojena (pozitivní) a B (negativní)
s napájením a zapne napájení, motor se trochu otáčí a zastaví.
Poté, pokud je negativní výkonový olovo přesunut do fáze C a napájení se zapne, motor se otočí dále a zastaví se.
Další částí sekvence bude přesunout pozitivní vedení k fázi B atd.
Když to uděláte, motor se vždy zastaví tam, kde je točivý moment nulový, což odpovídá jednomu místu, kde graf prochází osskou x na grafu.
Všimněte si, že nulový bod kombinace třetí fáze odpovídá poloze fázové změny prvních dvou kombinací.
Proto je nulová poloha točivého momentu B-
C kombinace C, kde chcete umístit stoupající hranu H2.
Označte tuto polohu jemnými značkami nebo ostrými čepelemi a poté upravte držák snímače haly pomocí DMM, dokud není na této značce přesně vyšší výstup H2.
I když se trochu odchýlíte od svého školního rozvrhu, motor by měl fungovat dobře.
Tři motorové fáze dostane napájení od třífázového ovladače L6234.
Zjistil jsem, že se jedná o dobrý produkt, který může obstát v testu času.
Existuje mnoho způsobů, jak náhodně smažit vaše komponenty při používání napájecí elektroniky, nejsem elektrický inženýr a vždy nevím, co se děje.
V mém školním programu jsme provedli vlastní
třífázový výstup nevlastního mostu 6 MOSFET tranzistorů a 6 diod.
Použili jsme to na HIP4086 dalšího řidiče Intersil, ale s tímto nastavením máme spoustu problémů,
spálili jsme spoustu tranzistorů a hranolků.
Provozuji L6234 (
takže motor) při 12V.
L6234 má neobvyklou sadu vstupů pro ovládání polovičního mostu 6 tranzistorů.
Ne každý tranzistor má vstup, ale povolení (en)
vstup pro každou ze tří fází a poté další vstup (in)
vyberte, který tranzistor v otevřené fázi (horní nebo dolní).
Například zapnutí tranzistoru 1 (horní) a 6 (dolní)
EN1 a EN3 jsou vysoké (
EN2 nízké, aby se stádium udržovalo uzavřeno)
do 1 vysoké, in3 nízké.
Díky tomu je fázová kombinace-C.
Zatímco poznámka k aplikaci L6234 navrhovala aplikaci PWM použité k řízení rychlosti motoru na pin in Pin, rozhodl jsem se to udělat na pin en, protože v té době si myslím, že by bylo \ „podivné \“ zapnout horní a dolní tranzistory fáze střídavě “
. Aktuální
metoda je povolena a deaktivována na frekvenci PWM, zatímco nízká fáze zůstává během celé fáze
níže, přidává jsem se k pinům, který je v pinku, a také přidává se k
.
pinku Větší verze tedy naleznete v dokumentaci pro L6234.
Poznámka: Mike Anton vyrobil PCB pro L6234, což (věřím)
nahradí tuto stopu a ušetří vám práci sestavení.
Podívejte se na tyto odkazy pro specifikace a informace o nákupu: Nez našel jsem hodně asi 3-
Popíšu své chápání toho, jak to funguje.
Vezměte prosím na vědomí, že nejsem elektrotechnik a my bychom ocenili jakékoli opravy mého vysvětlení.
Při řízení ovládací systém posílá proud do tří motorových fází tak, aby maximalizoval točivý moment.
Při regenerativním brzdění řídicí systém také maximalizuje točivý moment, ale tentokrát je to negativní točivý moment, který způsobuje zpomalení motoru a odesílání proudu zpět do baterie.
Metoda regenerativního brzdění, kterou jsem použil, pocházela z papíru z Národní laboratoře Oakridge ve Spojených státech. S. Govt.
Laboratoř, která provádí hodně výzkumu pro automobilové motory.
Níže uvedený graf pochází z jiného příspěvku, který pomáhá ilustrovat, jak to funguje (
myslím si však, že vysvětlení uvedené v tomto druhém článku je částečně nesprávné).
Mějte na paměti, že když se motor otáčí, napětí BEMF ve fázi motoru kolísá nahoru a dolů.
Na obrázku to ukazuje okamžik, kdy je BEMF vysoký ve stadiu B a nízký jeviště.
V tomto případě je možné, že proud proudí z B do.
Kritické pro regenerativní brzdění se tranzistory nízkoend rychle zapnou a vypínají (
tisíce přepínačů PWM za sekundu).
Když je špičkový přepínač tranzistoru vypnutý;
Když je zapnutý nízký tranzistor, proud proudí, jak je znázorněno na prvním obrázku.
Pokud jde o energetickou elektroniku, obvod je jako zařízení nazývané Boost Converter, kde je energie uložena ve fázi motoru (
Wikipedia má dobrý článek vysvětlující, jak funguje převaděč Boost).
Tato energie se uvolní, když je tranzistor s nízkým koncem vypnuto, ale při vyšším napětí proud okamžitě protéká \ 'anti-excitační \' diodou vedle každého tranzistoru a poté se vrátí do baterie.
Dioda zabraňuje proudu proudu z baterie na motor.
Současně proud v tomto směru (
na rozdíl od jízdy)
interaguje s magnetickým kroužkem, aby vytvořil negativní točivý moment, který zpomaluje motor dolů.
Tranzistor na nízké straně používá spínač PWM a pracovní cyklus PWM řídí množství brzdění.
Při řízení se komutace motoru přepíná z jedné kombinace do druhé v pravý čas, aby se zachoval nejvyšší možný točivý moment.
Komutace regenerativní brzdy je velmi podobná, protože nějaký přepínací režim způsobuje, že motor produkuje co nejvíce negativního točivého momentu.
Pokud sledujete video v prvním kroku, můžete vidět, že regenerativní brzda funguje dobře, ale nefunguje to dobře.
Myslím, že hlavním důvodem je to, že motor pevného disku, který používám, je velmi nízký moment točivého momentu, takže nevytváří mnoho BEMF s výjimkou nejvyšší rychlosti.
Při nižší rychlosti je velmi malé regenerativní brzdění (pokud existuje).
Také můj systém běží na relativně nízkém napětí (12 V)
navíc, protože každá cesta anti-excitační diodou snižuje napětí o několik voltů, což také výrazně snižuje účinnost.
Používám normální diody usměrňovače a mohu získat lepší výkon, pokud použiji nějaké speciální diody s nižším poklesem napětí.
Níže je uveden seznam vstupů a výstupů na Arduino.
Zahrnujte také grafy a fotografie mé desky. 2-
Digitální vstupní-Hall 1
120 K Odolnost GND 3
Digitální vstupní hala 2
120 K Odolnost GND 4
Hall 3 Digitální vstup-
120 K Odolnost GND 5
1 Digitální výstup v sérii s 400 ohm rezistorem 6 2
výstupy v sérii s 400 ohm rezistor 1 série
Digitální
série 2 s opěrací série 2 série 2 série 2 série 2 série 2 v sérii 2
sérií
v Digitální výstup EN 3 je v sérii s rezistorem 400 ohmů, potenciometrem 100 K OHM, s 5 V a GND připojeným na obou koncích a analogovém kolíku 0 připojeném uprostřed.
Tento potenciometr se používá k řízení rychlosti motoru a brzdění.
5 V napájení se také používá ke spuštění senzorů Hall (viz krok 5).
Zde je celý program, který jsem napsal pro Ardjuino, který obsahuje komentáře:/* BLDC_CONGROLLER 3. 1.
1* 3 David Glazer.
The X series is ST L6234 3-
Phase motor driver IC * running disk drive motor clockwise * with regenerative braking * motor speed and braking controlled by a single potentiometer * motor position by three Hall-
Effect Sensor * Arduino receives output from 3 hall sensors (pins 2,3,4)
* And convert their combination to 6 different phase-changing steps on pins 9, 10, 11 at 32 kHz * PWM output (
Corresponding to EN 1,2, 3 * 3 na kolících 5,6, 7, (v 1,2,3)
simulaci v 0 k potenciometru pro změnu pracovního cyklu PWM a změnou mezi řízením a regenerativním
*
brzdem
Připojte
*
Proměnné Senzory (
;
3,2,1
INT
)
HallState3
/Hala 1 pinmode (3, vstup);
/Hala 2 pinmode (4, vstup);
/L6234 Hall 3/výstup ovladače motoru pinmode (5, výstup);
/V 1 pinmode (6, výstup);
/Ve 2 pinmode (7, výstup);
/Ve 3 pinmode (9, výstup);
/En 1 pinmode (10, výstup);
/En 2 pinmode (11, výstup);
/En 3/sériové. začátek (9600);
Pokud budete používat sériové připojení, tento řádek prosím nevykonávejte.
Příkaz Flush na konci programu.
/* Nastavte frekvenci PWM na kolících 9, 10 a 11/nastavte PWM na 32 kHz pro kolíky 9, 10/nejprve vymazat všechny tři bity před dividerem: int PrescalerVal = 0x07;
/Vytvořte proměnnou nazvanou PresCalerval a nastavte ji na rovna binárního čísla \ '00000111 \' tccr1b & = ~ Prescaler
/a hodnotu v tccr0b s binárním číslem \ '11111000 \' /nyní nastaví vhodný předběžný bit: int pre-encoding bit 2 = 1;
/Nastavit PresCalerval na rovna binárního čísla \ '00000001 \' tccr1b | = PresCalerVal2;
/Nebo hodnota v tccr0b s binárním počtem \ '00000001 \' /set pwm na 32 kHz pro pin 3,11 (
tento program používá pouze PIN 11)
/Vymazat všechny tři bity před kaletorem nejprve: tccr2b & = ~ Pre-calerval;
/A hodnota v tccr0b s binárním počtem \ '11111000 \'/nyní nastavte vhodný předběžný bit: tccr2b | = Předběžný bit 2;
/Nebo hodnota v tccr0b s binárním číslem \ '00000001 \'/nejprve vymazat všechny tři předem kódované bity:}
Hlavní smyčka/Prgrom Void Loop () {
/Time = Millis ();
Čas po zahájení tisku. println (čas); //Seriál. vytisknout(\'\');
Škrticí klapka = analogy (0);
/Škrticí klapku potenciometr msps = mapa (
škrticí klapku, 512,1023, 0,255);
/Řízení je mapováno do horní poloviny potenciometru Bspeed = mapa (
škrticí klapku, 0,511,255, 0);
/Poloviční část regenerativní brzdění ve spodní části pot/msps ed = 100;
/Pro ladění HallState1 = DigitalRead (2);
/Přečtěte si vstupní hodnotu z haly 1 2 = digitální čtení (3);
/Číst vstupní hodnotu z haly 2 3 = digitální čtení (4);
Přečtěte si vstupní hodnotu/numerický zápis z haly 3 (8, HallState1);
/Když je odpovídající senzor ve vysokém výkonu, LED zapne
původně k ladění digitalWrite (9, HallState2);
// DigitalWrite (10, HallState3); Hallval = (HallState1)+ (2*HallState2)+ (4*HallState3);
/Vypočítejte binární hodnoty 3 série Hall/*. tisk (\ 'h 1: \');
Pro ladění sériového port. println (HallState1); Seriál. tisk (\ 'h 2: \'); Seriál. println (HallState2); Seriál. tisk (\ 'h 3: \'); Seriál. println (HallState3); Seriál. println (\ '\');
*/// sériové. println (mspeed); //Seriál. println (hallval); //Seriál. vytisknout(\'\');
/Monitorovat výstup tranzistoru/zpoždění (1000);
/* T1 = digitalRead (2); // t1 = ~ t1;
T2 = digitalRead (4); // t2 = ~ t2;
T3 = digitalRead (5); // t3 = ~ t3; Seriál. tisk (T1); Seriál. tisk (\ '\ t \'); Seriál. tisk (T2); Seriál. tisk (\ '\ t \'); Seriál. tisk (T3); Seriál. vytisknout(\'\'); Seriál. vytisknout(\'\'); Seriál. tisk (DigitalRead (3)); Seriál. tisk (\ '\ t \'); Seriál. tisk (DigitalRead (9)); Seriál. tisk (\ '\ t \'); Seriál. Println (DigitalRead (10)); Seriál. vytisknout(\'\'); Seriál. vytisknout(\'\'); // zpoždění (500);
*/Změna fáze jízdy/každé binární číslo má případ odpovídající různým tranzistorům zapnutými/bit matematikou použité ke změně hodnoty výstupu Arduino:/portd obsahuje výstup in Pin na L6234/výstup použitý k určení, zda horní tranzistor nebo pin tranzistor/en pro každou fázi je kontrolován ARDUINO příkazovým analýzou, (Pwm je uctívá, že je uctívá hodnota, nebo je
ucpán, nebo je uctívá, že je uctívá hodnota, nebo je uctívá. ovládáno potenciometrem). if (škrticí klapku> 511) {switch (hallval) {
case 3:/portd = 1111xxx00;
/Očekávaný výstup pin 0-
7 xxx se týká vstupu Hall a portd & = b00011111 by se neměl měnit;
Portd | = B01100000;
/Analowrit (9, mspeed);
PWM na analogwritu fáze (
high-end tranzistor) (10,0);
Uzavření fáze B (povinnost = 0) analogwrite (11 255); // Fáze C na -DUTY = 100% (
low -end tranzistor) Break;
Případ 1:/portd = b001xxx00;
/Očekávaný výstup pin 0-
7 portd & = b00011111;
/Portd | = B00100000;
/Analowrit (9, mspeed);
PWM na analogwritu fáze (
high-end tranzistor) (10 255); // fáze B on (
low-end tranzistor) analogwrite (11,0); // Fáze B vypnuto (Duty = 0) Break;
Případ 5:/portd = b101xxx00;
/Očekávaný výstup pin 0-
7 portd & = b00011111;
/Portd | = B10100000; analogwrite (9,0); analogwrite (10 255); analogwrite (11, mspeed); přerušení;
Případ 4:/portd = b100xxx00;
/Očekávaný výstup pin 0-
7 portd & = b00011111;
Portd | = BYM000;
/Analowrit (9 255); analogwrite (10,0); analogwrite (11, mspeed); přerušení;
Případ 6:/portd = b110xxx00;
/Očekávaný výstup pin 0-
7 portd & = b00011111;
Portd B11. 000 =;
/Analowrit (9 255); analogwrite (10, mspeed); analogwrite (11,0); přerušení;
Případ 2:/portd = b010xxx00;
/Očekávaný výstup pin 0-
7 portd & = b00011111;
B0201700 Portd | =;
/Analowrit (9,0); analogwrite (10, mspeed); analogwrite (11 255); přerušení; }}
/Regenerativní změna fáze brzdové fáze /portd (
výstup in Pin na L6234)
Pins jsou vždy nízké, takže během regeneru se používají pouze nízké tranzistory v každé fázi. brzdění. else {
/portd = b000xxx00;
/Očekávaný výstup pin 0-
7 portd & = b00011111;
Portd | = BYM0000; // Switch (hallval) {
případ 3: psaní analogie (9, bspeed); // analogwrite (9,0); analogwrite (10,0); analogwrite (11,0); přerušení;
Případ 1: psaní analogie (9, bspeed); analogwrite (10,0); analogwrite (11,0); přerušení;
Případ 5: psaní analogie (9,0); analogwrite (10,0); analogwrite (11, bspeed); přerušení;
Případ 4: psaní analogie (9,0); analogwrite (10,0); analogwrite (11, bspeed); přerušení;
Případ 6: psaní analogie (9,0); analogwrite (10, bspeed); analogwrite (11,0); přerušení;
Případ 2: Psaní analogie (9,0); analogwrite (10, bspeed); analogwrite (11,0); přerušení; }}
/Time = Millis ();
Čas po zahájení tisku. println (čas); //Seriál. vytisknout(\'\'); //Seriál. flush ();
/Pokud chcete ladit pomocí sériového portu, prosím Uncomment}
Myslím, že operace, kterou Arduino v tomto projektu dělá, je tak jednoduchá, že se zdá jako odpad, který tento úkol provádí s mikroprocesorem.
Poznámky k aplikacím L6234 's aplikací doporučují jednoduché programovatelné pole brány (
Gal16V8 vyrobené z polovodiče Lattice), aby tuto práci provedly.
Nejsem obeznámen s programováním tohoto zařízení, ale náklady na IC jsou pouze 2 $. 39 v Newarku.
Jiné podobné integrované obvody jsou také velmi levné.
Další možností je spojit diskrétní logické brány.
Přišel jsem s některými relativně jednoduchými logickými sekvencemi, které by mohly řídit IC L6234 z výstupu tří senzorů Hall.
Graf pro fázi A je uveden níže a tabulka pravdy pro všechny tři fáze (
pro logický obvod fází B a C musí být \ ne \ 'dveře přepnuty na druhou stranu \' nebo.
Problém s tímto přístupem je, že v každém stádiu je v každém stádiu, takže je nejlepší dohromady
.

Společnost Hoprio Group A Profesionální výrobce Controller and Motors byl založen v roce 2000.

Rychlé odkazy

Kontaktujte nás

WhatsApp: +86 18921090987 
Tel: +86-18921090987 
Add: No.19 Mahang South Road, Wujin High-Tech District, Changzhou City, Jiangsu provincie, Čína 213167
Zanechat zprávu
Kontaktujte nás
Copyright © 2024 Changzhou Hoprio E-Commerce Co., Ltd. Všechna práva vyhrazena. Sitemap | Zásady ochrany osobních údajů