Características del ESP32
Conoce el hardware antes de programarlo: alimentación, conexiones, buses y una primera prueba con GPIO.
01 / Enunciado
Identifica un ESP32 clásico y documenta las características relevantes para conectar sensores, pantallas y actuadores. Elabora una ficha de la placa concreta que tengas en clase y justifica los GPIO elegidos para una pequeña maqueta.
Consultar el enunciado del profesor ↗
Referencia: ESP32 clásico con módulo WROOM-32; las variantes C3/S2/S3 no comparten todas sus características.
02 / Reconoce la placa
| Elemento | Qué debes localizar |
|---|---|
| Módulo ESP32-WROOM-32 | Encapsulado metálico y antena impresa del módulo. |
| Puerto USB | Alimentación y programación mediante el puente USB–UART de la placa. |
| EN / RESET | Reinicia el microcontrolador. |
| BOOT | Interviene en la entrada al modo de descarga. |
| 3V3, GND y VIN / 5V | Pines de alimentación; revisa el esquema de tu modelo antes de alimentar por VIN. |
Ficha técnica de referencia
| Característica | ESP32 clásico |
|---|---|
| Procesamiento | Familia Xtensa LX6; existen variantes de uno y dos núcleos, hasta 240 MHz. |
| Conectividad | Wi-Fi de 2,4 GHz y Bluetooth en el ESP32 clásico. |
| Lógica de GPIO | 3,3 V. No conectes directamente señales de 5 V. |
| Interfaces | UART, SPI e I²C; funciones analógicas y PWM según el pin. |
| Memoria flash | Depende del módulo y de la placa. Compruébala al identificar el modelo. |
03 / Elige los GPIO
Busca una función para ver las conexiones propuestas. La tabla corresponde al ESP32 clásico y evita los pines reservados para la flash.
| Uso | GPIO propuesto | Observación |
|---|---|---|
| OLED · SDA | 21 | Dato del bus I²C, configurable por software. |
| OLED · SCL | 22 | Reloj del bus I²C, configurable por software. |
| Sensor DHT22 · DATA | 27 | Entrada/salida digital; pull-up a 3,3 V. |
| LED externo | 25 | Salida digital con resistencia en serie. |
| Entrada analógica | 34 | ADC1, solo entrada y sin resistencias internas de pull-up/pull-down. |
| SPI · SCK / MISO / MOSI | 18 / 19 / 23 | Asignación habitual; confirma las conexiones del periférico. |
| GPIO 6–11 | No usar en esta práctica | Normalmente conectados a la memoria flash del módulo. |
| GPIO 0, 2, 5, 12, 15 | Precaución al arrancar | Son pines de configuración de arranque (strapping). |
GPIO34–39 solo admiten entrada y no ofrecen pull-up/pull-down internos. Cuando uses Wi-Fi y una entrada analógica, elige un pin ADC1 y consulta las limitaciones de ADC2.
04 / Prueba una salida
Con la placa desconectada, conecta GPIO25 a una resistencia de 330 Ω, después al ánodo del LED y su cátodo a GND. Selecciona en Arduino IDE la placa ESP32 correspondiente y su puerto. Carga este programa:
const uint8_t LED_PIN = 25;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
Serial.println("Prueba de salida GPIO25");
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}Descargar ejemplo GPIO ↓El LED alternará encendido y apagado cada medio segundo. Si no funciona, revisa polaridad, masa común, puerto y número GPIO.
ADC, memoria y consumo
| Aspecto | Análisis para la práctica |
|---|---|
| CPU y RAM | Xtensa LX6 de hasta 240 MHz según variante; ESP32 clásico con 520 KB de SRAM interna. La flash depende del módulo. |
| Wi-Fi y Bluetooth | Wi-Fi de 2,4 GHz 802.11 b/g/n. Bluetooth clásico y BLE en el ESP32 original. |
| ADC | Conversión SAR de hasta 12 bits en el ESP32 clásico: 4096 códigos. El rango de tensión depende de la atenuación; el valor bruto no equivale a una tensión perfectamente calibrada. |
| GPIO y buses | UART, I²C y SPI configurables, PWM y entradas analógicas. No todos los GPIO del chip están accesibles en la placa. |
| Consumo activo | El uso de radio y CPU determina picos de corriente. La alimentación y el regulador deben soportarlos; no se dimensiona la fuente a partir del consumo en reposo. |
| Ahorro de energía | Modem-sleep, light-sleep y deep-sleep reducen el consumo a costa de funciones activas. La cifra de deep-sleep del chip no representa el consumo total de una placa con LED y puente USB. |
Conversión ilustrativa
Para un rango ideal de 0–3,3 V, el código 2048 representa aproximadamente 2048 × 3,3 / 4095 = 1,65 V. En la placa real hay que considerar atenuación, calibración y tolerancias.
Aplicación al despliegue IoT
Para una estación alimentada por batería conviene medir por intervalos, apagar periféricos cuando no sean necesarios y elegir un modo de reposo. Para Wi-Fi y una LDR se prefiere ADC1, evitando los conflictos de ADC2 con la radio.
05 / Comprobación y entrega
Entrega una foto anotada, la ficha de características, una tabla de al menos seis pines y el sketch probado. Indica qué documentación has consultado.