Stepper Control using DC Brushed Motor Driver

controldc motorsoftwarestepper motor

Is there any way to control a bipolar stepper motor using one or more DC brushed motor drivers? My only interface to the motors is setting an integer to represent their speed, ex -100 to 100. I believe this is possible as I saw examples doing this with the arduino Stepper.h library, however I am not using an arduino and cannot use any libraries (answers should be platform universal). I know stepper motors use pulses to its two coils to advance a tick; is there any way I could simulate this using timed operation to simulate these pulses? I dont need specific step precision, continuous rotation would be sufficient. Thanks.

Best Answer

Assuming that the outputs of your brushed drivers are a voltage or current proportional to the commanded speed, you can certainly drive a bipolar stepper with two brush drivers. Let's assume that the output of a driver set for 100 gives exactly the drive current needed by a stepper, and that -100 gives exactly the current needed, but with opposite polarity. Then the two driver channels can be driven like this:

schematic

simulate this circuit – Schematic created using CircuitLab

The position of the stepper motor is given by the relative amplitudes of the two phases. In this case, the requirement is that they be 90 degrees apart. In the figure, reading from left to right gives rotation in one direction, while reading from right to left gives rotation in the opposite direction. Always keep track of what step you are at, and only change the drives so as to move one step to the right or left.