ROBO INDIA http://roboindia.com
Jul 19, 2015
• Servo motor is nothing but a simple motor based on servo mechanism.
• Servomechanism is a closed loop feedback systems uses +ve feedback to control its motion.
• With the help of servomechanism, servo motor give precise control of angular position.
• Motor have a dedicated encoder
• Simplest servomotors use position-only sensing via a potentiometer
Click here to visit -ROBO INDIA
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);
//NON Inverted PWM
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
//PRESCALER=64 MODE 14(FAST PWM)
ICR1=4999;
//fPWM=50Hz (Period = 20ms Standard).
DDRD|=(1<<PD4)|(1<<PD5);
//PWM Pins as Out
Click here to visit -ROBO INDIA
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);
• COM1A1 = 1
• COM1B1 = 1
• WGM11 = 1
1 0 1 0 0 0 1 0
Click here to visit -ROBO INDIA
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);
• WGM10 = 0 //Used in Waveform Generation
• WGM11 = 1 //Used in Waveform Generation
• COM1A1 = 1
• COM1B1 = 1
1 0 1 0 0 0 1 0
Click here to visit -ROBO INDIA
• The COM1A1,COM1A0,COM1B1 and COM1B0 control OC1A and OC1B
1 0 1 0 0 0 1 0
Click here to visit -ROBO INDIA
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
• WGM12 = 1
• WGM13 = 1
• CS11 = 1
• CS10 = 1
0 0 0 1 1 0 1 1
Click here to visit -ROBO INDIA
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
• WGM10 = 0 // TCCR1A
• WGM11 = 1 // TCCR1A
• WGM12 = 1 // TCCR1B
• WGM13 = 1 // TCCR1B
0 0 0 1 1 0 1 1
Click here to visit -ROBO INDIA
• WGM10 = 0 // TCCR1A
• WGM11 = 1 // TCCR1A
• WGM12 = 1 // TCCR1B
• WGM13 = 1 // TCCR1B
Click here to visit -ROBO INDIA
• FAST PWM Mode
• TOP Value = ICR1
//Timer count from 0 to ICR1
Click here to visit -ROBO INDIA
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
CS12 = 1 : CS11 = 1 : CS10 = 0
0 0 0 1 1 0 1 1
Click here to visit -ROBO INDIA
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
• Prescaler is 64.
• Means16MHz/64 = 250khz (4 uS period)
0 0 0 1 1 0 1 1
Click here to visit -ROBO INDIA
𝑓𝑝𝑤𝑚 =𝑓𝑐𝑝𝑢
𝑛(1 + 𝑇𝑂𝑃)
fpwm = 20ms (50 Hz)
fcpu = 16000000Hz
n = 64
TOP = 4999 // RESULT
Click here to visit -ROBO INDIA
𝑓𝑝𝑤𝑚 =𝑓𝑐𝑝𝑢
𝑛(1 + 𝑇𝑂𝑃)
fpwm = 20ms (50 Hz)
fcpu = 16000000Hz
n = 64
TOP = 4999 // RESULT
Click here to visit -ROBO INDIA
𝑓𝑝𝑤𝑚 =𝑓𝑐𝑝𝑢
𝑛(1 + 𝑇𝑂𝑃)
fpwm = 20ms (50 Hz)
fcpu = 16000000Hz
n = 64
TOP = 4999 // RESULT
Click here to visit -ROBO INDIA
𝑓𝑝𝑤𝑚 =𝑓𝑐𝑝𝑢
𝑛(1 + 𝑇𝑂𝑃)
fpwm = 20ms (50 Hz)
fcpu = 16000000Hz
n = 64
TOP = 4999 // RESULT
Click here to visit -ROBO INDIA
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);
//NON Inverted PWM
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
//PRESCALER=64 MODE 14(FAST PWM)
ICR1=4999;
//fPWM=50Hz (Period = 20ms Standard).
DDRD|=(1<<PD4)|(1<<PD5);
//PWM Pins as Out
Click here to visit -ROBO INDIA
• Servo Angle 0 need 0.388ms(388uS) pulse
Value of OCR1A = 388us/4us = 97
• Servo Angle 90 need 1.264ms(1264uS) pulse
Value of OCR1A = 1264us/4us = 316
• Servo Angle 180 need 2.140ms(2140uS) pulse
Value of OCR1A = 2140us/4us = 535
Click here to visit -ROBO INDIA
To share your views and queries please write us-
Website: http://roboindia.comEmail- [email protected]
Click here to visit -ROBO INDIA