Presentación y versiones #
El Esp32 es un dispositivo superior al Esp8266 en muchos aspectos. En 2022 hay ya varios modelos diferentes de este microcontrolador, que ha ido evolucionando desde que saliera la primera versión en 2016. Existen tres versiones en el mercado de este microcontrolador: la versión original, la segunda versión (S2), y la nueva tercera versión (S3).
Para la primera versión, que es el microcontrolador elegido para las placas Microdesys, podemos destacar que, además de disponer de Wifi y Bluetooth, tiene 18 entradas analógicas (no todas utilizables), 10 entradas táctiles capacitivas, dos salidas analógicas reales, casi todos los pines con PWM, y permite comunicar en multitud de protocolos, como I2C y SPI, en algunos casos por duplicado.

Con el resto de versiones, además de ciertas diferencias técnicas en cuanto a la capacidad de procesamiento, memoria, protocolos soportados o distribución de los pines, los principales cambios son los siguientes:
- La versión S2 puede trabajar con hasta 10 entradas analógicas mientras usa el Wifi. Sin embargo, la versión 1 sólo puede compaginar la función Wifi con 6 entradas analógicas, que en teoría pueden llegar a ser 8. Sin embargo, esta versión S2 no dispone de comunicación Bluetooth.
- En cambio, la versión S3, la más reciente, incorpora las mejoras en la conectividad de entradas analógicas que tiene la S2 y además vuelve a disponer de Bluetooth, pero ahora Bluetooth 5.0.
Sin embargo, los pocos cambios entre modelos, el alto precio y baja disponibilidad del Esp32 S3, así como su bajo testeo y desarrollo, natural tras tan poco tiempo en el mercado, hace que la versión 1 aún sea la más utilizada.
Existe también una nueva versión reducida, el Esp32-C3, con menor número de GPIOs, tamaño y consumo, orientado a sustituir al Esp8266 en aplicaciones concretas del IOT.
En este enlace se pueden encontrar todas las variantes dentro de cada versión, con el total de sus características:
https://products.espressif.com/#/product-selector?names=ESP32-PICO-V3
Finalmente, hay que tener en cuenta que, más allá de la versión de Esp32, existen multitud de placas de desarrollo que integran este chip, con características y funcionalidades muy diferentes. Estas placas pueden estar producidas por marcas oficiales, como Adafruit o Sparkfun, o por usuarios que las crean como hardware libre. Este es el caso de los modelos NodeMCU Esp32, que son los más extendidos:

Observa que cambian ciertos conectores de la alimentación, así como el ancho de la placa, que en la imagen no se puede apreciar.
Placas de desarrollo basadas en el Esp32 #
Sin embargo, podemos encontrar muchas otras placas de desarrollo, en algunos casos incluyendo funciones muy diferentes, como alimentación por batería, comunicación por radiofrecuencia de largo alcance (LoRa), pantallas OLED, etc.:
![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Para comparar este producto con una placa Arduino Uno, y acabar de comprender la diferencia entre microcontrolador y placa de desarrollo, se podría decir que el propio Arduino Uno es una placa de desarrollo que está basada en el microcontrolador ATMEGA328P.

Por tanto, Arduino es una compañía que fabrica placas de desarrollo, pero no cuenta con ningún microprocesador propio.
Características técnicas y alimentación #
Vamos a ver una tabla comparativa resumen de las principales características del Esp32-WROOM (versión 1) que es el más utilizado en este nivel.
NodeMCU Esp8266 | Arduino UNO R3 | NodeMCU Esp32 | |
Microcontrolador | ESP8266 | ATmega328p | ESP32 |
Tensión de funcionamiento | 3,3V | 5V | 3. 3V |
Pines de E/S digitales | 9 | 12 | 36 |
Pines de E/S digitales con PWM | 9 | 6 | 36 |
Pines de entrada analógica | 1 | 6 | 15 |
SPI/I2C/I2S/UART | 2/1/2/2 | 1/1/1/1 | 4/2/2/2 |
Memoria flash | 4 MB | 32 KB | 4 MB |
SRAM | 64 KB | 2 KB | 520 KB |
Velocidad de reloj | 80 MHz | 16 MHz | 80 MHz / 160 MHz |
WIFI | sí | no | sí |
Bluetooth | no | no | sí |
Sensor táctil | no | no | 10 |
El modelo de placa de desarrollo NodeMCU Esp32 es el más extendido y que mayor accesibilidad de pines proporciona:

Si nos fijamos en la figura anterior, en la que viene la función de cada pin de la placa, vemos que la mayoría tienen varias funciones asignadas. Es por código cómo se decide qué función usar. Las funciones más importante, además de E/S digitales y PWM, se pueden resumir en la siguiente tabla:
ADC | Entrada analógica |
DAC | Salida analógica |
TOUCH | Entrada táctil capacitiva |

Por ejemplo, el GPIO32 recuadrado en rojo en la figura anterior, puede funcionar como GPIO, es decir, como entrada digital y como salida digital, pero también como ADC (entrada analógica) y como sensor táctil capacitivo (Touch).
Los GPIOs 34, 35, 36 y 39 sólo pueden funcionar como entradas. El resto de pines pueden, al menos en teoría, funcionar como entradas y salidas digitales y PWM.
Esta versatilidad de la placa es muy útil pero también obliga a tener cuidado a la hora de elegir qué función asignar a cada pin. Esto es debido a que, pese a que este microcontrolador dispone de muchos pines de conexión, hay algunos de ellos que están asociados a actividades incompatibles. Esto quiere decir que hay funciones que no se pueden realizar de forma simultánea porque usan los mismos recursos internos. Por ejemplo, como se verá más adelante, no se pueden utilizar ciertos pines como entradas analógicas si se está usando la comunicación Wifi.
La placa se alimenta a 5V y funciona a una tensión lógica de 3,3V. Es decir, sus pines leen hasta 3,3V y se activan a 3,3V.
La alimentación de la placa se puede realizar de diversas formas. Las más habituales, son:
- Por el conector micro USB por el que también se programa.
- Con una fuente de alimentación de 5VDC entre el pin 5V y GND (0V).


Usos e incompatibilidades de los GPIOs #
Hay dos situaciones importantes al trabajar con los GPIOS del Esp32:
- El uso de ciertos pines como E/S impide el correcto funcionamiento de la placa en multitud de ocasiones.
- Todos los pines del ADC02 no trabajan como entradas analógicas si está activa la función Wifi. Esto quiere decir que pasa de tener 18 entradas digitales, a 16. Además, del ADC01, que en teoría tiene 8 GPIOS, hay dos que no se utilizan habitualmente (GPIO37 y GPIO38).
Teniendo en cuenta las diferentes funciones antes descritas, a continuación se proporciona una tabla resumen de los pines del microcontrolador. Los pines marcados en rojo no conviene utilizarlos a no ser que se tenga un conocimiento profundo del microcontrolador, ya que se utilizan para procesos internos y suelen dar problemas. Los pines en color naranja, se pueden utilizar teniendo cuidado de evitar ciertas situaciones, como se detalla.



Finalidad | Pines | Total |
GPIO para E/S digitales y PWM (algunos tienen funciones específicas de protocolos de comunicación) | GPIO04, GPIO05, GPIO13, GPIO14, GPIO16, GPIO17, GPIO18, GPIO19, GPIO21, GPIO22, GPIO23, GPIO25, GPIO26, GPIO27 | 14 |
GPIO o GPI Entradas Analógicas funcionales con Wifi | GPIO32, GPIO33, GPIO34, GPIO35, GPIO36, GPIO39 | 6 |
GPIO con restricciones | GPIO00, GPIO02, GPIO12, GPIO15 | 4 |
GPIO a no utilizar | GPIO01, GPIO03, GPIO06, GPIO07, GPIO08, GPIO09, GPIO10, GPIO11 | 8 |
Reorganización por funciones básicas:
Función | Pin | Número | Observaciones |
GPIO para E/S digitales y PWM sin ninguna restricción y total funcionalidad | GPIO04, GPIO05, GPIO13, GPIO14, GPIO16, GPIO17, GPIO18, GPIO19, GPIO23, GPIO27 | 10 | GPIO05, GPIO18, GPIO19, GPIO23 pueden actuar como SPI. (Hay un segundo SPI en los pines 13,12,14,15) |
GPIO para I2C | GPIO21, GPIO22 | 2 | Se pueden usar si restricción también como DI y DO si no se usan para el Bus I2C |
Salida analógica | GPIO25, GPIO26 | 2 | Se pueden usar si restricción también como DI y DO |
Entrada analógica con total funcionalidad | GPIO32, GPIO33, GPIO34, GPIO35, GPIO36, GPIO39 | 6 | |
Función táctil | Hay 10 disponibles en las anteriores categorías |