EM-93
Carriage Motor Specifications
Type 4-phase 200-pole stepper motor
Voltage Driving: +36DC
Holding: +5V DC
Coil Resistance 110 +/- 7% at 25°C per phase
Current Driving: 0.68A (max.)
Hoding: O. 15A (typical)
Excitation 1-2 phase, 2-2 phase
EM-50
Paper Feed Motor Specifications
Type 4-phase 48-pole PM type stepper motor
Voltage Driving: + 36 VDC
Holding: +5 VDC
Coil Resistance 780 +/- 3% at 25” per phase
Current Driving: 1.2 A (max.)
Holding: 0.08 A(typical)
Excitation 2-2 phase
Popis krokových motorů je pěkně popsán na stránkách: robotika , odkud jsem převzal obrázek zapojení.
Propojit tyto motory s Arduinem pomocí tranzistorového pole ULN2803 bylo snadné a použití ukázkového programu přímo ze stránek Arduina také...
Schéma zapojení:
Ukázkový kód z Arduino Stepper motor
/* Stepper Unipolar Advanced * ------------------------- * * Program to drive a stepper motor coming from a 5'25 disk drive * according to the documentation I found, this stepper: "[...] motor * made by Copal Electronics, with 1.8 degrees per step and 96 ohms * per winding, with center taps brought out to separate leads [...]" * [http://www.cs.uiowa.edu/~jones/step/example.html] * * It is a unipolar stepper motor with 5 wires: * * - red: power connector, I have it at 5V and works fine * - orange and black: coil 1 * - brown and yellow: coil 2 * * (cleft) 2005 DojoDave for K3 * http://www.0j0.org | http://arduino.berlios.de * * @author: David Cuartielles * @date: 20 Oct. 2005 */ int motorPins[] = {8, 9, 10, 11}; int count = 0; int count2 = 0; int delayTime = 500; int val = 0; void setup() { for (count = 0; count < 4; count++) { pinMode(motorPins[count], OUTPUT); } } void moveForward() { if ((count2 == 0) || (count2 == 1)) { count2 = 16; } count2>>=1; for (count = 3; count >= 0; count--) { digitalWrite(motorPins[count], count2>>count&0x01); } delay(delayTime); } void moveBackward() { if ((count2 == 0) || (count2 == 1)) { count2 = 16; } count2>>=1; for (count = 3; count >= 0; count--) { digitalWrite(motorPins[3 - count], count2>>count&0x01); } delay(delayTime); } void loop() { val = analogRead(0); if (val > 540) { // move faster the higher the value from the potentiometer delayTime = 2048 - 1024 * val / 512 + 1; moveForward(); } else if (val < 480) { // move faster the lower the value from the potentiometer delayTime = 1024 * val / 512 + 1; moveBackward(); } else { delayTime = 1024; } }
Program je jednoduchý. V podstatě jen čte hodnotu z potenciometru připojeného na Analogový vstup 0 a dle ní nastavuje směr a rychlost motoru.
A videoukázka s motorem EM-93 v šasi jehličkové tiskárny:
Zdravím, jsou reálně ty motorky EM-93 použitelné do rebela ??
OdpovědětSmazat