
Cuando trabajamos con un ESP32 podríamos dudar sobre qué pines deberíamos usar en nuestro proyecto, cuál placa debería usar y si es mejor 38 o 30 pines. Este artículo pretende dar un breve resumen sobre lo que tenemos que tomar en cuenta.
- Ojo, parte de las imagenes y tablas fueron tomadas de otros sitios. Al final del artículo podrán ver las fuentes.
¿Qué es el ESP32?
Una serie de microcontroladores desarrollados por Espressif.
¿Existen muchas versiones? ¿Cuál debería usar?
- Sí, existen muchas versiones y estas variarán en caracteristicas y capacidades. Algunos son dual-core, otros son single-core, algunos tienen pantallas OLED incorporadas.
- Principalmente podrás encontrar placas con 30 y 38 pines expuestos.
- Existen versiones con antenas WiFi externas e internas.
- Comunmente trabajamos con “
ESP32 DEVKIT DOIT
”. El equipo de “Random Nerds Tutorials” también recomienda el uso de:- Adafruit ESP32 Feather
- Sparkfun ESP32 Thing
- NodeMCU-32S
- Wemos LoLin32
- El ESP32-S3 puede ser una gran opción debido a sus capacidades mejoradas
Consideraciones importantes al usar ESP32 DEVKIT DOIT
- Para la conexión vía usb en Windows, tu ESP32 podría utilizar el chip “CP2102” o “CH340”. Es importante conocer cuál es la que tú usas e instalar los drivers correspondientes. Linux y Mac no requieren la instalación de drivers adicionales.
- La placa puede venir con puerto microusb o USB C
- La placa tiene el botón “EN”, para resetear el dispositivo.
- La placa tiene el botón “BOOT”, para poner el dispositivo en “flashing mode”
¿Cuántos pines tiene el ESP32?
48 pines con múltiples funciones. No todos los pines vienen expuestos debido a que no todos pueden/deben usarse. Usualmente encontrarás ESP32 de 38 y 30 pines.
ESP32 30 PINES VS 38 PINES
La diferencia entre la placa con 30 y 38 pines es la siguiente:
- 6 PINES GPIO extras, los cuales no se recomienda utilizar debido a que son parte del SPI Flash integrado.
- 1 PIN GPIO 0
- 1 PIN GND
En conclusión, es posible que no extrañes esos pines.
Diagrama de pines en el ESP32
¿Se puede ocupar cualquier PIN?
El ESP32 cuenta con la “función de multiplexación”, la cual permite asignar el funcionamiento de cada GPIO. Por lo anterior, podrías asignar cualquier PIN para tu proyecto y el ESP32 haría las asignaciones correctas (aplican restricciones). Sin embargo, el estándar es el siguiente.
Pines por defecto

Pines GPIO
Los Pines GPIO (General-Purpose Input/Output) son los pines que no tienen un propósito predefinido, sino que pueden ser configurados en tiempo de ejecución de dos maneras:
- Modo de Salida (Output): El microcontrolador envía una señal digital (un estado lógico ALTO o BAJO). Esto se utiliza para controlar dispositivos externos, como encender un LED, activar un relé o controlar un motor.
- Modo de Entrada (Input): El microcontrolador lee una señal digital de un dispositivo externo. Esto se utiliza para detectar estados, como si un botón está presionado, o leer datos de un sensor digital.
Tabla de pines de uso seguro
Etiqueta | GPIO | ¿Es seguro de usar? | Razón | Ubicación por defecto |
D0 | 0 | Evitarlo | Must be HIGH during boot and LOW for programming | Derecha |
TX0 | 1 | NO | Tx pin, used for flashing and debugging | |
D2 | 2 | Evitarlo | must be LOW during boot and also connected to the on-board LED | Derecha |
RX0 | 3 | NO | Rx pin, used for flashing and debugging | |
D4 | 4 | SÍ | Derecha | |
D5 | 5 | Evitarlo | must be HIGH during boot | |
D6 | 6 | NO | Connected to Flash memory | |
D7 | 7 | NO | Connected to Flash memory | |
D8 | 8 | NO | Connected to Flash memory | |
D9 | 9 | NO | Connected to Flash memory | |
D10 | 10 | NO | Connected to Flash memory | |
D11 | 11 | NO | Connected to Flash memory | |
D12 | 12 | Evitarlo | must be LOW during boot | Izquierda |
D13 | 13 | SÍ | Izquierda | |
D14 | 14 | SÍ | Izquierda | |
D15 | 15 | Evitarlo | must be HIGH during boot, prevents startup log if pulled LOW | Derecha |
RX2 | 16 | SÍ | Derecha | |
TX2 | 17 | SÍ | Derecha | |
D18 | 18 | SÍ | Derecha | |
D19 | 19 | SÍ | Derecha | |
D21 | 21 | SÍ | Derecha | |
D22 | 22 | SÍ | Derecha | |
D23 | 23 | SÍ | Derecha | |
D25 | 25 | SÍ | Izquierda | |
D26 | 26 | SÍ | Izquierda | |
D27 | 27 | SÍ | Izquierda | |
D32 | 32 | SÍ | Izquierda | |
D33 | 33 | SÍ | Izquierda | |
D34 | 34 | Evitarlo | Input only GPIO, cannot be configured as output | Izquierda |
D35 | 35 | Evitarlo | Input only GPIO, cannot be configured as output | Izquierda |
VP | 36 | Evitarlo | Input only GPIO, cannot be configured as output | Izquierda |
VN | 39 | Evitarlo | Input only GPIO, cannot be configured as output | Izquierda |
Pines de uso seguro

Pines I2C (Inter-Integrated Circuit)
Los pines I2C (Inter-Integrated Circuit) del ESP32 son los pines de comunicación serial síncrona que permiten al microcontrolador interactuar con dispositivos periféricos de baja velocidad. Pantallas OLED, sensores y módulos de expansión.
- Usan dos líneas para conectar varios dispositivos: SDA (Serial Data) y SCL (Serial Clock).
- Su comunicación es Maestro/Esclavo
- Cada dispositivo Esclavo en el bus debe tener una dirección única (generalmente de 7 bits), lo que permite al Maestro comunicarse con hasta 127 dispositivos diferentes en el mismo par de cables.
- Requiere que los pines cuenten con resistencias pull-up (En el ESP32 casi todos los GPIO excepto los de solo entrada)

Pines SPI (Serial Peripheral Interface)
Los pines SPI (Serial Peripheral Interface) del ESP32 son un conjunto de líneas de comunicación serial síncrona de alta velocidad. Es capaz de transferir datos rápidamente entre el microcontrolador y periféricos como módulos de radio, tarjetas SD o pantallas grandes.
El ESP32 cuenta con dos controladores SPI:
- VSPI
- HSPI
A diferencia de I2C, SPI utiliza cuatro líneas para operar. Esto permite la comunicación Full-Duplex (transmisión y recepción simultánea)
- SCK - Serial Clock - Línea generada por el Maestro (ESP32) para sincronizar la transferencia de datos
- MOSI - Master Out, Slave In - Línea de salida de datos del Maestro (ESP32) hacia el Esclavo (periférico)
- MISO - Master In, Slave Out - Línea de entrada de datos al Maestro (ESP32) desde el Esclavo (periférico).
- CS/SS - Chip Select (Slave Select) - Línea de habilitación que el Maestro usa para seleccionar (activar) el periférico Esclavo con el que quiere comunicarse
Pines SPI por defecto:
Controlador | Especificación | Pin (ESP32) | 2da opción * | Ubicación |
VSPI (Virtual SPI / SPI2) | 🟡 CE | NA | GPIO 04 | Derecha |
VSPI (Virtual SPI / SPI2) | 🟠 CSN | GPIO 05 | Derecha | Derecha |
VSPI (Virtual SPI / SPI2) | 🟢 SCK | GPIO 18 | Derecha | Derecha |
VSPI (Virtual SPI / SPI2) | 🟦 MOSI | GPIO 23 | Derecha | Derecha |
VSPI (Virtual SPI / SPI2) | 🟣 MISO | GPIO 19 | Derecha | Derecha |
VSPI (Virtual SPI / SPI2) | IRQ | |||
HSPI (Hardware SPI / SPI3) | 🟡 CE | NA | GPIO 02 | Derecha |
HSPI (Hardware SPI / SPI3) | 🟠 CSN | GPIO 15 | Derecha | Derecha |
HSPI (Hardware SPI / SPI3) | 🟢 SCK | GPIO 14 | Izquierda | Izquierda |
HSPI (Hardware SPI / SPI3) | 🟦 MOSI | GPIO 13 | Izquierda | Izquierda |
HSPI (Hardware SPI / SPI3) | 🟣 MISO | GPIO 12 | Izquierda | Izquierda |
HSPI (Hardware SPI / SPI3) | IRQ |

Pines ADC (Conversor Analógico-Digital)
Los pines ADC (Analog-to-Digital Converter) del ESP32 son los pines GPIO que pueden medir voltajes analógicos continuos y convertirlos en valores digitales discretos. Esto permite al ESP32 leer datos de sensores analógicos, como termistores, potenciómetros o sensores de luz.
- ADC1 - Puede usarse libremente en cualquier momento.
- ADC2 - Podría generar conflictos, pues se comparte con la funcionalidad WiFi del ESP32.

Pines DAC (Convertidor Digital a Analógico)
Los pines DAC (Digital-to-Analog Converter) del ESP32 son los pines GPIO que pueden convertir un valor digital (un número, generalmente de 0 a 255) en un voltaje analógico de salida correspondiente. Esto permite al ESP32 generar señales de audio simples o formas de onda analógicas arbitrarias sin necesidad de componentes externos.

Pines Touch
Los pines Touch del ESP32 son pines GPIO especiales que pueden detectar cambios en la capacitancia eléctrica, lo que permite utilizarlos como sensores táctiles sin la necesidad de componentes adicionales. Cuando un dedo toca un área conductora conectada al pin, el sistema detecta un cambio.

Pines UART (Universal Asynchronous Receiver/Transmitter)
Los pines UART (Universal Asynchronous Receiver/Transmitter) del ESP32 son los pines de comunicación serial asíncrona que permiten al microcontrolador enviar y recibir datos en serie a otros dispositivos (como una PC a través de USB/Serial o módulos Bluetooth) utilizando un formato simple de inicio/datos/parada.
- Se debe tener extremo cuidado al usar los pines UART que coinciden con los del bus SPI Flash (GPIO 9, 10, 11)

Pines RTC (Real Time Clock)
Los pines RTC (Real-Time Clock) del ESP32 son un subconjunto de pines GPIO que están conectados al dominio de energía RTC low-power. Estos pines tienen la capacidad única de mantener su estado y funcionalidad de despertar (wake-up) mientras el chip está en modo de Sueño Profundo (Deep Sleep).
El dominio RTC es crucial para las aplicaciones de muy bajo consumo en el ESP32, ya que permite que la mayor parte del chip permanezca apagada mientras una pequeña porción sigue monitoreando los eventos.

Pines Strapping (Sujeción)
Los pines Strapping (o pines de configuración de arranque) del ESP32 son un pequeño grupo de pines GPIO cuya condición (si están en estado ALTO/High o BAJO/Low) es leída por el chip durante el proceso de reinicio o encendido. Su estado dicta el modo de arranque del ESP32 para saber si se tiene que:
- ejecutar el programa ya cargado
- esperar a recibir un nuevo firmware.

Pines de energía
Los Pines de Energía del ESP32 son los pines dedicados a alimentar el microcontrolador y el resto de la placa, así como a proporcionar puntos de conexión a tierra.
- 5V (V-IN o VBUS): Este pin generalmente se conecta a la entrada de alimentación de 5 voltios, ya sea directamente desde el puerto USB o desde una fuente externa. Si alimentas el ESP32 a través de este pin, el regulador de voltaje de la placa reduce esta tensión a 3.3V para el chip.
- 3V3 (o VDD): Este pin proporciona la tensión de operación nativa del chip ESP32, que es de 3.3 voltios. Puedes usar este pin para:
- Alimentar el ESP32 directamente (si omites el regulador de 5V).
- Suministrar energía a periféricos externos de baja potencia (como sensores o módulos) que operan a 3.3V.
- GND (Tierra): Es el pin de referencia de potencial eléctrico (0 voltios).

Enable Pin
El pin EN (Enable) es un pin de control, aunque está íntimamente ligado a la alimentación, ya que controla la activación del chip:
- Función: Cuando el pin EN está conectado a ALTO (3.3V), el chip ESP32 está habilitado y funcionando.
- Reinicio: Conectar el pin EN a BAJO (GND) realiza un reinicio físico (hardware reset) del chip. Este pin generalmente está conectado al botón de “Reset” o “RST” de la placa.
A diferencia de un reinicio por software (esp_restart()), usar el pin EN es una forma de garantizar que el chip se reinicie desde cero.
El uso de la función esp_restart() en el ESP32 no garantiza un reinicio “desde cero” porque realiza un reinicio de tipo software, no un reinicio físico (hardware).
Tipo de Reinicio | Mecanismo | Registros/Memoria RTC | Garantía de "Desde Cero" |
Software ( esp_restart() ) | El código salta a la rutina de inicio. | Persisten | No (Solo reinicia el núcleo principal) |
Hardware (Botón EN/RST) | El voltaje de alimentación se desconecta/se corta temporalmente. | Se borran | Sí (Limpia todo el estado del chip) |

Referencias y más información
Thanks a lot for your content and images.
- ESP32 Pinout Reference: Which GPIO pins should you use?
- ESP32 Pinout Reference
- Getting Started with the ESP32 Development Board
Nota final¡Gracias por terminar de leer este artículo! uwur
— El Capitán
¿Tienes alguna duda o te gustaría comentar algo sobre este artículo?
Puedes encontrarme en: