How to use two servo motors simultaneously in opposite directions.


Controling of two servo motors :

 when we work on Servo ,in most of the cases a challenge comes  with arduino that how to work on two different servo motors  simultaneously in opposite direction rotations . I have used one  solution .now available here .

in servo motor we use gears and DC motor . if we think in deep then dc motor is capable to work on CW and CCW directions .   following are the steps which I have used .:
·         from two servo choose any one and open it  from back side with the help of screw driver .
·         change the motor wire with each other ( 1st  wire  will replace 2nd wire and 2nd will replace 1st )
·         now change  the 1st and 3rd pin connection  of servo potentiometer with each other ,if you want to change it .
This is the direct solution to operate both servos in opposite directions on single time .


 interfacing with arduino :


make any one GPIO pin as output for arduino .
·         let suppose we are taking pin no 4  .as motors output .
·         connect both servo signal pins on pin no. 4  ,Vcc,ground   on 5v and ground
 


 Test Code :


you can use normal servo sweep example to check the output (from example lib.).



Code:

#include
Servo myservo; 
int pos = 0;    // variable to store the servo position
void setup()
 {
  myservo.attach(4);  // attaches the servo on pin 9 to the servo
 }
void loop() {
  for (pos = 0; pos <= 90; pos += 1)
 {
myservo.write(pos);           
    delay(15);                   
  }
  for (pos = 90; pos >= 0; pos -= 1)
{     myservo.write(pos);               
 delay(15);     
          }
}



Video Link: 

in given video speed of servos is different because both the servos are of different configuration.

Comments

  1. You can use below code without swapping of wires .:-

    #include // Include servo library

    Servo servoLeft; // Declare left servo signal
    Servo servoRight; // Declare right servo signal

    void setup() // Built in initialization block
    {
    servoLeft.attach(13); // Attach left signal to pin 13
    servoRight.attach(12); // Attach right signal to pin 12

    servoLeft.writeMicroseconds(1700); // 1.7 ms -> counterclockwise
    servoRight.writeMicroseconds(1300); // 1.3 ms -> clockwise
    }

    void loop() // Main loop auto-repeats
    { // Empty, nothing needs repeating
    }

    ReplyDelete

Post a Comment