- Krokové motory:
- Výpočet krokov na otáčku krokového motora:
- Prečo teda potrebujeme budiace moduly pre krokové motory?
- Schéma zapojenia rotačného krokového motora pomocou potenciometra:
- Kód pre dosku Arduino:
- Pracovné:
Krokové motory sa čoraz viac zaujímajú o pozíciu vo svete elektroniky. Počínajúc bežnou kamerou na sledovanie až po komplikované CNC stroje / roboty sa tieto krokové motory používajú všade ako akčné členy, pretože poskytujú presné riadenie. V tomto tutoriále sa dozvieme o najčastejšie / lacno dostupnom krokovom motore 28-BYJ48 a o tom, ako ho prepojiť s Arduino pomocou krokového modulu ULN2003.
V minulom projekte sme jednoducho mali Interfaced Stepper Motor s Arduino, kde môžete otáčať krokový motor zadaním uhla natočenia v Serial Monitor of Arduino. Tu v tomto projekte budeme otáčať krokový motor pomocou potenciometra a Arduina, ako keby ste otáčali potenciometrom v smere hodinových ručičiek, krokový motor sa bude otáčať v smere hodinových ručičiek a ak otáčate potenciometrom proti smeru hodinových ručičiek, bude sa otáčať proti smeru hodinových ručičiek.
Krokové motory:
Pozrime sa na tento krokový motor 28-BYJ48.
Dobre, takže na rozdiel od bežného jednosmerného motora z neho vychádza päť vodičov všetkých efektných farieb a prečo je to tak? Aby sme tomu porozumeli, mali by sme najskôr vedieť, ako stepper funguje a čo je jeho špecialitou. Najskôr sa krokové motory neotáčajú, šliapajú, a preto sú tiež známe ako krokové motory. To znamená, že sa budú pohybovať iba po jednom kroku. Tieto motory majú v sebe prítomný sled cievok a tieto cievky musia byť osobitne napájané, aby sa motor otáčal. Keď je každá cievka napájaná, motor urobí krok a postupné napájanie spôsobí, že motor bude robiť nepretržité kroky, vďaka čomu sa bude otáčať. Pozrime sa na cievky nachádzajúce sa vo vnútri motora, aby sme presne vedeli, odkiaľ tieto drôty pochádzajú.
Ako vidíte, motor má usporiadanie unipolárnej 5-vodičovej cievky. Existujú štyri cievky, ktoré musia byť napájané v konkrétnom poradí. Červené vodiče budú napájané + 5 V a zvyšné štyri vodiče budú stiahnuté k zemi pre spustenie príslušnej cievky. Používame mikrokontrolér ako Arduino, ktorý napája tieto cievky v konkrétnom poradí a núti motor, aby vykonal požadovaný počet krokov.
Prečo sa teda tento motor nazýva 28-BYJ48 ? Vážne !!! Neviem. Neexistuje žiadny technický dôvod na to, aby bol tento motor pomenovaný; možno by sme sa do toho mali ponoriť oveľa hlbšie. Pozrime sa na niektoré dôležité technické údaje získané z údajového listu tohto motora na obrázku nižšie.
To je hlava plná informácií, ale musíme sa pozrieť na niekoľko dôležitých, aby sme vedeli, aký typ stepperu používame, aby sme ho mohli efektívne programovať. Najprv vieme, že ide o krokový motor 5V, pretože napájame červený vodič napätím 5V. Ďalej tiež vieme, že ide o štvorfázový krokový motor, pretože mal štyri cievky. Teraz je prevodový pomer 1:64. To znamená, že hriadeľ, ktorý vidíte vonku, vykoná jedno úplné otočenie, iba ak sa motor vo vnútri bude otáčať 64-krát. Je to kvôli prevodom, ktoré sú spojené medzi motorom a výstupným hriadeľom, a tým pomáhajú zvyšovať krútiaci moment.
Ďalším dôležitým údajom, ktorý si treba všimnúť, je Stride Angle: 5,625 ° / 64. To znamená, že motor, ktorý pracuje v 8-krokovej sekvencii, sa bude pohybovať o 5 625 stupňov pre každý krok a na dokončenie jednej celej rotácie bude potrebných 64 krokov (5 625 * 64 = 360).
Výpočet krokov na otáčku krokového motora:
Je dôležité vedieť, ako vypočítať kroky na jednu otáčku pre váš krokový motor, pretože až potom ich môžete efektívne naprogramovať.
V Arduine budeme motor prevádzkovať v 4-krokovej sekvencii, takže uhol kroku bude 11,25 °, pretože to je 5,625 ° (uvedené v údajovom liste) pre 8 krokovú sekvenciu to bude 11,25 ° (5,625 * 2 = 11,25).
Kroky na otáčku = 360 / uhol kroku
Tu 360 / 11,25 = 32 krokov na otáčku.
Prečo teda potrebujeme budiace moduly pre krokové motory?
Väčšina krokových motorov bude pracovať iba pomocou modulu budiča. Je to preto, že riadiaci modul (v našom prípade Arduino) nebude schopný poskytnúť dostatok prúdu zo svojich I / O pinov na to, aby motor fungoval. Ako ovládač krokového motora teda použijeme externý modul ako modul ULN2003. Existuje veľa typov ovládacích modulov a hodnotenie jedného sa bude meniť podľa typu použitého motora. Primárnym princípom pre všetky budiace moduly bude zabezpečiť dostatočný prúd na to, aby motor fungoval.
Schéma zapojenia rotačného krokového motora pomocou potenciometra:
Schéma zapojenia riadiaceho krokového motora pomocou potenciometra a Arduina je uvedená vyššie. Použili sme krokový motor 28BYJ-48 a modul ovládača ULN2003. Na napájanie štyroch cievok krokového motora používame digitálne piny 8,9,10 a 11. Ovládací modul je napájaný 5 V pinom dosky Arduino. Na A0 je pripojený potenciometer na základe ktorého hodnôt budeme točiť krokovým motorom.
Keď však pripájate záťaž k stepovému motoru, napájajte vodič externým zdrojom napájania. Pretože motor používam iba na demonštračné účely, použil som koľajnicu + 5V na doske Arduino. Nezabudnite tiež prepojiť uzemnenie Arduina so zemou modulu Driver.
Kód pre dosku Arduino:
Predtým, ako začneme programovať pomocou nášho Arduina, pochopme, čo by sa malo vnútri programu vlastne stať. Ako už bolo povedané, budeme používať metódu 4-krokovej sekvencie, takže na vykonanie jednej úplnej rotácie budeme musieť vykonať štyri kroky.
Krok |
Pin pod napätím |
Cievky pod napätím |
Krok 1 |
8 a 9 |
A a B |
Krok 2 |
9 a 10 |
B a C |
Krok 3 |
10 a 11 |
C a D |
Krok 4 |
11 a 8 |
D a A |
Driver modul bude mať štyri LED, pomocou ktorých môžeme skontrolovať, ktorá cievka je v danom okamihu napájaná. Kompletné ukážkové video nájdete na konci tohto tutoriálu.
V tomto výučbe naprogramujeme Arduino tak, aby sme mohli otočiť potenciometer pripojený na pin A0 a ovládať smer krokového motora. Kompletný program nájdete na konci tutoriálu, nižšie je vysvetlených niekoľko dôležitých riadkov.
Počet krokov na otáčku pre náš krokový motor bol vypočítaný na 32; teda zadáme to tak, ako je znázornené v riadku nižšie
#define KROKY 32
Ďalej musíte vytvoriť inštancie, v ktorých určíme piny, ku ktorým sme pripojili krokový motor.
Stepper stepper (STEPS, 8, 10, 9, 11);
Poznámka: Počet pinov je neusporiadaný ako 8,10,9,11 zámerne. Rovnakým spôsobom musíte postupovať, aj keď meníte kolíky, ku ktorým je pripojený váš motor.
Pretože používame krokovú knižnicu Arduino, môžeme nastaviť rýchlosť motora pomocou nižšie uvedeného riadku. Rýchlosť sa môže pohybovať od 0 do 200 pre krokové motory 28-BYJ48.
stepper.setSpeed (200);
Teraz, aby sa motor pohyboval o jeden krok v smere hodinových ručičiek, môžeme použiť nasledujúci riadok.
stepper.krok (1);
Aby sa motor mohol pohybovať o jeden krok proti smeru hodinových ručičiek, môžeme použiť nasledujúci riadok.
stepper.step (-1);
V našom programe načítame hodnotu analógového pinu A0 a porovnáme ju s predchádzajúcou hodnotou (Pval). Ak sa zvýšil, posunieme sa o 5 krokov v smere hodinových ručičiek a ak sa zníži, presunieme sa o 5 krokov v smere hodinových ručičiek.
potVal = mapa (analogRead (A0), 0,1024,0 500); if (potVal> Pval) stepper.step (5); ak (potVal
Pracovné:
Po vytvorení pripojenia by mal hardvér vyzerať na nasledujúcom obrázku asi takto.
Teraz nahrajte nižšie uvedený program do svojho Arduino UNO a otvorte sériový monitor. Ako už bolo spomenuté, musíte otáčať potenciometrom, aby ste ovládali rotáciu krokového motora. Otáčaním v smere hodinových ručičiek sa krokový motor otočí v smere hodinových ručičiek a naopak.
Dúfam, že ste pochopili projekt a páčilo sa vám jeho zostavenie. Kompletné fungovanie projektu je zobrazené na videu nižšie. Ak máte pochybnosti, uverejnite ich v sekcii komentárov nižšie alebo na našom fóre.