En este momento estás viendo Clase 3: Referencia de pines ESP32 – ¿Qué pines GPIO debes usar?
Pinout completo del módulo ESP-WROOM-32

Clase 3: Referencia de pines ESP32 – ¿Qué pines GPIO debes usar?

El chip ESP32 viene con 48 pines con múltiples funciones. No todos los pines están expuestos en todas las placas de desarrollo ESP32 y algunos pines no se pueden utilizar. Esta guía de referencia te ayudará a saber exactamente qué pines GPIO podés usar, cuáles evitar y cuáles requieren atención especial.

⚠️ Nota: No todos los GPIO son accesibles en todas las placas de desarrollo, pero cada GPIO específico funciona de la misma manera independientemente de la placa que estés utilizando.

Pinout completo del módulo ESP-WROOM-32
Pinout completo del módulo ESP-WROOM-32
Placa ESP32 DEVKIT sostenida en la mano
Placa ESP32 DEVKIT V1

Periféricos ESP32

Los periféricos del ESP32 incluyen:

  • 18 canales de convertidor analógico a digital (ADC)
  • 3 interfaces SPI
  • 3 interfaces UART
  • 2 interfaces I2C
  • 16 canales de salida PWM
  • 2 convertidores de digital a analógico (DAC)
  • 2 interfaces I2S
  • 10 GPIO de detección capacitiva

Las funciones ADC y DAC se asignan a pines estáticos específicos. Sin embargo, podés decidir qué pines son UART, I2C, SPI o PWM, simplemente asignándolos en el código gracias a la función de multiplexación del chip ESP32.

Pinout ESP32 DEVKIT V1 DOIT con 36 GPIOs
Pinout ESP32 DEVKIT V1 DOIT con 36 GPIOs y asignaciones predeterminadas

Tabla de referencia GPIO

La siguiente tabla muestra qué pines son seguros para usar como entradas y salidas, y cuáles requieren precaución:

  • 🟢 Verde: seguros para usar sin restricciones.
  • 🟡 Amarillo: usables, pero con comportamiento especial al arrancar.
  • 🔴 Rojo: no se recomienda usarlos como entradas o salidas.
GPIOEntradaSalidaNotas
0🟡 con cuidado🟡 OKEmite señal PWM al arrancar. Debe ser BAJA para entrar en modo intermitente.
1🔴 Pin TX🟡 OKSalida de depuración en el arranque.
2🟢 OK🟢 OKConectado al LED integrado. Debe estar flotando o en BAJO para el modo intermitente.
3🟢 OK🔴 Pin RXALTO en el arranque.
4🟢 OK🟢 OK
5🟢 OK🟢 OKEmite PWM en el arranque. Pin de sujeción.
6🔴 x🔴 xConectado al flash SPI integrado. NO USAR.
7🔴 x🔴 xConectado al flash SPI integrado. NO USAR.
8🔴 x🔴 xConectado al flash SPI integrado. NO USAR.
9🔴 x🔴 xConectado al flash SPI integrado. NO USAR.
10🔴 x🔴 xConectado al flash SPI integrado. NO USAR.
11🔴 x🔴 xConectado al flash SPI integrado. NO USAR.
12🟢 OK🟢 OKFalla al arrancar si está en ALTO. Pin de sujeción.
13🟢 OK🟢 OK
14🟢 OK🟢 OKEmite PWM en el arranque.
15🟢 OK🟢 OKEmite PWM en el arranque. Pin de sujeción.
16🟢 OK🟢 OK
17🟢 OK🟢 OK
18🟢 OK🟢 OK
19🟢 OK🟢 OK
21🟢 OK🟢 OK
22🟢 OK🟢 OK
23🟢 OK🟢 OK
25🟢 OK🟢 OK
26🟢 OK🟢 OK
27🟢 OK🟢 OK
32🟢 OK🟢 OK
33🟢 OK🟢 OK
34🟢 OK🔴 Solo entradaSin resistencia pull-up/pull-down interna.
35🟢 OK🔴 Solo entradaSin resistencia pull-up/pull-down interna.
36🟢 OK🔴 Solo entradaSin resistencia pull-up/pull-down interna.
39🟢 OK🔴 Solo entradaSin resistencia pull-up/pull-down interna.

Pines de solo entrada (GPIO 34 a 39)

Los GPIO 34 a 39 son GPI — pines de solo entrada. No tienen resistencias pull-up o pull-down internas y no se pueden utilizar como salidas:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

Flash SPI integrado (GPIO 6 a 11) — NO USAR

Aunque algunos GPIO del 6 al 11 aparecen en ciertas placas de desarrollo, están conectados al flash SPI integrado del chip ESP-WROOM-32. No los uses en tus proyectos:

  • GPIO 6 — SCK/CLK
  • GPIO 7 — SDO/SD0
  • GPIO 8 — SDI/SD1
  • GPIO 9 — SHD/SD2
  • GPIO 10 — SWP/SD3
  • GPIO 11 — CSC/CMD

GPIO táctiles capacitivos

El ESP32 tiene 10 sensores táctiles capacitivos internos que detectan variaciones de carga eléctrica (como el contacto con la piel humana). También pueden usarse para despertar el ESP32 del modo de sueño profundo:

Sensor táctilGPIO
T0GPIO 4
T1GPIO 0
T2GPIO 2
T3GPIO 15
T4GPIO 13
T5GPIO 12
T6GPIO 14
T7GPIO 27
T8GPIO 33
T9GPIO 32

Convertidor Analógico a Digital (ADC)

El ESP32 tiene 18 canales ADC de 12 bits (el ESP8266 solo tenía 1 de 10 bits). Esto permite lecturas analógicas de 0 a 4095, donde 0 = 0V y 4095 = 3,3V.

⚠️ Importante: los pines ADC2 no se pueden usar mientras se usa Wi-Fi. Si tenés problemas con lecturas analógicas en proyectos con Wi-Fi, usá un pin ADC1.

Canal ADCGPIOCanal ADCGPIO
ADC1_CH0GPIO 36ADC2_CH0GPIO 4
ADC1_CH1GPIO 37ADC2_CH1GPIO 0
ADC1_CH2GPIO 38ADC2_CH2GPIO 2
ADC1_CH3GPIO 39ADC2_CH3GPIO 15
ADC1_CH4GPIO 32ADC2_CH4GPIO 13
ADC1_CH5GPIO 33ADC2_CH5GPIO 12
ADC1_CH6GPIO 34ADC2_CH6GPIO 14
ADC1_CH7GPIO 35ADC2_CH7GPIO 27
ADC2_CH8GPIO 25
ADC2_CH9GPIO 26

⚠️ Los pines ADC del ESP32 no tienen comportamiento lineal. No podrás distinguir con precisión entre 0 y 0,1V, ni entre 3,2V y 3,3V. Tené esto en cuenta al diseñar tus circuitos.

Gráfico de comportamiento no lineal del ADC ESP32: Voltage vs ADC Reading
Gráfico Voltage vs ADC Reading: comportamiento no lineal del ADC del ESP32

Convertidor Digital a Analógico (DAC)

El ESP32 tiene 2 canales DAC de 8 bits para convertir señales digitales en voltajes analógicos:

  • DAC1 → GPIO 25
  • DAC2 → GPIO 26

GPIO de RTC

Los GPIO enrutados al subsistema de baja potencia RTC pueden usarse cuando el ESP32 está en sueño profundo y sirven para despertar al ESP32 cuando el coprocesador ULP está activo:

RTC GPIOGPIORTC GPIOGPIO
RTC_GPIO0GPIO 36RTC_GPIO10GPIO 4
RTC_GPIO3GPIO 39RTC_GPIO11GPIO 0
RTC_GPIO4GPIO 34RTC_GPIO12GPIO 2
RTC_GPIO5GPIO 35RTC_GPIO13GPIO 15
RTC_GPIO6GPIO 25RTC_GPIO14GPIO 13
RTC_GPIO7GPIO 26RTC_GPIO15GPIO 12
RTC_GPIO8GPIO 33RTC_GPIO16GPIO 14
RTC_GPIO9GPIO 32RTC_GPIO17GPIO 27

PWM

El controlador PWM del ESP32 tiene 16 canales independientes. Todos los pines que pueden actuar como salidas pueden usarse como pines PWM, excepto los GPIO 34 a 39. Para configurar una señal PWM necesitás definir en el código:

  • Frecuencia de la señal
  • Ciclo de trabajo
  • Canal PWM
  • GPIO donde emitir la señal

I2C

El ESP32 tiene 2 canales I2C y cualquier pin puede configurarse como SDA o SCL. Los pines predeterminados con Arduino IDE son:

  • SDA → GPIO 21
  • SCL → GPIO 22

Para usar otros pines, llamá a Wire.begin(SDA, SCL); en tu código.

SPI

El mapeo de pines SPI predeterminado es:

SPIMOSIMISOCLKCS
VSPIGPIO 23GPIO 19GPIO 18GPIO 5
HSPIGPIO 13GPIO 12GPIO 14GPIO 15

UART

El ESP32 soporta hasta 3 interfaces UART. Los pines predeterminados son:

PuertoTXRXObservaciones
UART0GPIO 1GPIO 3Reservado para Monitor Serial y carga de código. También usable con otros dispositivos.
UART1GPIO 9GPIO 10⚠️ Conectado al flash SPI. Debe asignarse a otros GPIO.
UART2GPIO 17GPIO 16Disponible para comunicación con dispositivos externos.

Interrupciones

Todos los GPIO del ESP32 pueden configurarse como interrupciones.

Pines de sujeción (Strapping Pins)

Estos pines controlan el modo de arranque del ESP32. Si tenés periféricos conectados a ellos, podés tener problemas al cargar código nuevo:

  • GPIO 0 — debe estar en BAJO para entrar en modo de arranque
  • GPIO 2 — debe estar flotante o en BAJO durante el arranque
  • GPIO 4
  • GPIO 5 — debe estar en ALTO durante el arranque
  • GPIO 12 — debe estar en BAJO durante el arranque
  • GPIO 15 — debe estar en ALTO durante el arranque

En la mayoría de las placas con USB/Serial integrado, no necesitás preocuparte por estos pines ya que la placa los gestiona automáticamente.

Pines en ALTO al arrancar

Algunos GPIO cambian a ALTO o emiten señales PWM al arrancar o reiniciar. Tené cuidado si tenés salidas conectadas a estos pines:

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 a GPIO 11 (flash SPI — no usar)
  • GPIO 14
  • GPIO 15

Pin Enable (EN)

El pin EN es el pin de habilitación del regulador de 3,3V. Está levantado por defecto. Conectarlo a tierra desactiva el regulador, lo que permite usarlo conectado a un pulsador para reiniciar el ESP32.

Corriente máxima por GPIO

La corriente máxima absoluta que puede consumir un GPIO es de 40 mA, según las condiciones de funcionamiento recomendadas en la hoja de datos del ESP32. Respetá este límite para no dañar el chip.

Sensor de efecto Hall integrado

El ESP32 incluye un sensor de efecto Hall integrado que detecta cambios en el campo magnético del entorno, sin necesidad de hardware externo.

Resumen rápido

FunciónGPIO recomendados
Uso general seguro (entrada/salida)4, 5, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33
Solo entrada34, 35, 36, 39
NO USAR6, 7, 8, 9, 10, 11
ADC1 (compatible con Wi-Fi)32, 33, 34, 35, 36, 39
ADC2 (incompatible con Wi-Fi)0, 2, 4, 12, 13, 14, 15, 25, 26, 27
DAC25, 26
I2C (predeterminado)SDA: 21 / SCL: 22
VSPI (predeterminado)MOSI: 23 / MISO: 19 / CLK: 18 / CS: 5
HSPI (predeterminado)MOSI: 13 / MISO: 12 / CLK: 14 / CS: 15
Touch capacitivo0, 2, 4, 12, 13, 14, 15, 27, 32, 33

Deja una respuesta