Skip to content

ESP32 with Servo motor Control | ESP32 Servo Tutorial #2

The ESP32 microcontroller is an advanced system on a chip that combines WiFi and Bluetooth capabilities with a powerful microcontroller and processing unit. It is a highly versatile and low-cost solution for many applications, including Internet of Things (IoT) projects, home automation, and robotics. In this article, we will explore how can we do esp32 with servo motor interfacing.

Table of Contents

HTML Image as link


A servo motor is a type of motor that can control the position of a load. It consists of a small DC motor, a gear system, and a feedback mechanism that allows the motor to rotate to a specific angle. Servo motors are commonly used in robotic systems, control systems, and precision positioning applications.

esp32 with servo motor

The ESP32 has a number of digital output pins that can be used to control the servo motor. To control the servo motor, we need to generate a pulse-width modulation (PWM) signal that will set the position of the servo motor using esp32. The PWM signal is generated by the microcontroller and sent to the servo motor through one of its output pins.


The first step in controlling a servo motor with an ESP32 is to set up the hardware. The ESP32 can be programmed using the Arduino Integrated Development Environment (IDE), which is a free and open-source software platform. To get started, you will need an ESP32 development board, a servo motor, and a few other components. The wiring diagram for connecting the ESP32 and the servo motor is shown below:

HTML Image as link

The ESP32 development board is connected to the esp32 with servo motor using a wire. The other end of the wire is connected to the control pin of the servo motor. The ground and power lines are connected to the corresponding pins on the ESP32 development board.

esp32 with servo motor control degree

Once the hardware is set up, we can start programming the ESP32. We will be using the Servo library that is built into the Arduino IDE to control the servo motor. This library makes it easy to control the servo motor by providing a simple interface that abstracts away the low-level details of the PWM signal generation.


esp32 with servo motor circuit diagram
Picture credit @randomnerd


#include <Servo.h>

Servo myservo;  // create servo object to control a servo

void setup() {
  myservo.attach(13);  // attaches the servo on pin 2 to the servo object

void loop() {
  for (int pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  for (int pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position

In the code, we start by including the Servo library and creating a Servo object named my servo. In the setup function, we call the attach function of the Servo object to connect the servo motor to the specified pin on the ESP32 in the esp32 servo motor control (pin 2 in this example).

In the loop function, we use two for loops to control the servo motor. The first loop goes from 0 degrees to 180 and the other will go from 180 to 0 degrees.

So, the servo motor will turn from left to right and right to left.


  • ESP32 could be used to control the movement of a robotic arm
  • In-Home automation
  • To control the precise degree of angle for example big clock.


Question:- ESP32 is not uploading the code giving an error during uploading

Answer:- Push and hold the boot button on the esp32 during the upload of firmware

Question:- which pins can operate the servo motors

Answer:- each PWM pin can operate the servo motor

Question:- how to choose servo motor 180 or 360

Answer: -Depends on your application if you want to rotate the motor under 180 degrees then choose the 180-degree servo.

Leave a Reply

Your email address will not be published. Required fields are marked *