ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

motor encoder

asked 2013-02-26 12:19:55 -0500

viki gravatar image

updated 2014-01-28 17:15:25 -0500

ngrennan gravatar image

can i use stepper motor instead of dc motor with encoder to measure speed and the direction of the robot?

to built eddie robot what type of encoder is used and what informtatiom it gives?

can i make the encoder on my own? how to do that give some idea?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2013-02-26 16:36:23 -0500

To answer your first question, Yes you can use a stepper motor instead of a DC motor. They are fundamentally different motors and controls. With a DC motor your applied voltage will give you the motor speed and current will give you motor torque. However if you want to control position you will need a position rotary encoder of some type and utilise this to generate your motor signal via a closed loop.

With a Stepper motor however the drive you apply will specify the position it will occupy. The drive you apply will be a repeating pattern to make the motor increment its position by a step (hence stepper motor). By increasing the rate at which you change the drive commands you can make the motor step faster increasing its speed. A normal small type stepper motor usually has a max speed of about 200rpm after which the rate at which you change the commands becomes too fast for the motor to generate the required forces to turn the motor.

With a stepper motor you will not need an encoder if you can assume in your control code that the motor has increased a step as planned, (this is open loop control). If you need assurance that the motor is working as planned you can add an encoder if you like.

For both motors, digital control will require a driver package to deliver the power required to operate the motors. Polulou has a good range.

Not sure of eddie robot, but you should check out Austria Microsystem's AS5040 magnetic encoder. They are quite cheap an offer a range of encoding options from absolute to incremental encoding to 10 bits. here

edit flag offensive delete link more

answered 2013-02-26 20:43:58 -0500

davinci gravatar image

Another cheap DIY solution is to use a mouse, a laser or a ball mouse mounted under the robot. They are reasonably easy to read out with an arduino.

edit flag offensive delete link more


I love that idea!

Jon Stephan gravatar image Jon Stephan  ( 2013-02-27 12:29:51 -0500 )edit

answered 2013-02-26 15:07:24 -0500

I have heard of people using stepper motors, but don't know how it's done.

The robot I built is a lot like EddieBot. ( I used these encoders from RobotShop:, with these wheels & motors: I used an Arduino to read out the encoders.

I've tried cheaper encoders (in this project:, but the accuracy was not very good. It was a good way to get started and learn though.

edit flag offensive delete link more

Question Tools


Asked: 2013-02-26 12:19:55 -0500

Seen: 3,188 times

Last updated: Feb 26 '13