- Krokové motory:
- Výpočet krokov na otáčku krokového motora:
- Prečo teda potrebujeme budiace moduly pre krokové motory?
- Schéma zapojenia a popisu obvodu krokového motora Arduino:
- Kód pre dosku Arduino:
- Pracovanie krokového motora s Arduinom:
Krokové motory sa čoraz viac zaujímajú o pozíciu vo svete elektroniky. Počnú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. Krokový motor je bezkartáčový synchrónny motor, ktorý dokončí celú rotáciu do niekoľkých krokov. V tomto výučbe krokového motora Arduino sa dozvieme o najčastejšie dostupnom krokovom motore 28-BYJ48 a o tom, ako ho prepojiť s Arduino pomocou modulu krokového motora ULN2003.
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). Môžete sa dozvedieť viac o práci krokových motorov s ARM LPC2148, mikrokontrolérom ATMega16, MSP430.
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 a popisu obvodu krokového motora Arduino:
Schéma zapojenia pre projekt riadenia krokových motorov arduino je zobrazená 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.
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 Diver.
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á. Video, ktoré zobrazuje postupnosť napájania, nájdete na konci tohto tutoriálu.
V tomto tutoriále napíšeme kód krokového motora arduino a na to naprogramujeme Arduino tak, aby sme mohli cez sériový monitor Arduina zadať počet krokov, ktoré má krokový motor vykonať. 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 pohol o jeden krok, môžeme použiť nasledujúci riadok.
stepper.step (val);
Počet krokov, ktoré sa majú presunúť, poskytne premenná „val“. Pretože máme 32 stupňov a 64 ako prevodový pomer, musíme posunúť 2048 (32 * 64 = 2048), aby sme vykonali jedno úplné otočenie.
Hodnotu premennej „val“ môže užívateľ zadať pomocou sériového monitora.
Pracovanie krokového motora s Arduinom:
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é vyššie, na vykonanie jednej úplnej rotácie budeme musieť urobiť 2048 krokov, takže keď vstúpime do roku 2048, motor urobí jednu úplnú rotáciu v smere hodinových ručičiek pomocou 2048 krokov. Ak chcete otáčať proti smeru hodinových ručičiek, zadajte číslo so záporným znamienkom „-“. Zadanie hodnoty -1024 spôsobí, že sa motor bude otáčať v polovici cesty proti smeru hodinových ručičiek. Môžete zadať ľubovoľné požadované hodnoty, napríklad 1, aby motor urobil iba jeden krok.
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, pošlite ich do sekcie komentárov pod našimi na našom fóre.