Hi
I am trying to connect this stepper motor (4 wire version)
wantmotor.com/ProductsView.a … =75&sid=80
to my i2c motor driver. What kind of seemed obvious to me, did not work so I am seeking an authoritative answer (which wire to which port [outX]).
TIA
4 wire stepper motors are referred to as bipolar stepper motors. I would assume you have one winding (Black and Green) connected to one channel and the other winding (Red and Blue) connected to the second channel. In order to get a stepper motor to move, you will need to reverse the polarity of the windings in a particular sequence to gain clockwise or counter-clockwise rotation of the shaft. The PWM feature of the motor controller used in a stepper motor application will only control the maximum torque output; It will not help with speed control. Speed control is determined by how fast you can sequence the controller through the motor’s steps.
Basically, make a sketch that changes the direction of the output channels in a particular sequence like below:
[code]Channel 0 = Forward
Channel 1 = Forward
Channel 0 = Reverse
Channel 1 = Forward
Channel 0 = Reverse
Channel 1 = Reverse
Channel 0 = Forward
Channel 1 = Reverse
Then repeat for continuous rotation or reverse the order for opposite direction.[/code]
Be advised, I have not used that particular motor controller so I am just providing generic information.
Additionally, looking over the wiki page for the motor controller, it seems to say that it cannot be used to control stepper motors. I am a bit skeptical of that, though there are better ways to control stepper motors.
Edit:
I would not know why this would not work to drive a stepper motor but I cannot test this as I do not have the controller:
// This is using the snippet of code found in the wiki...
// I would suggest starting a new sketch with that code and use this in place of the MotorDirectionSet() instances in the main loop.
MotorDirectionSet(0b1010); // Forward|Forward
delay(100);
MotorDirectionSet(0b1001); // Forward|Reverse
delay(100);
MotorDirectionSet(0b0101); // Reverse|Reverse
delay(100);
MotorDirectionSet(0b0110); // Reverse|Forward
delay(100);
My only guess would be that someone tried to run a stepper motor with the PWM at a low duty cycle which could potentially cause the stepper motor to miss steps and stutter.