You Are Here: Home » AVR ATmega Projects » Motor Projects » Servo motor control using AVR

Servo motor control using AVR

Servo motors are so called “closed feedback” systems. This means that motor comes with control circuit, which senses if motor mechanism is in desired location and if not it continuously corrects an error until motor reaches proper point.

Servo motors are widely used in robotics, remote controlled planes, vehicles. So they come in many shapes and sizes, but they operate in almost the same way. Usually Servo motors are controlled by computer, microcontroller or even simple timer circuit. Of course you may find more advanced servos – R/C so called radio controlled. But again, they are same servos just it takes signals from receiver.

How Servo Motor Control Works

Usually servo motors are put in plastic box, but inside there is a whole system: motor itself, gears and motor driving and control circuit.

Servo motor control using AVR

( )

the gears reduces motor speed but increases torque. As we mentioned that servos works with closed feedback loop. This is actually potentiometer which is connected to mechanical shaft and senses the angle of turn. So potentiometer voltage directly indicate the angle of turn. Potentiometer signal goes to digital controller of motor which powers motor until potentiometer reaches desired angle, then logic shuts the motor.

Servos usually are powered by DC voltage from 4.8 to 7.2V.

Usually servos are designed with limited rotation angle like 90° or 180° and so on. Of course they can be modifier for continuous rotation. Precise rotation and force thanks to gear system servos are ideal for robotic purposes.

Servo control signals

Servo motor shaft is positioned with pulse width modulated signals. So all servos comes with three wires (Power, Ground and Control). So pulses are sent via control wire. Usually in hobby servos with rotation angle 90° signal width vary between 1 and 2ms. If pulse is more wide rotation continues until reaches mechanical limits.Schematic Servo motor control using AVR

The frequency of PWM usually is in range from 30 to 60Hz – this is so called refresh rate. If this refresh rate is too small then then accuracy of servo reduces as it starts lose its position periodically if rate is too big, then servo can start chatter. It is important to select optimal rate, that servo motor could lock its position.

The motor powering circuit power motor depending on what is difference between current position and where it should be. If this difference is small the energy portion given to motos is small that it wouldn’t overshoot the position – motor in this situation is driven slowly. But is difference is big, then motor is powered to turn at full speed that it could reach new position as fast as possible. When shaft approaches to new position, at he end of movement motor slows down in order to stop at accurate position. This complicated process lasts for about a half a second when rotation angle is 60°.

For more detail: Servo motor control using AVR

Leave a Comment

You must be logged in to post a comment.

Read previous post:
Running TX433 and RX433 RF modules with AVR microcontrollers
Running TX433 and RX433 RF modules with AVR microcontrollers

Sometimes in embedded design you may want to go wireless. Might be you will want to log various readings of...

Scroll to top