Inicio / Arduino

Programar el ESP32 con el IDE de Arduino

Placa ESP32 DevKit lista para programarse desde el IDE de Arduino

El Arduino IDE no trae soporte para el ESP32 de fábrica: hay que añadir su gestor de placas antes de poder compilar y subir código. Una vez hecho ese paso, programar un ESP32 es casi idéntico a programar un Arduino UNO, con algunas diferencias importantes que conviene conocer.

Requisitos previos

1. Añadir el gestor de placas ESP32

  1. Abre Archivo → Preferencias (File → Preferences).
  2. En el campo URLs Adicionales de Gestor de Tarjetas, pega esta URL:
    URL
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  3. Pulsa OK y ve a Herramientas → Placa → Gestor de tarjetas.
  4. Busca esp32 e instala el paquete esp32 by Espressif Systems.

La primera instalación tarda varios minutos

El paquete incluye el compilador y las herramientas de subida para todos los modelos de la familia (ESP32, S2, S3, C3, C6, H2...), así que puede pesar más de un gigabyte. Es un proceso que solo se hace una vez por ordenador.

2. Conectar y configurar la placa

Conecta el ESP32 al ordenador con el cable USB y configura estos ajustes en el menú Herramientas:

AjusteValor habitualNota
BoardESP32 Dev ModuleO el nombre específico de tu placa si aparece en la lista
PortCOM7 (Windows) o /dev/ttyUSB0 (Linux)Varía según el ordenador y el puerto USB
Upload Speed921600Bájalo a 115200 si la subida falla
Flash Frequency80MHzEl valor por defecto suele funcionar bien

A diferencia de un Arduino UNO, la mayoría de placas ESP32 tienen un circuito de auto-reseteo que entra en modo de subida solo, sin pulsar ningún botón. Si la subida se queda colgada en Connecting..., mantén pulsado el botón BOOT mientras empieza la subida y suéltalo en cuanto veas que conecta.

3. Programa de prueba: parpadeo adaptado al ESP32

El ESP32 no siempre define LED_BUILTIN. En la mayoría de placas de desarrollo el LED integrado está en el GPIO2, aunque conviene revisar la serigrafía de tu placa:

Arduino / C++
const int LED = 2;

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}

Pulsa Verificar para compilar y Subir para cargarlo. Al terminar, el LED debería parpadear cada medio segundo sin necesidad de reiniciar la placa manualmente.

Diferencias frente a un Arduino UNO

Los pines del ESP32 trabajan a 3.3V, no a 5V

A diferencia del UNO, los GPIO del ESP32 no toleran 5V. Conectar directamente un sensor o módulo de 5V a una entrada puede dañar el chip de forma permanente. Si necesitas usar un componente de 5V, añade un divisor de voltaje o un conversor de nivel lógico entre medias.

Solución de problemas comunes

ProblemaCausa probableSolución
Failed to connect to ESP32: Wrong boot modeLa placa no entró en modo de subida a tiempoMantén pulsado BOOT justo cuando empieza la subida
El puerto no aparece en PortFaltan los controladores del chip USB-serie o el cable es solo de cargaInstala el driver CP2102/CH340 y prueba con otro cable
La subida es muy lenta o falla a mitadVelocidad de subida demasiado alta para el cable o el puertoBaja Upload Speed a 115200
Sube bien pero el programa no arrancaLa placa se queda esperando tras la subidaPulsa el botón EN / RST para reiniciarla

Con esto ya tienes un flujo de trabajo completo: instalar el gestor de placas, configurar el puerto correcto y subir tu primer programa. A partir de aquí, cualquier ejemplo de Arduino UNO se puede adaptar al ESP32 teniendo en cuenta la tensión de 3.3V y los pines específicos de cada modelo.