Controlling 2 Servo Motors using Arduino Board
Two Servo Motors Connection using Arduino Board |
This code is to control two servo motor movements using an Arduino Uno with a 90-degree angle change for both servo motors simultaneously.
Requirements
- Arduino Board
- 2 Servo Motors
- 220 ohms Resistors (2)
- Jumper Wires
- Arduino programming cable
Motor used
Tower Pro SG90 Servo Motor - 9 gms Mini/Micro Servo Motor
The servo motors usually provide control over the 180° range.
![]() |
Tower Pro SG90 Servo Motor |
Specifications
- Operating Voltage of servo Motor - 3V to 7.2V
- Motor torque @4.8V - 1.2 kg-cm
- Motor torque @6.6V - 1.6 kg-cm
- Servo motor Gear Type - Plastic
- Motor Weight - 9gms
Note- To change the angle of servo motor just change angle of degree from 0-180 in code.
In this code, we first include the Servo.h library. Then we declare two servo motor objects, servo1, and servo2.
In the setup function, we attach the servos to PWM pins 5 and 6 on the Arduino Uno.
In the loop function, we first set servo1 to 90 degrees and servo2 also to 90 degrees using the write method. We then wait for 1 second using the delay function.
Next loop, we set servo1 to 0 degrees and servo2 also to 0 degrees. Again, we wait for 1 second using the delay function.
This sequence of setting the two servos to different angles and then waiting is repeated in a loop, so the servos will continue to move back and forth between their respective positions
.
Note that you may need to adjust the angles and delay times to suit your specific needs. Also, make sure to connect the power and ground pins of the servos to the appropriate pins on the Arduino, as well as the signal pins to pins 5 and 6 in this example.
Code
Servo motor Arduino code 90 degrees Rotation
#include <Servo.h>
Servo servo1;
Servo servo2;
void setup() {
servo1.attach(5); // attach servo to pin 5
servo2.attach(6); // attach servo to pin 6
}
void loop() {
servo1.write(90); // set servo1 to 90 degrees
servo2.write(90); // set servo2 to 90 degrees
delay(1000); // wait for 1 second
servo1.write(0); // set servo1 to 0 degrees
servo2.write(0); // set servo2 to 0 degrees
delay(1000); // wait for 1 second
}
Servo motor Arduino code 180 degrees Rotation
#include <Servo.h>
Servo servo1;
Servo servo2;
void setup() {
servo1.attach(5); // attach servo to pin 5
servo2.attach(6); // attach servo to pin 6
}
void loop() {
servo1.write(180); // set servo1 to 180 degrees
servo2.write(180); // set servo2 to 180 degrees
delay(1000); // wait for 1 second
servo1.write(0); // set servo1 to 0 degrees
servo2.write(0); // set servo2 to 0 degrees
delay(1000); // wait for 1 second
}
Controlling 3 Servo Motors using Arduino Board
Controlling 3 Servo Motors using Arduino Board with code |
Code 1
#include
Servo servo1; // create servo object to control a servo
Servo servo2;
Servo servo3;
int pos1 = 0; // variable to store the servo position
int pos2 = 0;
int pos3 = 0;
void setup() {
servo1.attach(5); // attaches the servo on pin 9 to the servo object
servo2.attach(6);
servo3.attach(9);
}
void loop() {
// move servo 1
for (pos1 = 0; pos1 <= 180; pos1 += 1) { // goes from 0 degrees to 180 degrees in steps of 1 degree
servo1.write(pos1); // tell servo to go to position in variable 'pos1'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos1 = 180; pos1 >= 0; pos1 -= 1) { // goes from 180 degrees to 0 degrees in steps of 1 degree
servo1.write(pos1); // tell servo to go to position in variable 'pos1'
delay(15); // waits 15ms for the servo to reach the position
}
// move servo 2
for (pos2 = 0; pos2 <= 180; pos2 += 1) { // goes from 0 degrees to 180 degrees in steps of 1 degree
servo2.write(pos2); // tell servo to go to position in variable 'pos2'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos2 = 180; pos2 >= 0; pos2 -= 1) { // goes from 180 degrees to 0 degrees in steps of 1 degree
servo2.write(pos2); // tell servo to go to position in variable 'pos2'
delay(15); // waits 15ms for the servo to reach the position
}
// move servo 3
for (pos3 = 0; pos3 <= 180; pos3 += 1) { // goes from 0 degrees to 180 degrees in steps of 1 degree
servo3.write(pos3); // tell servo to go to position in variable 'pos3'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos3 = 180; pos3 >= 0; pos3 -= 1) { // goes from 180 degrees to 0 degrees in steps of 1 degree
servo3.write(pos3); // tell servo to go to position in variable 'pos3'
delay(15); // waits 15ms for the servo to reach the position
}
}
Code2
#include
Servo servo1; // create servo object to control servo1
Servo servo2; // create servo object to control servo2
Servo servo3; // create servo object to control servo3
void setup() {
servo1.attach(9); // attaches the servo on pin 9 to the servo1 object
servo2.attach(10); // attaches the servo on pin 10 to the servo2 object
servo3.attach(11); // attaches the servo on pin 11 to the servo3 object
}
void loop() {
servo1.write(90); // set servo1 to mid position
servo2.write(45); // set servo2 to a 45 degree position
servo3.write(135); // set servo3 to a 135 degree position
delay(1000); // wait for 1 second
servo1.write(0); // set servo1 to minimum position
servo2.write(90); // set servo2 to mid position
servo3.write(180); // set servo3 to maximum position
delay(1000); // wait for 1 second
servo1.write(180); // set servo1 to maximum position
servo2.write(135); // set servo2 to a 135 degree position
servo3.write(0); // set servo3 to minimum position
delay(1000); // wait for 1 second
}
Controlling 4 Servo Motors using Arduino Board with Code
#include
Servo servo1; // create servo object to control servo1
Servo servo2; // create servo object to control servo2
Servo servo3; // create servo object to control servo3
Servo servo4; // create servo object to control servo4
void setup() {
servo1.attach(5); // attaches the servo on pin 9 to the servo1 object
servo2.attach(6); // attaches the servo on pin 10 to the servo2 object
servo3.attach(9); // attaches the servo on pin 11 to the servo3 object
servo4.attach(10); // attaches the servo on pin 12 to the servo4 object
}
void loop() {
servo1.write(0); // set servo1 to minimum position
servo2.write(45); // set servo2 to a 45 degree position
servo3.write(90); // set servo3 to mid position
servo4.write(135); // set servo4 to a 135 degree position
delay(1000); // wait for 1 second
servo1.write(90); // set servo1 to mid position
servo2.write(90); // set servo2 to mid position
servo3.write(0); // set servo3 to minimum position
servo4.write(180); // set servo4 to maximum position
delay(1000); // wait for 1 second
servo1.write(180); // set servo1 to maximum position
servo2.write(135); // set servo2 to a 135 degree position
servo3.write(90); // set servo3 to mid position
servo4.write(45); // set servo4 to a 45 degree position
delay(1000); // wait for 1 second
servo1.write(90); // set servo1 to mid position
servo2.write(0); // set servo2 to minimum position
servo3.write(180); // set servo3 to maximum position
servo4.write(90); // set servo4 to mid position
delay(1000); // wait for 1 second
}
Controlling 5 Servo Motors using Arduino Board with Code
#include
Servo servo1; // create servo object to control servo1
Servo servo2; // create servo object to control servo2
Servo servo3; // create servo object to control servo3
Servo servo4; // create servo object to control servo4
Servo servo5; // create servo object to control servo5
void setup() {
servo1.attach(5); // attaches the servo on pin 9 to the servo1 object
servo2.attach(6); // attaches the servo on pin 10 to the servo2 object
servo3.attach(9); // attaches the servo on pin 11 to the servo3 object
servo4.attach(10); // attaches the servo on pin 12 to the servo4 object
servo5.attach(11); // attaches the servo on pin 13 to the servo5 object
}
void loop() {
servo1.write(0); // set servo1 to minimum position
servo2.write(45); // set servo2 to a 45 degree position
servo3.write(90); // set servo3 to mid position
servo4.write(135); // set servo4 to a 135 degree position
servo5.write(180); // set servo5 to maximum position
delay(1000); // wait for 1 second
servo1.write(90); // set servo1 to mid position
servo2.write(90); // set servo2 to mid position
servo3.write(0); // set servo3 to minimum position
servo4.write(180); // set servo4 to maximum position
servo5.write(90); // set servo5 to mid position
delay(1000); // wait for 1 second
servo1.write(180); // set servo1 to maximum position
servo2.write(135); // set servo2 to a 135 degree position
servo3.write(90); // set servo3 to mid position
servo4.write(45); // set servo4 to a 45 degree position
servo5.write(0); // set servo5 to minimum position
delay(1000); // wait for 1 second
servo1.write(90); // set servo1 to mid position
servo2.write(0); // set servo2 to minimum position
servo3.write(180); // set servo3 to maximum position
servo4.write(90); // set servo4 to mid position
servo5.write(135); // set servo5 to a 135 degree position
delay(1000); // wait for 1 second
}
Thank You!
Have A Great Day!