ESP32, módulo ESP32-WROOM GPIO Pinout

¿Qué es el ESP-WROOM?

ESP32-WROOM-32 es un potente módulo genérico de Wi-Fi+Bluetooth+BLE MCU que está dirigido a una amplia variedad de aplicaciones, que van desde redes de sensores de bajo consumo hasta las tareas más exigentes, como la codificación de voz, la transmisión de música y la decodificación de MP3.

ESP32

En el núcleo de este módulo está el chip ESP32-D0WDQ6*. El chip incorporado está diseñado para ser escalable y adaptable. Hay dos núcleos de la CPU que pueden ser controlados individualmente, y la frecuencia del reloj de la CPU es ajustable desde 80 MHz a 240 MHz.

El usuario también puede apagar la CPU y hacer uso del co-procesador de baja potencia para monitorear constantemente los periféricos por cambios o cruce de umbrales. El ESP32 integra un rico conjunto de periféricos, que van desde sensores táctiles capacitivos, sensores Hall, interfaz de tarjeta SD, Ethernet, SPI de alta velocidad, UART, I2S e I2C.

Para más detalles puede ver la hoja de datos del ESP32-WROOM32

La integración de Bluetooth, Bluetooth LE y Wi-Fi garantiza que se pueda apuntar a una amplia gama de aplicaciones, y que el módulo sea a prueba de futuro: el uso de Wi-Fi permite un gran alcance físico y la conexión directa a Internet a través de un router Wi-Fi, mientras que el uso de Bluetooth permite al usuario conectarse cómodamente al teléfono o emitir balizas de baja energía para su detección. La corriente de reposo del chip ESP32 es inferior a 5 μA, lo que lo hace apto para aplicaciones electrónicas de batería y vestimenta. El ESP32 soporta una velocidad de datos de hasta 150 Mbps, y una potencia de salida de 20,5 dBm en la antena para asegurar el más amplio rango físico. Como tal, el chip ofrece especificaciones líderes en la industria y el mejor rendimiento para la integración electrónica, el alcance, el consumo de energía y la conectividad. El sistema operativo elegido para el ESP32 es freeRTOS con LwIP; TLS 1.2 con aceleración por hardware también está incorporado. También se admite la actualización segura (cifrada) por aire (OTA), de modo que los desarrolladores pueden actualizar continuamente sus productos incluso después de su lanzamiento.

ESP32 WROOM32 DevKit Pinout

ESP32 pinout

Características de los periféricos del ESP32

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

Pines GPIO

EL ESP32 Wroom32 DevKit tiene un total de 25 GPIOs, de los cuales unos pocos pines son pines de entrada solamente,

Pines de sólo entrada

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

No todos los pines tienen pullup de entrada, se necesita un pullup externo en estos pines cuando se usa como pullup de entrada.

Pines con pull up interno INPUT_PULLUP

  • GPIO14
  • GPIO16
  • GPIO17
  • GPIO18
  • GPIO19
  • GPIO21
  • GPIO22
  • GPIO23

Los Pines sin enlace interno hacia arriba

  • GPIO13
  • GPIO25
  • GPIO26
  • GPIO27
  • GPIO32
  • GPIO33

Con Arduino para usar estos pines se pueden usar simplemente comandos comunes

Ejemplo: Para hacer que GPIO22 como entrada y GPIO23 como salida

pinMode(22,INPUT_PULLUP);

pinMode(23,OUTPUT);

digitalWrite(23,HIGH);

Pines de entrada analógica

Observa que sólo un subconjunto de pines y funciones de la CAD están expuestos. En primer lugar, los controladores suministrados sólo exponen el ADC1. La disposición de la placa del ESP32-DevKitC sólo expone algunos de los pines. En concreto, se exponen los siguientes: ADC1_CH0 , ADC1_CH3 , ADC1_CH4 , ADC1_CH5 , ADC1_CH6 y ADC1_CH7 .

La conversión analógica a digital es la capacidad de leer un nivel de voltaje que se encuentra en una clavija entre 0 y algún valor máximo y convertir ese valor analógico en una representación digital. Variando el voltaje aplicado a la clavija cambiará el valor leído. El ESP32 tiene incorporado un convertidor analógico a digital con una resolución de hasta 12 bits, lo que equivale a 4096 valores distintos. Lo que significa que 0 voltios producirán un valor digital de 0 mientras que el voltaje máximo producirá un valor digital de 4095 y los rangos de voltaje entre estos producirán un valor digital correspondientemente escalado.
Una de las propiedades de los canales de conversión de analógico a digital es la atenuación. Se trata de un factor de escala de voltaje. Normalmente el rango de entrada es de 0-1V pero con diferentes atenuaciones podemos escalar el voltaje de entrada en este rango. Las escalas disponibles más allá del 0-1V incluyen 0-1,34V, 0-2V y 0-3,6V.

GPIOs de pulsación capacitiva

El ESP32 tiene 10 sensores táctiles capacitivos internos. Estos pueden detectar variaciones en cualquier cosa que contenga una carga eléctrica, como la piel humana. Así que pueden detectar variaciones inducidas al tocar los GPIOs con un dedo. Estas clavijas pueden ser fácilmente integradas en las almohadillas capacitivas, y reemplazan los botones mecánicos. Los alfileres de contacto capacitivos también pueden ser usados para despertar al ESP32 del sueño profundo.

Esos sensores táctiles internos están conectados a estas GPIOs:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Convertidor de digital a analógico (DAC)

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

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIOs

Hay soporte RTC GPIO en el ESP32. Los GPIOs enrutados al subsistema de baja potencia de RTC pueden ser usados cuando el ESP32 está en un sueño profundo. Estos GPIOs de RTC pueden usarse para despertar al ESP32 del sueño profundo cuando el coprocesador de ultra baja potencia (ULP) está funcionando. Los siguientes GPIOs pueden ser usados como fuente externa de despertar.

  • 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)

PWM

El controlador PWM de LEDs ESP32 tiene 16 canales independientes que pueden ser configurados para generar señales PWM con diferentes propiedades. Todos los pines que pueden actuar como salidas pueden ser utilizados como pines PWM (los pines GPIO 34 a 39 de sólo entrada no pueden generar PWM).

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

  • La frecuencia de la señal;
  • Ciclo de trabajo;
  • Canal PWM;
  • GPIO en el que se quiere emitir la señal.

Serie

El ESP32 tiene tres puertos seriales

La primera serie RX0, TX0 se utiliza para la programación,

  • GPIO3 (U0RXD)
  • GPIO1(U0TXD)

Otro puerto serie está disponible en

  • GPIO16 (U2RXD).
  • GIIO17 (U2TXD).

Cuando se programa se llama Serial2.

I2C

Cuando se utiliza el ESP32 con el IDE de Arduino, se deben utilizar los pines por defecto del ESP32 I2C (soportados por la biblioteca Wire):

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

SPI

Por defecto, la asignación de los pines para el SPI es:

SPI MOSI MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Interrupciones

Todos los GPIOs pueden ser configurados como interrupciones.

Enable (EN)

Enable (EN) es el pin de habilitación del regulador de 3.3V. Está levantado, así que conéctalo a tierra para desactivar el regulador de 3,3V. Esto significa que puedes usar esta clavija conectada a un pulsador para reiniciar tu ESP32.

Corriente de GPIO extraída

La corriente máxima absoluta que se extrae por GPIO es de 40mA de fuente y 28mAmp de hundimiento según la sección «Condiciones de funcionamiento recomendadas» de la hoja de datos del ESP32.

 

Pin It on Pinterest

Shares