Diagrama de pines ESP32 DevKit sin errores
Consulta el diagrama de pines ESP32 DevKit y evita errores con alimentación, GPIO, ADC, PWM, I2C, SPI y pines reservados al montar tu proyecto sin riesgos.
Conectar un sensor al pin equivocado del ESP32 puede dar síntomas engañosos: lecturas ADC inestables, una placa que no arranca o un periférico I2C que parece averiado. El diagrama de pines ESP32 DevKit sirve precisamente para evitar esas pruebas a ciegas. No basta con ver un número GPIO: hay que saber si ese pin admite salida, si interviene durante el arranque, si está ocupado por la memoria flash o si tiene limitaciones al usar WiFi.
El ESP32 DevKit es una de las placas más utilizadas para proyectos de automatización, sensores, pantallas y conectividad. También es una de las que más confusión genera, porque bajo el mismo nombre existen variantes con 30, 36 y 38 pines, además de placas con etiquetas algo distintas. La lógica general es la misma, pero conviene identificar primero la versión física que tienes sobre la mesa.
Antes de leer el pinout del ESP32 DevKit
La mayoría de placas ESP32 DevKit incorporan un módulo ESP32-WROOM-32, un conversor USB a serie, regulador de tensión, botones EN y BOOT, y dos filas de pines. El microcontrolador trabaja internamente a 3,3 V. Sus GPIO no son tolerantes a 5 V.
Esto merece decirse sin rodeos: no conectes la salida digital de un módulo de 5 V directamente a un GPIO del ESP32. Algunos sensores vendidos como compatibles con Arduino entregan señales de 5 V aunque su módulo incluya alimentación de 3,3 V. Revisa siempre la tensión de señal, no solo la de alimentación. Si hace falta, utiliza un divisor resistivo o un conversor de nivel lógico.
En las serigrafías de la placa puedes encontrar nombres como GPIO23, IO23 o simplemente 23. En la práctica se refieren al mismo pin. En Arduino IDE y PlatformIO normalmente se declara con su número GPIO, por ejemplo `pinMode(23, OUTPUT);`.
Tampoco confundas los números impresos en el chip con los de las filas de pines de la placa. Para conectar componentes importa el GPIO expuesto en el DevKit, no la numeración física interna del encapsulado.
Diagrama de pines ESP32 DevKit: alimentación y control
Los pines de alimentación son los primeros que debes identificar. Una conexión correcta aquí evita buena parte de los fallos difíciles de diagnosticar.
| Pin serigrafiado | Uso práctico | Precaución | | --- | --- | --- | | VIN o 5V | Entrada de 5 V hacia el regulador de la placa | No lo uses como salida de alta corriente | | 3V3 | Alimentación regulada a 3,3 V | Respeta la corriente disponible del regulador | | GND | Masa común | Todos los módulos deben compartir GND | | EN | Habilitación y reinicio del ESP32 | Llevarlo a GND reinicia o desactiva el chip | | BOOT o GPIO0 | Modo de programación | Su estado afecta al arranque |
Puedes alimentar el DevKit por USB o mediante VIN/5V, según la versión de placa. Si eliges una fuente externa, usa una alimentación estable y no conectes simultáneamente varias fuentes sin saber cómo está resuelto el circuito de tu modelo. El USB suele ser suficiente para programación y sensores pequeños; no para motores, tiras LED potentes o relés con carga real.
Los motores, servos y relés deben tener una fuente adecuada a su consumo. Comparte la masa con el ESP32, pero no intentes alimentarlos desde el pin 3V3 de la placa. Una caída de tensión durante un pico de corriente puede reiniciar el microcontrolador y parecer un problema de código.
GPIO recomendados para entradas y salidas
Para salidas digitales generales, los GPIO 4, 5, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32 y 33 suelen ser opciones seguras. Son útiles para LEDs, relés mediante transistor, botones, sensores digitales y señales de control.
Aun así, «seguro» depende de lo que conectes. GPIO 5, 12 y 15 son pines de arranque, también llamados strapping pins. Se pueden usar en un proyecto, pero un periférico que los fuerce a nivel alto o bajo al encender la placa puede impedir el inicio normal. Para un primer montaje, es más práctico reservarlos y usar otros GPIO disponibles.
GPIO 34, 35, 36 y 39 son especiales: funcionan solo como entrada. Son una buena elección para botones, salidas de sensores o medidas analógicas, pero no servirán para encender un LED, generar PWM o controlar un relé. Además, en muchas placas no disponen de resistencias pull-up o pull-down internas utilizables, así que un pulsador puede requerir una resistencia externa para no dejar la entrada flotante.
Hay cuatro grupos de pines que conviene tratar con cuidado:
- GPIO 6 a GPIO 11 se conectan habitualmente a la memoria flash interna. No los uses.
- GPIO 1 y GPIO 3 pertenecen al puerto serie principal usado para programación y monitorización.
- GPIO 0, 2, 4, 5, 12 y 15 afectan, en distinto grado, al proceso de arranque.
- GPIO 34, 35, 36 y 39 solo admiten entrada.
GPIO 1 y GPIO 3 pueden reutilizarse si no necesitas el monitor serie, pero no es una buena decisión al empezar. Ver mensajes de arranque y depurar con `Serial.println()` ahorra mucho tiempo.
Entradas analógicas: ADC, WiFi y lecturas reales
El ESP32 tiene dos controladores ADC: ADC1 y ADC2. La diferencia importa cuando activas WiFi. Los pines asociados a ADC2 pueden dejar de estar disponibles o dar resultados no fiables mientras la radio WiFi está activa.
Para leer potenciómetros, sensores analógicos o niveles de batería en proyectos con WiFi, prioriza ADC1: GPIO 32, 33, 34, 35, 36 y 39. En una placa típica, GPIO 34, 35, 36 y 39 son especialmente cómodos porque ya son solo de entrada, que es justo lo que necesita una medición analógica.
El ADC del ESP32 no es un instrumento de precisión por defecto. La linealidad varía entre chips, hay ruido y la escala útil depende de la atenuación configurada. Si mides una batería, añade divisor resistivo, filtra si el circuito lo necesita y calibra frente a una tensión conocida. Decir que un ADC es de 12 bits no garantiza 4096 valores exactos en una medición real.
I2C, SPI y PWM en el ESP32 DevKit
I2C suele configurarse con GPIO 21 como SDA y GPIO 22 como SCL. Es la combinación más habitual para pantallas OLED, sensores BME280, RTC y expansores de entradas. El ESP32 permite reasignar estos pines por software, lo que resulta útil si 21 o 22 ya están ocupados, pero mantener la asignación convencional hace el cableado más fácil de revisar.
En un bus I2C, todos los dispositivos comparten SDA, SCL y GND. El problema no suele ser el número de sensores, sino las direcciones repetidas y un exceso de resistencias pull-up en módulos distintos. Si el escáner I2C no detecta nada, comprueba primero alimentación, masa común, dirección y tensión de las líneas.
Para SPI, una asignación frecuente usa GPIO 18 para SCK, GPIO 19 para MISO, GPIO 23 para MOSI y GPIO 5 para CS. Es válida para pantallas, lectores microSD o módulos de radio, aunque GPIO 5 merece la precaución ya indicada por su papel durante el arranque. Si el módulo conectado lo mantiene en un estado conflictivo al encender, mueve CS a otro GPIO de salida.
El PWM no está limitado a unos pocos pines fijos como en placas Arduino clásicas. El periférico LEDC del ESP32 permite generar PWM en muchos GPIO de salida y ajustar frecuencia, resolución y canal. Para regular un LED, controlar un servo o manejar la entrada de un driver, GPIO 25, 26, 27, 32 o 33 suelen dar buen resultado. Evita usar un pin solo de entrada o uno reservado por la flash.
El arranque explica muchos fallos de montaje
Si el ESP32 se queda mostrando mensajes extraños, no inicia el programa o solo arranca cuando desconectas un sensor, mira los pines de strapping antes de culpar a la placa. GPIO0 determina si entra en modo de descarga. GPIO12 participa en configuraciones de tensión de la memoria flash y puede causar fallos si recibe un nivel inapropiado al encender.
Los botones BOOT y EN ayudan a diagnosticar. EN reinicia el chip. BOOT, normalmente conectado a GPIO0, permite forzar el modo de programación si el conversor USB no lo hace automáticamente. No todos los DevKit se comportan igual al cargar un programa: en algunas variantes hay que pulsar BOOT durante la subida. Es una diferencia de diseño de placa, no necesariamente un defecto.
Antes de soldar un proyecto definitivo, prueba el arranque con todos los módulos conectados y luego con ellos desconectados. Si el comportamiento cambia, ya tienes una pista concreta: alimentación insuficiente, masa mal compartida o un GPIO condicionado durante el boot.
Una forma práctica de planificar las conexiones
Empieza asignando alimentación y masa. Después reserva GPIO 21 y 22 si habrá I2C, GPIO 18, 19 y 23 si necesitas SPI, y deja libres GPIO 1 y 3 para depuración mientras desarrollas. Para sensores analógicos con WiFi, elige ADC1. Por último, coloca botones, LEDs y actuadores en GPIO de propósito general que no afecten al arranque.
Anota estas decisiones junto al código. Un proyecto reproducible no depende de recordar que «el cable azul iba en algún pin de la izquierda». Debe indicar GPIO, tensión de alimentación y protocolo de cada módulo. Esa documentación evita que un montaje que funcionaba en la mesa se convierta en una tarde perdida al cambiar de placa.
El mejor diagrama no es el que tiene más colores, sino el que te permite verificar cada cable antes de encender. Si una conexión no está clara, mide tensión, revisa la serigrafía y prueba con un ejemplo mínimo que compile antes de añadir el siguiente componente.