Skinny Satan

A cool Nerd To Hangout With

How Not to Blow up A Servo Motor

Read this before burning any servo Motors
servo

Disclaimer : This Tutorial is totally intended for educational purposes and if you are planning to build a massive man eating Robot using this tutorial the Author will not be responsible.

In last few days i saw few servos blowing up and thought there is necessity of writing this Tutorial of how to not blow up a servo Motor.

As we need a locked 0 –> 180 degrees motion in certain applications like robot arm, Humanoids etc. We use these Servo motors. These are Normal motors only with a potentiometer connected to its shaft which gives us the feedback of analog value and adjusts its angle according to its given input signal.

So… How to Operate it?
A servo usually requires 5V->6V As VCC. (As i am Talking about hobby servos that all the other hobbyists use.. Industrial servos requires more.) and Ground and a signal to adjust its position.
The signal is a PWM waveform. For a servo we need to provide a PWM of frequency about 50Hz-200Hz (Refer the datasheet). so the time duration of a clock cycle goes to 20ms. From this 20ms if the On time is 1ms and off time is 19ms we generally get the 0 degrees position. And when we increase the duty cycle from 1ms to 2ms the angle changes from 0–> 180 degrees.

url

So where can it go wrong-

Power->> The power we provide. Generally we tend to give a higher volt batteries for our applications by pulling the voltage down through regulators to 5Vs. But we surely can-not give supply to the servo through our uC as the servo eats up a hell lot of current and the one which i use i.e. Atmega16 can mostly source only up to 200mA so it will totally burn it.

Another way to burn the servo is at certain times the supply is given directly through the battery so the uC will not blow up. But if you Give a supply say 12Volts then boom. Your servo will go own for ever.

PWM–> PWM should strictly be in the range between 1ms–> 2ms (refer datasheets) If by any mistakes the PWM goes out then boom the servo will start jittering and will heat up and heat up and will burn itself down. But this problem is easily identifiable as there is a jitter sound which if you have got enough experience with servos, you will totally notice the noise. So if the noise is there when you turn on the servo, turn it off right away and change the code ASAP.

Load— Hobby servos don’t have high load bearing capacities and as it is designed that way it always tries to adjust its angle according to signal. But here is the catch. As there is too much off load the servo cannot go further and the signal is forcing it to. So again.. heat… heat and boom. How to avoid this. Give load to the servo only in the figure of safety.

That’s all for today. Ill be attaching the code here for Atmel Micro controllers if any of you readers plan to test your Servos.


#include
#include


void main()
{
DDRB=0xFF;
DDRC=0x00;
PORTC=0xFF;
TCCR1A=0xA0;
TCCR1B=0x11;
TCCR2=0x6C;
ICR1=10000;
OCR2=16;
OCR1A=500;
OCR1B=500;

while(1)
{
while(OCR2<=32)
{
	OCR2++;
	_delay_ms(20);

}

while(OCR1A<=1000)
{
	OCR1A++;
	_delay_ms(2);

}

while(OCR1B=16)
{
	OCR2--;
	_delay_ms(20);

}

while(OCR1A>=500)
{
	OCR1A--;
	_delay_ms(2);

}

while(OCR1B>=500)
{
	OCR1B--;
	_delay_ms(2);

}
}
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Information

This entry was posted on September 1, 2013 by in Tutorial and tagged , , .
%d bloggers like this: