Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?

¿Estás buscando aprovechar al máximo tu ESP32 pero no estás seguro de qué pines GPIO son los más adecuados para tus proyectos? En esta guía de referencia de distribución de pines de ESP32 te mostraremos cuáles son los pines que debes utilizar para garantizar un funcionamiento óptimo de tu dispositivo. ¡Sigue leyendo para descubrir todo lo que necesitas saber!

El chip ESP32 tiene 48 pines con múltiples funciones. No todos los pines están disponibles en todas las placas de desarrollo ESP32 y algunos pines no se pueden utilizar.

Hay muchas preguntas sobre el uso de los GPIO ESP32. ¿Qué pines deberías usar? ¿Qué pines deberías evitar en tus proyectos? Esta publicación pretende ser una referencia simple y fácil de entender para los GPIO ESP32.

La siguiente figura muestra la distribución de pines del ESP-WROOM-32. Puedes usarlos como referencia si tienes uno. Chip desnudo ESP32 Para crear un tablero personalizado:

Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?

Nota: No se puede acceder a todos los GPIO en todas las placas de desarrollo, pero cada GPIO específico funciona de la misma manera independientemente de la placa de desarrollo utilizada. Si recién está comenzando con ESP32, le recomendamos leer nuestra guía: Introducción a la placa de desarrollo ESP32.

Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?

Periféricos ESP32

Los periféricos 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 sensores capacitivos

Las funciones ADC (convertidor analógico a digital) y DAC (convertidor digital a analógico) están asignadas a pines estáticos específicos. Sin embargo, puedes decidir qué pines son UART, I2C, SPI, PWM, etc.; solo necesitas asignarlos en el código. Esto es posible gracias a la función de multiplexación del chip ESP32.

Aunque puede definir las propiedades de los pines en el software, hay pines asignados de forma predeterminada, como se muestra en la siguiente figura (este es un ejemplo de la Placa ESP32 DEVKIT V1 DOIT con 36 pines (la disposición de los pines puede variar según el fabricante).

Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?

Además, existen pines con características específicas que los hacen aptos o no para un proyecto en particular. La siguiente tabla muestra qué pines se utilizan mejor como entradas y salidas y con cuáles debe tener cuidado.

Se pueden utilizar los pines marcados en verde. Se pueden utilizar los pines marcados en amarillo, pero hay que tener cuidado ya que pueden presentar un comportamiento inesperado, especialmente al arrancar. Los pines marcados en rojo no deben usarse como entradas ni salidas.

GPIO Entrada producción Observaciones
0 tirado hacia arriba DE ACUERDO emite una señal PWM al arrancar, debe estar BAJA para ingresar al modo intermitente
1 pasador TX DE ACUERDO Salida de depuración al arrancar
2 DE ACUERDO DE ACUERDO conectado con LED incorporado, debe dejarse flotante o BAJO para ingresar al modo intermitente
3 DE ACUERDO pin RX ALTO al arrancar
4 DE ACUERDO DE ACUERDO
5 DE ACUERDO DE ACUERDO emite señal PWM al arrancar, pasador de flejado
6 X X conectado al flash SPI integrado
7 X X conectado al flash SPI integrado
octavo X X conectado al flash SPI integrado
9 X X conectado al flash SPI integrado
10 X X conectado al flash SPI integrado
11 X X conectado al flash SPI integrado
12 DE ACUERDO DE ACUERDO La bota falla cuando se levanta, pasador de sujeción
13 DE ACUERDO DE ACUERDO
14 DE ACUERDO DE ACUERDO emite una señal PWM al arrancar
15 DE ACUERDO DE ACUERDO emite señal PWM al arrancar, pasador de flejado
dieciséis DE ACUERDO DE ACUERDO
17 DE ACUERDO DE ACUERDO
18 DE ACUERDO DE ACUERDO
19 DE ACUERDO DE ACUERDO
21 DE ACUERDO DE ACUERDO
22 DE ACUERDO DE ACUERDO
23 DE ACUERDO DE ACUERDO
25 DE ACUERDO DE ACUERDO
26 DE ACUERDO DE ACUERDO
27 DE ACUERDO DE ACUERDO
32 DE ACUERDO DE ACUERDO
33 DE ACUERDO DE ACUERDO
34 DE ACUERDO solo ingresa
35 DE ACUERDO solo ingresa
36 DE ACUERDO solo ingresa
39 DE ACUERDO solo ingresa

Siga leyendo para obtener un análisis más detallado y profundo de los GPIO ESP32 y sus características.

Solo pines de entrada

Los GPIO 34 a 39 son GPI: pines de entrada puros. Estos pines no tienen resistencias internas de pull-up o pull-down. No se pueden usar como salidas, así que use estos pines solo como entradas:

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

Flash SPI integrado en el ESP-WROOM-32

GPIO 6 a GPIO 11 están disponibles en algunas placas de desarrollo ESP32. Sin embargo, estos pines están conectados al flash SPI integrado en el chip ESP-WROOM-32 y no se recomiendan para otros fines. Así que no uses estos pines 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. Estos pueden detectar cambios en cualquier cosa que lleve una carga eléctrica, como la piel humana. Esto les permite detectar cambios causados ​​al tocar los GPIO con un dedo. Estos pines se pueden integrar fácilmente en almohadillas capacitivas y reemplazar las teclas mecánicas. Los pines táctiles capacitivos también se pueden utilizar para despertar el ESP32 del sueño profundo.

Estos sensores táctiles internos están conectados a estos GPIO:

  • T0 (GPIO4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO15)
  • T4 (GPIO 13)
  • T5 (GPIO12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Aprenda a utilizar los pines táctiles con Arduino IDE: Pines táctiles ESP32 con Arduino IDE

Convertidor analógico a digital (ADC)

El ESP32 tiene canales de entrada ADC de 18 x 12 bits (mientras que el ESP8266 solo tiene 1 ADC de 10 bits). Estos son los GPIO que se pueden utilizar como ADC y canales correspondientes:

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO35)
  • ADC2_CH0 (GPIO4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO2)
  • ADC2_CH3 (GPIO15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO27)
  • ADC2_CH8 (GPIO25)
  • ADC2_CH9 (GPIO26)

Aprenda a utilizar los pines ESP32 ADC:

  • Pines ESP32 ADC con Arduino IDE
  • Pines ESP32 ADC con MicroPython

Nota: Los pines ADC2 no se pueden utilizar cuando se utiliza Wi-Fi. Entonces, si está usando Wi-Fi y tiene problemas para obtener el valor de un GPIO ADC2, puede considerar usar un GPIO ADC1 en su lugar. Esto debería solucionar tu problema.

Los canales de entrada del ADC tienen una resolución de 12 bits. Esto significa que puede obtener lecturas analógicas en el rango de 0 a 4095, donde 0 es 0 V y 4095 es 3,3 V. También puede ajustar la resolución de sus canales según el código y el rango de ADC.

Los pines ESP32 ADC no tienen comportamiento lineal. Probablemente no podrá distinguir entre 0 y 0,1 V o entre 3,2 y 3,3 V. Debes tener esto en cuenta al utilizar los pines del ADC. Obtendrá un comportamiento similar al que se muestra en la siguiente imagen.

Convertidor digital a analógico (DAC)

Hay 2 canales DAC de 8 bits en el ESP32 para convertir señales digitales en salidas de señales de voltaje analógicas. Estos son los canales DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO RTC

Hay soporte RTC GPIO en el ESP32. Los GPIO reenviados al subsistema de baja potencia RTC se pueden usar cuando el ESP32 está en suspensión profunda. Estos GPIO RTC se pueden utilizar para despertar el ESP32 del modo de suspensión profunda cuando el coprocesador de potencia ultrabaja (ULP) está en ejecución. Los siguientes GPIO se pueden utilizar como fuente de activación externa.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

Aprenda a utilizar los GPIO de RTC para despertar el ESP32 del sueño profundo: ESP32 Deep Sleep con Arduino IDE y fuentes de activación

PWM

El controlador ESP32 LED PWM tiene 16 canales independientes que se pueden configurar para generar señales PWM con diferentes características. Todos los pines que pueden actuar como salidas se pueden utilizar como pines PWM (los GPIO 34 a 39 no pueden generar PWM).

Para configurar una señal PWM, debe definir estos parámetros en el código:

  • frecuencia de la señal;
  • tasa de uso;
  • canal PWM;
  • GPIO donde desea enviar la señal.

Aprenda a usar ESP32 PWM con Arduino IDE: ESP32 PWM con Arduino IDE

I2C

El ESP32 tiene dos canales I2C y cada pin se puede configurar como SDA o SCL. Cuando se utiliza el ESP32 con el IDE de Arduino, los pines I2C estándar son:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

Si desea utilizar otros pines cuando utilice la biblioteca Wire, todo lo que necesita hacer es llamar:

Wire.begin(SDA, SCL);

Obtenga más información sobre el protocolo de comunicación I2C con ESP32 usando el IDE de Arduino: Comunicación ESP32 I2C (pines de configuración, múltiples interfaces de bus y periféricos)

Más tutoriales de I2C con el ESP32:

  • ESP32 I2C Maestro y Esclavo (comunicación I2C entre dos ESP32) – Arduino IDE
  • ESP32: Escáner I2C (Arduino IDE): determina la dirección de los dispositivos I2C
  • Instrucciones para el multiplexor I2C TCA9548A con ESP32

SPI

De forma predeterminada, la asignación de pines para SPI es:

SPI MOSI MISO CLK ÉL
VSPI GPIO23 GPIO 19 GPIO 18 GPIO5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Obtenga más información sobre el protocolo de comunicación SPI con ESP32 usando el IDE de Arduino: Comunicación ESP32 SPI: configuración de pines, múltiples interfaces de bus SPI y periféricos (Arduino IDE)

Interrupciones

Todos los GPIO se pueden configurar como interrupciones.

Aprenda a usar interrupciones con el ESP32:

  • ESP32 interrumpe con Arduino IDE
  • ESP32 interrumpe con MicroPython

pasadores de flejado

El chip ESP32 tiene los siguientes pasadores de sujeción:

  • GPIO 0 (debe estar BAJO para ingresar al modo de inicio)
  • GPIO 2 (debe estar flotante o BAJO durante el arranque)
  • GPIO4
  • GPIO 5 (debe estar ALTO durante el arranque)
  • GPIO 12 (debe estar BAJO durante el arranque)
  • GPIO 15 (debe estar ALTO durante el arranque)

Estos se utilizan para poner el ESP32 en modo de gestor de arranque o flash. Para la mayoría de las placas de desarrollo con un puerto serie/USB integrado, no necesita preocuparse por el estado de estos pines. La placa coloca los pines en el estado correcto para el modo flash o de arranque. Puede encontrar más información en el La selección del modo de arranque ESP32 se puede encontrar aquí.

Sin embargo, si tiene periféricos conectados a estos pines, puede tener problemas para cargar código nuevo, actualizar el ESP32 con firmware nuevo o restablecer la placa. Si tiene periféricos conectados a los pasadores de fleje y tiene problemas para cargar el código o actualizar el ESP32, puede deberse a que estos periféricos impiden que el ESP32 ingrese al modo correcto. Leer el Documentación para seleccionar el modo de arranque. para guiarte en la dirección correcta. Después de reiniciar, flashear o iniciar, estos pines funcionan como se esperaba.

Pines ALTOS en el maletero

Algunos GPIO cambian de estado a ALTO o emiten señales PWM al iniciar o reiniciar. Esto significa que puede obtener resultados inesperados al restablecer o iniciar el ESP32 si tiene salidas conectadas a estos GPIO.

  • GPIO1
  • GPIO3
  • GPIO5
  • GPIO 6 a GPIO 11 (conectado a la memoria flash SPI integrada del ESP32; no se recomienda su uso).
  • GPIO 14
  • GPIO 15

Activar (DE)

Habilitar (EN) es el pin de habilitación del regulador de 3,3 V. Está elevado, así que conéctelo a tierra para desactivar el regulador de 3,3 V. Esto significa que puedes usar este pin, conectado a un pulsador, para reiniciar tu ESP32, por ejemplo.

Consumo de energía GPIO

El requisito de corriente máximo absoluto por GPIO es 40 mA según la sección «Condiciones de funcionamiento recomendadas» en la hoja de datos de ESP32.

Sensor de efecto Hall incorporado en ESP32

El ESP32 también tiene un sensor de efecto Hall integrado que detecta cambios en el campo magnético a su alrededor.

Envolver

Esperamos que esta guía de referencia para los GPIO ESP32 le haya resultado útil. Si tiene otros consejos sobre los GPIO ESP32, deje un comentario a continuación.

Si recién estás comenzando con el ESP32, tenemos contenido excelente para ayudarte:

  • Aprendiendo ESP32 con Arduino IDE
  • Comenzando con la placa de desarrollo ESP32
  • Más de 20 proyectos y tutoriales de ESP32
  • Tutorial del servidor web ESP32
  • ESP32 vs ESP8266: pros y contras

Gracias por leer.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?

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.

Hay muchas preguntas sobre cómo utilizar los GPIOs del ESP32. ¿Qué pines deberías utilizar? ¿Qué pines deberías evitar utilizar en tus proyectos? Esta publicación tiene como objetivo ser una guía de referencia simple y fácil de seguir para los GPIOs del ESP32.

Periféricos ESP32

Los periféricos del ESP32 incluyen:

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

Los ADC (convertidores analógico a digital) y DAC (convertidores digital a analógico) están asignados a pines estáticos específicos. Sin embargo, puedes decidir qué pines son UART, I2C, SPI, PWM, etc. – solo necesitas asignarlos en el código. Esto es posible gracias a la función de multiplexación del chip ESP32.

Aunque puedes definir las propiedades de los pines en el software, hay pines asignados por defecto como se muestra en la siguiente figura:

Además, hay pines con características específicas que los hacen adecuados o no para un proyecto en particular. La siguiente tabla muestra qué pines son los mejores para usar como entradas, salidas y cuáles debes tener precaución.

Los pines resaltados en verde son adecuados para usar. Los resaltados en amarillo son adecuados para usar, pero necesitas prestar atención porque pueden tener un comportamiento inesperado principalmente al arrancar. Los resaltados en rojo no se recomiendan para usar como entradas o salidas.

  1. GPIO: 0 – Entradas: OK / Salidas: Pulled up
  2. GPIO: 1 – Entradas: TX pin / Salidas: OK
  3. GPIO: 2 – Entradas: OK / Salidas: OK
  4. GPIO: 3 – Entradas: OK / Salidas: RX pin
  5. GPIO: 4 – Entradas: OK / Salidas: OK
  6. GPIO: 5 – Entradas: OK / Salidas: OK

Esperamos que esta guía de referencia para los GPIOs del ESP32 te haya resultado útil. Si tienes más consejos sobre los GPIOs del ESP32, por favor compártelos escribiendo un comentario abajo.

Si recién estás empezando con el ESP32, tenemos contenido excelente para que comiences:

1 comentario en «Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?»

Deja un comentario