小编
Published2025-10-15
Learn how to effectively control a servo motor using Arduino in this detailed guide. Whether you’re a beginner or a hobbyist, this article walks you through the step-by-step process of connecting and programming a servo motor with your Arduino board. Dive into the basics, wiring, and code to create precise and responsive movements.

servo motor, Arduino, servo motor connection, Arduino coding, robotics, motor control, electronics, DIY projects, servo motor tutorial, Arduino tutorial
Understanding Servo Motors and How to Connect Them to Arduino
Servo motors are widely used in robotics, automation, and various DIY electronics projects due to their ability to provide precise control over angular movements. Unlike DC motors, which rotate continuously, a servo motor moves to specific angles based on the input signal, making them perfect for applications like controlling arms, rotating sensors, or even steering mechanisms in robots.
A servo motor is essentially a motor that is equipped with a feedback mechanism, allowing it to control its position accurately. It has three main parts:
DC motor – The core motor that drives the rotational movement.
Feedback sensor – A potentiometer or encoder that keeps track of the current position.
Control circuit – A circuit that takes input signals and adjusts the motor’s position accordingly.
There are different types of servo motors, such as:
Standard Servo Motors: These have a typical rotation range of 0° to 180° and are used in general applications.
Continuous Rotation Servos: Unlike standard servos, these can rotate continuously in either direction, which is ideal for robotics requiring constant rotation.
High-Torque Servos: These are more powerful and can handle higher loads. They are typically used in heavy-duty applications.
Why Use Arduino for Servo Motor Control?
Arduino provides an ideal platform for controlling servo motors due to its simplicity, low cost, and flexibility. The Arduino board generates Pulse Width Modulation (PWM) signals, which are used to control the angle of the servo motor. The process involves sending a series of pulses to the servo, each pulse corresponding to a different angle.
Components Required for Arduino and Servo Motor Setup
Before diving into the connections and code, let’s list the components you’ll need:
Arduino Board (Arduino Uno, Nano, or any compatible board)
Servo Motor (e.g., SG90, MG996R)
External Power Source (optional, depending on your servo motor’s power requirements)
Breadboard (optional but helpful for easy connections)
How to Connect a Servo Motor to Arduino
The connection process is straightforward. You only need three wires: VCC, GND, and Control.
VCC (Power Supply): Connect the VCC pin of the servo motor to the 5V pin on the Arduino board. If your servo motor requires more power, use an external 5V power supply.
GND (Ground): Connect the GND pin of the servo motor to the GND pin on the Arduino board.
Control Pin: Connect the control pin of the servo motor (usually the yellow or orange wire) to one of the PWM-capable digital pins on the Arduino, such as pin 9.
Now, your servo motor is connected to the Arduino and ready for coding!
Coding the Arduino to Control the Servo Motor
Once the hardware connections are in place, it’s time to write the code to control the servo motor’s movement. The Arduino IDE provides a simple and efficient environment for coding, and with the Servo library, controlling the servo motor is a breeze.
Step 1: Installing the Servo Library
The first step is to ensure that the Servo library is installed in your Arduino IDE. Fortunately, this library comes pre-installed with the Arduino IDE, so there’s no need for additional downloads.
Now, let’s look at the simple code that will control the servo motor’s movement.
#include // Include the Servo library
Servo myservo; // Create a servo object
myservo.attach(9); // Attach the servo control to pin 9
// Sweep the servo from 0° to 180° and back
for (int pos = 0; pos <= 180; pos++) {
myservo.write(pos); // Tell the servo to go to position 'pos'
delay(15); // Wait for the servo to reach the position
for (int pos = 180; pos >= 0; pos--) {
myservo.write(pos); // Tell the servo to go to position 'pos'
delay(15); // Wait for the servo to reach the position
Library Import: The #include line tells the Arduino to include the Servo library, which provides the necessary functions to control the servo.
Servo Object: The Servo myservo; line creates an instance of the Servo class, which will control the servo motor.
Setup Function: In the setup() function, we use the myservo.attach(9); command to attach the servo control pin to pin 9. This is the pin where the control wire of the servo is connected.
In the loop(), we use a for loop to gradually change the servo’s position from 0° to 180° and back. The myservo.write(pos) command sets the servo’s position, where pos is the angle.
The delay(15) function adds a small delay between movements, allowing the servo time to reach each position before the next change.
Step 3: Uploading the Code
Once you’ve written the code, connect your Arduino board to your computer via USB and click on the Upload button in the Arduino IDE. The Arduino will compile the code and upload it to the board.
After the upload is complete, the servo motor will start moving between 0° and 180°, sweeping back and forth.
Step 4: Fine-Tuning the Servo Motor’s Movement
Now that you’ve successfully controlled the servo motor, you can modify the code to suit your specific application:
Adjust the Speed: By changing the value in delay(), you can make the servo move faster or slower. A lower delay value makes the servo sweep faster, while a higher value makes it slower.
Set Specific Angles: Instead of sweeping from 0° to 180°, you can set the servo to move to specific angles, such as 45°, 90°, or 120°, by adjusting the values in the myservo.write() function.
Use Multiple Servos: You can control multiple servo motors by creating multiple servo objects and attaching them to different pins.
If your servo isn’t responding:
Double-check your wiring to ensure that the VCC, GND, and control pin are connected properly.
Ensure that your Arduino is powered and the correct board is selected in the Arduino IDE.
If using an external power supply, make sure it is providing sufficient voltage and current for the servo motor.
In this guide, you’ve learned how to connect a servo motor to an Arduino board and control it with simple code. Whether you’re building a robot or designing an automation system, servo motors and Arduino are a powerful combination that can help you achieve precise and reliable motion control.
With just a few basic components and some simple code, you can open up a world of possibilities for your projects. Experiment with different servo motor types, movement patterns, and control methods to enhance your understanding and creativity in robotics and electronics.
Leveraging innovations in modular drive technology, Kpower integrates high-performance motors, precision reducers, and multi-protocol control systems to provide efficient and customized smart drive system solutions.
Update:2025-10-15
Contact Kpower's product specialist to recommend suitable motor or gearbox for your product.