hu:arduino:stepper

Differences

This shows you the differences between two versions of the page.

hu:arduino:stepper [2022/04/21 15:02] ()
 1:  1:
 +{{ :hu:arduino:stepper.png?300|stepper}}
 +A [[hu:aktor:steppers|léptetőmotor]]ok vezérlésére az Arduino-ból alapvetően két módszer létezik. Az egyszerűbb és gazdaságosabb, ha a vezérlést a board közvetlenül hajtja végre, azaz némi erősítő-bővítményeken keresztül az (általában) négyvezetékes vezérlést közvetlenül végzi. A másik, kissé költségesebb megoldás, ha a board egy kompex vezérlőnek csak enegedélyezőjelet, irányt és lépésimpulzust ad ki, a többi funkció a külső vezérlőben fut le.
 +
 +Fontos paraméter ezen kívül a motor teljesítménye és a lépések felbontása, ezek mentén a megoldások palettája az egyszerűbbektől az egészen elvetemültebbekig meglehetősen széles.
 +
 +A léptetőmotorokról [[hu:aktor:steppers|bővebb leírást itt talál]].
 +
 +Különböző vezérlők, IC-k és megoldások összehasonlítása
 +
 +^IC/megoldás^megoldás jellege^kimeneti\\ áram (feszültség)\\ maximuma^egyéb|
 +|**[[#tb6560|TB6560]]**|**kontroller** 2 vagy 4 fázisú motorokhoz|3.0A (peak 3,5A)|- Full & 1/2-1/8, 1/16 Microstep\\ - beépített hővédelem\\ -táp: 10-35VDC|
 +|**[[#tb6600|TB6600]]**|**kontroller** 2 vagy 4 fázisú motorokhoz|3.5A (peak 4A)|- Full & 1/2-1/8, 1/16, 1/32 Microstep\\ - beépített hővédelem, hűtőborda\\ -táp: 10-40VDC|
 +|**[[#dm542|DM542]]**|**kontroller** kétfázisú és 4-fázisú hibrid léptetőmotorokhoz|1.0 ~ 4.2A|Impulzus/fordulat 400 - 25.000\\ - kompakt kivitel\\ -táp: +20~50VDC (tipikusan 36VDC)|
 +|**[[#dm556|DM556]]**|**kontroller** kétfázisú és 4-fázisú hibrid léptetőmotorokhoz|1.8 ~ 5.6A|Impulzus/fordulat 400 - 25.000\\ - kompakt kivitel\\ -táp: +20~50VDC (tipikusan 24-48VDC)|
 +|**[[#dm860h|DM860H]]**|**kontroller** kétfázisú és 4-fázisú hibrid léptetőmotorokhoz|2.4 ~ 7.2A|Impulzus/fordulat 400 - 25.000\\ - kompakt kivitel\\ -táp: DC24-80V vagy AC18-50V|
 +|**[[#a3967|A3967 - "EasyDriver"]]**|**kontroller** kétfázisú léptetőmotorokhoz|max 1.5A|Impulzus/fordulat 200 - 1.600\\ -táp: DC7-30V|
 +|**[[#uln2003|ULN2003]]**|**soros jelerősítő**: 7 darlington sor IC|50 mA (50V)|- Egy 4 fázisú, vagy három 2 fázisú kisteljesítményű motor jelerősítésére alkalmas|
 +|**[[#l293d|L293D]]**|**soros jelerősítő**: 4 fél-H híd vezérlő|600 mA (36V)|- nem léptetőmotorokhoz lett kitalálva, de használható|
 +|**[[#l6219|L6219]]**|léptetőmotor **vezérlő IC**|750 mA (46V)|- kompett léptetőmotor vezérlő PWM-mel, meg mindennel |
 +|**[[#l297|L297]]**|léptetőmotor **vezérlő IC**|||
 +|**[[#l298n|L298N]]**|dupla (FULL-BRIDGE) **végerősítő IC** vagy modul|4.0A|- Kimeneti teljesítménye maximum 25W \\ - jól párosítható az L297-tel|
 +
 +====== TB6560 ======
 +{{ :wiki:arduino:tb6560.jpg?250|TB6560}}
 +A CNC vezérlőkhöz a leggyakrabban a TB6560 bázisú paneleket szokás használni, illetve ennek a továbbfejlesztett változatát. a TB6600-at (lásd lejjebb). Jellemzően a [[hu:aktor:steppers#nema|NEMA]] 17 - 23 sorozatok hajtására szokás alkalmazni.
 +
 +=== technikai jellemzői ===
 +**Tápfeszültség:** 32 VDC \\
 +**Kimeneti áram:** maximum 3,0 A, 7 kimeneti áramszint választható \\
 +**Kimeneti frekvencia:** maximum 20 kHz \\
 +**Motortípus:** 2- és 4 fázisú motorokhoz is alkalmazható \\
 +**Felbontás:** maximum 3200 lépés / fordulat ([[hu:aktor:steppers#microstepping|mikrolépéses vezérlés]]) \\
 +
 +^Paraméter^Minimum^Jellemző^Maximum|
 +|Kimeneti áram|0,6 A|-|3.0 A (peak 3,5A)|
 +|Tápfeszültség|7 V DC|24 V DC|35 V DC|
 +|Bemeneti frekvencia|640 Hz|-|20.000 Hz|
 +|Kimeneti frekvencia|0 Hz|-|16.000 Hz|
 +|Kimeneti feszültség H/L|4,5 / 0 VDC|5 / 0 VDC|5,5 / 0,5 VDC|
 +
 +====== TB6600 ======
 +A TB6600 a TB65600 továbbfejlesztett változata. Különbségek a két típus között:
 +^Paraméter^TB6560^TB6600|
 +|Üzemi feszültség|DC 10V-35V|DC 10-40V| 
 +|Mikrolépés vezérlés|Full, half, 1/4, 1/8, 1/16|Full, half, 1/4, 1/8, 1/16, és 32th|
 +|Maximum kimeneti áram|± 3.0A|± 3.5A|
 +|Pillanatnyi maximum áram (peak)|3.5A|4A|
 +
 +A TB6600 ezen kívül egy hűtőbordával is ki lett egészítve. A TB6600 jellemzően két kiviteli formában található meg a piacon:
 +^{{ :wiki:arduino:tb6600_1.jpg?300 |TB6600 panel}}^{{ :wiki:arduino:tb6600_2.jpg?300 |TB6600 házzal}}|
 +
 +==== A TB6600 vezetékezése ====
 +{{ :wiki:arduino:tb6600_wir.jpg?400 |A TB6600 vezetékezése}}
 +Fontos megjegyezni, hogy minden ilyen vezérlő esetén a közös jelvezetéket mindig az 5V+-hoz kell kötni.
 +
 +
 +====== DM542, DM556, DM860H ====== 
 +{{ :wiki:arduino:dm.png?250|DM556}}
 +{{anchor:dm542}}
 +{{anchor:dm556}}
 +{{anchor:dm860h}}
 +A DM sorozat egy sokoldalú, teljesen digitális meghajtó, amely DSP vezérlésen alapszik, a legkorszerűbb vezérlőszoftverrel. Kétfázisú és 4-fázisú hibrid léptetőmotorokhoz alkalmazható. 
 +
 +^paraméter^DM542^DM556^DM860H|
 +|Kimeneti áram (+peak)|1.0~4.2A (3.0 RMS)|1.8~5.6A (4.0 RMS)|2.4~7.2A|
 +|Bemeneti feszültség|+20~50VDC (tipikusan 36VDC)|+20~50VDC (tipikusan 24-48VDC)|DC24-80V vagy AC18-50V|
 +|Jeláram|7~16mA (tipikusan 10mA)| 7~16mA (tipikusan 10mA)| 7~16mA (tipikusan 10mA)|
 +
 +A vezérlőkön a léptetőmotor áramerőssége és a mikrolépés-vezérlés beállítható. A mikrolépéses vezérlésről [[hu:aktor:steppers#mikrolepeses_vezerles|itt olvashat bővebben]]. 
 +
 +==== DM vezetékezés ====
 +{{ :wiki:arduino:dm_wiring.png?400 |DM vezetékezés}}
 +Fontos megjegyezni, hogy minden ilyen vezérlő esetén a közös jelvezetéket mindig az 5V+-hoz kell kötni.
 +====== A3967 -  "EasyDriver" ======
 +{{ :wiki:arduino:easydriver_v43_top.png?200|EasyDriver V4.3}}
 +{{anchor:a3967}}
 +{{anchor:easydriver}}
 +
 +A [[https://www.schmalzhaus.com/EasyDriver/|schmalzhaus]] által fejlesztett EasyDriver sorozat egy viszonylag egyszerű megoldást kínál a léptetőmotorok vezérlésére. Az EasyDriver kb. 750 mA-t képes fázisonként meghajtani egy bipoláris léptetőmotorban. **Ez azt jelenti, hogy egy négyvezetékes NEMA esetén a maximális áramfelvétel 1.5A lehet - ez meglehetősen sovány.** 
 +
 +Alapértelmezés szerint 8 mikrolépéses beállítási mód van, azaz ha a motor fordulatszámonként 200 teljes lépést tesz, akkor az EasyDriver használatával 1600 lépés / fordulat érhető el. Ezt a beállítást könnyen felülbírálhatja, ha az MS1/MS2 pineket a földre köti. Az EasyDriver az Allegro A3967 IC-n alapszik, az {{ :wiki:downloads:a3967.pdf |IC típuslapja itt található}}. 
 +
 +Az IC termikus védelemmel rendelkezik, legkésőbb 165°C felett lekapcsol, de a vezérlést már 65°C felett korlátozza (lásd a fenti típuslapot). Eleve az IC üzemi hőmérséklete magas, érdemes extra hűtőbordával kiegészíteni.
 +
 +A motor maximális hajtási feszültsége körülbelül 30 V lehet, ez az 5 V-os szabályozást is magában foglalja, csak egy tápellátásra van szükség. Az áramszabályozás 150 mA / fázis és 750 mA / fázis között állítható a panelen található potméterrel. 
 +
 +A modul tápellátása 7v és 30v között kell, hogy maradjon.
 +
 +Az EasyDriver modul kapcsolási sémája {{ :wiki:downloads:easydriver_v45_sch.pdf |itt található}}.
 +
 +===== A modul pinjei =====
 +{{:wiki:arduino:easydriver.png?800|EasyDriver v4.3}}
 +
 +**DIR:** irány bemenet \\
 +**STEP:** lépés bemenet \\
 +**GND:** GND \\
 +**MS1:** Microstep select 1 input, lásd lent \\
 +**SLP:** Sleep mode (neg!) \\
 +**+5V:** +5v output \\
 +**GND:** GND \\
 +**M+:** Power in + (7-30v) \\
 +**GND:** Power in- \\
 +**MS2:** Microstep select 2 input, lásd lent \\
 +**ENABLE:** Enable input (neg!) \\
 +**RST:** Reset input (neg!)  \\
 +**PFD:** Percent Fast Decay Input, mode select with 3 voltage-level \\
 +**B:** Motor coil A \\
 +**B:** Motor coil A \\
 +**A:** Motor coil B \\ 
 +**A:** Motor coil B \\
 +**CUR ADJ:** \\
 +
 +==== MS1-MS2 pinek ====
 +Az MS1, MS2 (mikrolépés) pinek kódolása:
 +
 +^MS1^MS2^felbontás|
 +|L|L|Full step (2 phase)|
 +|H|L|Half step|
 +|L|H|Quarter step|
 +|H|H|Eighth step|
 +
 +A mikrolépéses vezérlésről [[hu:aktor:steppers#mikrolepeses_vezerles|itt olvashat bővebben]].
 + 
 +==== PFD pin ====
 +A PFD-vel 3 üzemmód választható ki:
 +
 +PFD bemenet > 0,6V: „slow-decay” mód \\
 +PFD bemenet < 0,21V: „fast-decay” mód \\
 +PFD bemenet > 0,21V és  < 0,6V: „mixed-decay” mód \\
 +
 +A decay módokról [[hu:aktor:steppers#decay|itt olvashat bővebben]].
 +
 +===== Vezetékezés =====
 +
 +{{:wiki:arduino:easydriver_wiring.jpg?400|EasyDriver vezetékezés}}
 +
 +A léptetőmotorok vezeték-színkódjairól [[hu:aktor:steppers#unipolaris_bipolaris_tipusu_leptetomotorok|itt olvashat bővebben]].
 +
 +==== Példaprogram ====
 +
 +Oda-vissza tesztprogram
 +
 +<hidden A szoftver megjelenítése>
 +<code c>
 +int smDirectionPin = 2; //Direction pin
 +int smStepPin = 3; //Stepper pin
 + 
 +void setup(){
 +  /*Sets all pin to output; the microcontroller will send them(the pins) bits, it will not expect to receive any bits from thiese pins.*/
 +  pinMode(smDirectionPin, OUTPUT);
 +  pinMode(smStepPin, OUTPUT);
 + 
 +  Serial.begin(9600);
 +}
 + 
 +void loop(){
 +  digitalWrite(smDirectionPin, HIGH); //Writes the direction to the EasyDriver DIR pin. (HIGH is clockwise).
 +  /*Slowly turns the motor 1600 steps*/
 +  for (int i = 0; i < 1600; i++){
 +    digitalWrite(smStepPin, HIGH);
 +    delayMicroseconds(700);
 +    digitalWrite(smStepPin, LOW);
 +    delayMicroseconds(700);
 +  }
 + 
 +  delay(1000); //Pauses for a second (the motor does not need to pause between switching direction, so you can safely remove this)
 + 
 +  digitalWrite(smDirectionPin, LOW); //Writes the direction to the EasyDriver DIR pin. (LOW is counter clockwise).
 +  /*Turns the motor fast 1600 steps*/
 +  for (int i = 0; i < 1600; i++){
 +    digitalWrite(smStepPin, HIGH);
 +    delayMicroseconds(70);
 +    digitalWrite(smStepPin, LOW);
 +    delayMicroseconds(70);
 +  }
 + 
 +  delay(1000);
 +}
 +</code>
 +</hidden>
 +
 +====== L297 / L298N ======
 +{{anchor:l297}}
 +{{anchor:l298n}}
 +Az L297 egy léptetőmotor vezérlő IC, míg az L298N egy (full bridge) végfokozat ehhez. Az L297 természetesen elhagyható, ezesetben az Arduino-nak kell a közvetlen léptetőmotor vezérlést is végeznie.
 +
 +===== Közvetlen Arduino vezérlés L297 nélkül =====
 +
 +===== Arduino + L297 + L298N (vagy ULN2003) =====
 +
 +{{:wiki:arduino:l297pluszl298n.png|Arduino + L297 + L298N}}
 +
 +Az Arduino-s kapcsolatot természetesen projektre lehet szabni. A minimum kapcsolat az 2 vezetéket igényel (irány (DIR)/ lépés (CLOCK)), de összetettebb megoldásokban több mindent is vezérelhetővé tehetünk. Az IC lábkiosztása:
 +
 +{{:wiki:arduino:l297pin.png?200|L297 lábkiosztása}}
 +
 +^láb^név^funkció|
 +|1|SYNC|Az ütemező oszcillátor kimenete, amennyiben több IC-t is szinkronizálni kell|
 +|2|GND|test|
 +|3|HOME|Nyitott kollektorú kimenet, mely jelzi, ha az L297 kezdeti állapotában van (ABCD = 0101).|
 +|4|A|A motorfázis-kimenet az erősítő felé|
 +|5|INH1|Köztes terhelési-áram kimenet (A-B)|
 +|6|B|B motorfázis-kimenet az erősítő felé|
 +|7|C|C motorfázis-kimenet az erősítő felé|
 +|8|INH2|Köztes terhelési-áram kimenet (C-D)|
 +|9|D|D motorfázis-kimenet az erősítő felé|
 +|10|ENABLE|Engedélyezőjel. Ha LO, akkor  az INH1, INH2, A, B, C és D szintén LO lesz.|
 +|11|CONTROL|A vezérlő bemenete, mely meghatározza az ütemezést. LO: Az INH1 és az INH2-t vezérli, HI: a motorfázis-kimenetet vezérli (ABCD)|
 +|12|Vs|5V betáp|
 +|13|SENS2|A C és D fázisok teljesítményfokozat bemenete. Nem szokás használni, mert a teljesítményerősítést jellemzően másik IC végzi, pl. L298N vagy ULN2003.|
 +|14|SENS1|Az A és B fázisok teljesítményfokozat bemenete. Nem szokás használni, mert a teljesítményerősítést jellemzően másik IC végzi, pl. L298N vagy ULN2003.|
 +|15|Vref|Referenciafeszültség a megszakító számára. Ennek a bemenetnek a feszültsége határozza meg a kimeneti feszültség maximumát|
 +|16|OSC|Szinkronizációs mód beállítása|
 +|17|CW/CCW|Az óramutató járásával megegyező vagy ellentéses irányú a motor forgásiránya (ez a fizikai csatlakozástól is függ)|
 +|18|CLOCK|Léptetés. LO: egy lépés|
 +|19|HALF/FULL|Fél vagy teljes lépés kiválasztása. LO: Half, HI: Full|
 +|20|RESET|Reset bemenet. LO: visszaállítás alaphelyzetre: ABCD = 0101|
 +
  
  • hu/arduino/stepper.txt
  • 2022/04/21 15:02
  • ()