# How to move objects within given distance using DC motor precisely?

I would like to get an idea how to control DC motor precisely. (i.e. deliver an object in a 100% right position) and I am not writing for the mathematical equations)

I am planning to make printer head which rotates left-right using DC motor but when I designed it, the following issue arose in my head:

I have thought that

1. after the calculation and moving head using DC motor, can I 100% guarantee the accuracy of the distance?
2. (from 1) if it is not accurate, it would need side components to verify its distance. How things like printer verify the distance?

I tried to search relevant information to analyze the issue, but could not find much about it.

• You will want some kind of feedback, then use a PID controller or similar. Dec 6 '16 at 7:29
• Geared motor with a sensor (like how the mouse of a scrollwheel works), stepper motor, servo. A stepper motor is accurate to a certain degree and its inaccuracy does NOT accumulate. Dec 6 '16 at 7:29
• deliver an object in a 100% right position That is only possible in an ideal world which we do not have. You must think about the allowable tolerance. I cannot imagine that your object needs to be aligned in position wise with the accuracy of the size of an atom. Dec 6 '16 at 7:41
• @Bradman175 the reason I tried to use DC motor is that from the research, most printer vendors use DC motor for printer heads due to its cost of the step motors. Dec 6 '16 at 8:17
• @Sean83 - Do more research. Yes, printer manufacturers use DC motors rather than steppers. However, they want smooth linear motion, not start and stop accuracy. So they use a relatively cheap DC motor, but they also include an optical encoder and provide a control loop to make the encoder output a uniform frequency. Plus, of course, the encoder output synchronizes the ink dot positions. You can indeed use such a loop, but you'll need an encoder. Plus, it won't work well at providing a precise position, since it will (at best) hunt between 1 encoder value to each side of the desired position. Dec 6 '16 at 14:02