servo motor interfacing with 8051 using keil compiler




servo motor interfacing WITH 8051 MICROCONTROLLER: This article is about interfacing of servo motor with 8051 microcontroller. You will learn how to interface and control this motor using 8051 microcontroller. Servo motors are used in roboticsembedded systems and industries because they are very precise and reliable. They are used to operate remote control toy cars, airplanes or robots. Their motion can be controlled by rotating them in particular angle. Servo motor can be controlled by PWM signal. In this article we will interface servo motor with 8051 microcontroller and control its speed.  I will recommend you to read a article on how to used keil compiler and how to use I/O ports of 8051 microcontroller before learning about interfacing servo motor with 8051.

Page Contents
  • 1 CONSTRUCTION of servo motor
  • 2 PRINCIPLE of interfacing servo motor
  • 3 INTERFACING WITH 8051 MICROCONTROLLER
  • 4 CONNECTIONS diagram of servo motor interfacing with 8051 microcontroller
  • 5 PROTEUS SIMULATION of servo motor interfacing with 8051 microcontroller
  • 6 WORKING of servo motor interfacing with 8051 microcontroller
  • 7 CODE of servo motor interfacing with 8051 microcontroller
  • 8  APPLICATIONS OF SERVO MOTOR interfacing

CONSTRUCTION of servo motor

A DC servo motor consists of:

  • DC motor
  • Potentiometer (variable resistor)
  • Gear assembly
  • Control circuit

It consists of a closed loop system. Positive feedback is given to control the motion and position of the shaft. Feedback signal is generated by comparing output signal and reference input signal. Now, this feedback signal will act as input signal to control device. This signal will remain present as long as there remains a difference between reference input signal and output signal. So we have to maintain output of this system at desired value in presence of noises.

PRINCIPLE of interfacing servo motor

Servo motor is controlled by PWM (Pulse with Modulation) technique in which we control the angle of rotation through the duration of pulse applied to its Control pin.

READ  PIC18 Pulse Width Modulation (PWM) DC Motor Speed Controller with the RPM Counter Project

It has three connection wires for:

  • Positive supply V+
  • Negative supply or Ground V-
  • Control signal

servo-motor-interfacing

First two wires are used for giving power to motor. The control signal is connected with microcontroller to feed PWM signals. Gear and potentiometer control the DC motor in it. Servo motor can turn to 90, 180 degree in either direction and can go up to 360 degrees. Turning angle depends on manufacturing. The servo motor expects a pulse after every 20ms. Length of pulse determines how far the motor turns. The shaft angle exceeds with increase of pulse width. The duration of that logic 1 pulse can be from 1ms to 2ms.

  • 1ms duration pulse can rotate servo motor to 0 degree
  • 5ms duration pulse can rotate it to 90 degree
  • 2ms duration pulse can rotate it to 180 degree

So we can say that pulse duration between 1ms to 2ms can rotate Servo motor to any angle that is between 0 and 180 degree.

rotate Servo motor

INTERFACING WITH 8051 MICROCONTROLLER

We will control servo motor with AT89C51 microcontroller. Servo motor red and black wires are connected to battery and ground respectively. Its control wire is connected with any port pin of microcontroller.

CIRCUIT COMPONENTS:

  • AT89C51 microcontroller
  • 12 MHz Oscillator
  • 5V DC battery
  • Servo motor
  • 2 Ceramic capacitors – 33pF
  • 300Ω resistors – 3
  • Push buttons – 3

CONNECTIONS diagram of servo motor interfacing with 8051 microcontroller

  • P2 of 8051 microcontroller is used as output port. Its lower one pin is used which is connected with control pin of servo to give logic input to servo motor.
  • P0 of 8051 microcontroller is used as output port. Its lower three pins are connected with push buttons so that we can manually start the motor.
  • 5V battery is used to give input to servo motor.
READ  Building your own Simple Laser Projector using the Microchip PIC12F683 Microcontroller

PROTEUS SIMULATION of servo motor interfacing with 8051 microcontroller

servo-motor-interfacing-with-8051-microcontroller

WORKING of servo motor interfacing with 8051 microcontroller

When we start the simulation, motor will not rotate until any button is pressed. When 1st push button is pressed, servo motor will rotate up to 90 degree. When I press 2nd push button, it can rotate up to 180 degree and stops. And when 3rd push button is pressed, it will rotate up to 270 degrees.

CODE of servo motor interfacing with 8051 microcontroller

#include <REGX51.H>

void Delay_servo(unsigned int);

sbit control_pin=P2^0;

sbit B1=P0^0;

sbit B2=P0^1;

sbit B3=P0^2;

void main()

{

P0=0x07;                                            // input port

control_pin=0;                                                 // output pin

do

{

if(B1==1)

{                                              //Turn to 90 degree

control_pin=1;

Delay_servo(1218);

control_pin=0;

}

else if(B2==1)

{                                               //Turn to 180 degree

control_pin=1;

Delay_servo(1470);

control_pin=0;

}

else if(B3==1)

{                                               //Turn to 270 degree

control_pin=1;

Delay_servo(1720);

control_pin=0;

}

}while(1);

}

void Delay_servo(unsigned int d)

{

TMOD &=0xF0;                    // Clear 4bit field for Timer0

TMOD|=0x01;                                   // Set timer0 in mode1, 16bit

TH0=0xFF – (d>>8)&0xFF;              // Load delay vales Timer 0 + Bitwise right shift[c][d]a >> b

TL0=0xFF- d&0xFF;

ET0=1;                                              //Enable timer0 interrupts

EA=0;                                                // Global Interrupt

TR0=1;                                              // Start timer 0

while(TF0==0);                                 // Wait for overflow

TR0=0;                                  //Stop timer0

TF0=0;                                              // Clear Flag

}

Read More Information….

servo motor interfacing with 8051 using keil compiler




READ  PWM DC Motor Controller for PIC12F683

Leave a Comment

*
= 3 + 7

Read previous post:
HIGH ACCURACY 3-AXIS INCLINOMETER WITH DIGITAL TRUE INCLINATION ANGLE OUTPUT

Murata has announced a new 3-axis inclination sensor with a tilt angle output and digital SPI interface. The high performance SCL3300 series of devices will...

Close
Scroll to top