Keď nastane potreba riadiť krokový motor, možno sa obrátiť na mikrokontrolér. Na túto úlohu momentálne používam M-Duino AR38+ a pred niekoľkými dňami som o ňom niečo napísal, odkaz tu.
Treba poznamenať, že Arduino kontrolér je na túto úlohu vhodný, pretože dokáže generovať rýchle pulzy na svojich pinoch, ktoré možno priamo priviesť na ovládač krokového motora. A pod rýchlymi máme na mysli 200 kHz, čo je horný limit ovládača, ktorý používam – JDK5056S. Existujú aj iné ovládače s rovnakým tvarovým faktorom, čo sú kióny jedného či druhého, s označeniami ako JK1545, TB6600, DM542, SH-8611A, CW8060 a podobne. Existuje aj o niečo pokročilejší s označením HSS86. Všetky sú navrhnuté na ovládanie krokových motorov typu NEMA 23, NEMA 34 a podobne.
Spínacia frekvencia 200 kHz je stále pomalá, keďže výstupné pulzy AR38+ dokážu pravdepodobne dosiahnuť až 4 MHz. No 200 kHz je rýchle v porovnaní napríklad s RevPi, ktorý dokáže prepínať výstupné piny s frekvenciou 200 Hz, čo ho robí nevhodným pre aplikácie s krokovými motormi.
Piny AR38+ s pulznými výstupmi #
MDuino podporuje pulzné výstupy na týchto pinoch, pričom tie dostupné na AR38+ sú zobrazené tučne:
- TIMER0: Q0.5 a Q2.6
- TIMER1: Q2.5
- TIMER2: Q1.5 (Násobí frekvenciu x2)
- TIMER3: PIN2, PIN3 a Q0.6
- TIMER4: Q0.7, Q1.6 a Q1.7
- TIMER5: Q1.3, Q1.4 a Q2.0
Existujú ešte dve ďalšie obmedzenia:
- Keď sa používa pulzný výstup TIMER0, Arduino funkcie ako
delay(),millis(),micros(),delayMicroseconds()a ďalšie v tejto kategórii prestanú fungovať tak, ako majú, pretože sa spoliehajú na tento timer. - Nie je možné mať rôzne frekvencie na pinoch priradených k rovnakému TIMERu.
Z vyššie uvedeného zoznamu a pri zohľadnení uvedených obmedzení je zrejmé, že bez akýchkoľvek ďalších súčastí dokáže AR38+ súčasne riadiť štyri samostatné ovládače na dvoch rôznych frekvenciách. Prvé tri sú pin 2, pin 3 a Q0.6, zdieľajúce frekvenciu, a Q0.7 je štvrtý.
Záverečné poznámky #
Treba poznamenať, že Q0.5, Q0.6 a Q0.7 sú piny PWM/Analógového výstupu. Ich použitie pre krokové motory obmedzuje dostupné piny s rovnakou funkciou zo šiestich na tri – ostatné tri sú Q1.0, Q1.2 a Q1.3. To treba mať na pamäti.
Taktiež treba poznamenať, že Q0.5 bol z úvah vynechaný, aj keď podporuje pulzný výstup, aby sa nenarušili funkcie súvisiace s časom. Tieto nie sú striktne vyžadované, ale v tejto chvíli mi nie je jasné, ako sú ovplyvnené. Mať neočakávané správanie na niečom, čo môže spôsobiť škodu, sa neodporúča.
Celkovo je M-Duino 38AR+ dobre vhodný na komunikáciu s ovládačmi krokových motorov a celková skúsenosť je pre mňa plynulá a primerane zdokumentovaná. Zahrnutý Ethernet z neho robí veľmi schopného spoločníka pre cenovo citlivé priemyselné stroje.
Toto je 82. príspevok série #100daystooffload.