| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Stepper-Motor

Page history last edited by Lucas Wojciechowski 15 years, 4 months ago

About

Stepper motors were designed as a cheaper alternitive to servo motors as a type of motor which can be controlled percisely. A regular DC motor has only two coils which current alternates between very rapidly. This this type of motor does not allow for any knowledge or control over the exact angle and position of the axel. A servo motor solved this problem by simply adding a sensor to provide electronic feedback as to the angle of the axel so that the programmer can control it that way. Unfourtunately, this sensor made the motor much more expensive and complicated. As a result, the stepper motor was developed. This type of motor had many more coils than a regular motor (commonly 4 or 11). By controlling each coil independently, a programmer could perciesly position the axel within 3.6 degrees. This type of motor is common in modern disk drives.

 

Controlling a Stepper Motor

Relative to DC motors, stepper motors are more difficult to interface with. Instead of a simple on-off current, the stepper motor really requires a programmed controller to use. I have used a MAKE Controller in order to interface with a stepper motor for this project. There are special controllers designed specifically for driving stepper motors, but they offer less control than a programmable MAKE board.

 

The make board provides a simple interface with which to control a stepper motover over the OSC protocol. You can read more about OSC here. A stepper motor is accessed via the "stepper" subsystem which is controlled on a single set of digital out ports. A sample command which could be sent to the MAKE board to control a stepper is "/stepper/1/speed 20". The "/stepper" tells the board which subsystem to contact, the "/1" tells the board which stepper to control, and the "/speed 20" tells the board what to do with it. The important commands for controlling a stepper motor are

  • speed: The speed reflects the time between polar direction reversals in the motor measured in miliseconds. The larger this value is, the slower the motor will appear to be. I have found that any value below 20 will not give the axel enough time to turn, and lock up the motor.
  • duty: The duty is the amout of electricity sent to the motor. The maximum value is 1023. The motor I was using would not work well with any current other than the maximum, but this value might need to be changed with smaller motors.
  • bipolar: This command is a boolean value (0 for false, 1 for true) which has to do with the arrangement of coils in the motor. In general, older motors are unipolar, and new motors are bipolar.
  • step: This is the command which will actually make your motor turn. A single step is 3.6 degrees (there are 100 steps per complete rotation of 360 degrees)

 

Interfacing Software with the Motor

I found that the best API for controlling the MAKE board over USB was in C#.

Comments (0)

You don't have permission to comment on this page.