ESP32 Servo motor

Control a servomotor with ESP32

A servomotor can be controlled with an ESP32 microcontroller by connecting it to the ESP32‘s digital pins. The servomotor typically has three wires: power, ground, and signal. The power and ground wires provide power to the servomotor, while the signal wire is used to send control signals to the servomotor.

The ESP32 can be programmed to control the position of the servomotor by sending pulses of varying duration to the signal wire. These pulses are typically generated using the Pulse Width Modulation (PWM) technique. The duration of the pulses determines the position of the servo’s shaft.

To control the servomotor with the ESP32, you can use a library such as the Servo library, which simplifies the process of controlling the servomotor by providing a set of functions for initializing and controlling the servomotor.

Additionally, the ESP32 can be connected to other devices such as sensors, actuators, or other microcontrollers to create a more complex system. The ESP32 can also be connected to a Wi-Fi network to send and receive data, or to communicate with other devices using various protocols such as HTTP, MQTT, or Bluetooth.

When using a servomotor with an ESP32, it’s important to ensure that the servomotor is properly connected, configured, and powered, and that the ESP32 is properly programmed. Additionally, it’s important to ensure that the system is compliant with local laws and regulations, and that it meets safety standards.

Purpose of this tutorial:

In this tutorial we will test the servomotor by sweeping an angular range in one direction and then in the other:

  1. It is positioned at the angle 0 °

  2. it is positioned at the 180 ° angle.

  3. we go back to step 1

Necessary components


The ESP32 is a low-cost, low-power microcontroller with built-in Wi-Fi and Bluetooth capabilities. It is a popular choice for IoT projects and is commonly used for a variety of applications such as home automation, wireless control, and sensor data logging. The ESP32 features a dual-core processor, a rich set of peripherals, and support for a wide range of protocols. It can be programmed using the Arduino IDE and various other programming languages such as C, C++, and MicroPython.

Additionally, the ESP32 has a wide range of features including:

  • A high-performance processor with a clock speed of up to 240 MHz
  • Support for various types of wireless connectivity such as Wi-Fi, Bluetooth, and Bluetooth Low Energy (BLE)
  • Multiple communication interfaces such as I2C, SPI, UART, and I2S
  • A large number of GPIO pins to connect to external devices and sensors
  • A built-in security module for secure communication

The ESP32 is often used in projects where a low-cost, low-power device with Wi-Fi and Bluetooth capabilities is needed, and it is commonly used with other sensors and devices to build IoT projects, home automation systems, wireless control systems, and data logging systems.


A servomotor is a type of motor that can be controlled to rotate to a specific position, making it well suited for precise control of mechanical systems. Servomotors are commonly used in robotics, automation and control systems, and other applications that require precise control of position or speed.

A servomotor typically consists of a DC motor, a gear train, a position-sensing device, and a control circuit. The position-sensing device, typically an encoder, provides feedback to the control circuit, which uses this information to ensure that the motor is rotating to the correct position.

There are several types of servomotors available, including:

  • Standard servomotors, which can rotate through a range of 180 degrees or more.
  • Continuous rotation servomotors, which can rotate continuously in either direction, similar to a standard DC motor.
  • Linear servomotors, which convert rotary motion into linear motion using a screw or a linear actuator.

The control of a servomotor is typically done by sending control signals in the form of PWM (Pulse Width Modulation) pulses to the control circuit. The width of these pulses determines the position of the servo’s shaft.

Connecting wires

Connecting wires refers to the process of physically connecting wires or cables to a device or circuit in order to establish an electrical connection. This can be done by using various connectors such as plugs, sockets, or terminal blocks. The wires are typically color-coded to indicate their function, such as red for power, black for ground, and yellow for signals.

Test plate 

A test plate is a type of circuit board that is used to test electronic components. It typically consists of a flat board made of a non-conductive material, such as plastic or fiberglass, with a number of holes or pads that are used to connect electronic components. The test plate allows you to connect electronic components and test them easily.


The connection is almost always the same and will be done using 3 wires, the main colors of which you may encounter:

  • Red: power supply wire to be connected to the (+) terminal of a 9V battery

  • Brown: wire to connect to the GND pin of the ESP32 board

  • Yellow: Positioning signal wire connected to pin D4 of the ESP32 board

Programme en micropython

Voici le programme qui permet de contrôler un servomoteur  par la carte ESP32.

0 commentaire

Leave a comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top