Ir al contenido principal

ESP32: Mapeo de pines y sensores internos

Cuando realizamos proyectos utilizando este tipo de chip, en muchas ocasiones nos dejamos guiar por los ejemplos publicados en diferentes webs careciendo de un conocimiento básico de los pines que se pueden utilizar y las funciones asignadas a cada uno.

La asignación de pines y el uso de estos puede marcar la diferencia entre un proyecto que sea operativo o uno que nos genere problemas y desconozcamos el motivo. Reinicios, problemas en la programación de la placa, problemas de funcionamiento, inestabilidad, son los problemas más comunes que genera el mal uso de los pines de este componente.

A continuación, a modo de guía y para tratar de evitar este tipo de errores, vamos a tratar de detallar los usos de cada uno de los pines de las placas ESP32.

Entrada/Input

Los GPIO 34 al 39 en realidad son GPI (General Purpose Input)

Estos pines no tienen resistencias Pull-up o Pull down y no pueden ser usados como salida

• GPIO 34
• GPIO 35
• GPIO 36
• GPIO 37
• GPIO 38
• GPIO 39

E/S

La conversión analógico-digital (ADC) y la inversa, digital a analógico (DAC) se encuentran asignados a una serie de pines que veremos a continuación. Por el contrario, el uso de UART, I2C, SPI, PWM, se puede asignar a través del código.

Antes de continuar, la información que resumimos en este artículo se ha extraído de la información técnica original de este componente disponible a través de https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/index.html

Los GPIO 6 a 11 están expuestos en la mayoría de placas de desarrollo ESP32. Estos pines están conectados directamente al flash SPI integrado en el chip ESP-WROOM-32 y no es posible su uso para funciones más allá de las establecidas.


• GPIO 6 (SCK/CLK)
• GPIO 7 (SDO/SD0)
• GPIO 8 (SDI/SD1)
• GPIO 9 (SHD/SD2)
• GPIO 10 (SWP/SD3)
• GPIO 11 (CSC/CMD)

Touch Sensor

El ESP32 dispone de 10 sensores que se pueden utilizar de forma táctil como sensor capacitativo. Estos pines tienen la capacidad de detectar variaciones en la carga eléctrica, como por ejemplo la piel humana. Para que puedan detectar variaciones inducidas al tocar los GPIO con un dedo. Estas entradas se pueden integrar fácilmente en las almohadillas capacitivas y reemplazan los botones mecánicos. Las clavijas táctiles capacitivas también se pueden usar para activar el ESP32 cuando entra en modo Deep-Sleep.
Esos sensores táctiles internos están conectados a los siguientes 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 analógico a digital (ADC de Analog to Digital Converter)

Este microcontrolador dispone de canales de entrada ADC de 18 x 12 bits. Los siguientes GPIO que se pueden usar como ADC:

• ADC1_CH0 (GPIO 36)
• ADC1_CH1 (GPIO 37)
• ADC1_CH2 (GPIO 38)
• ADC1_CH3 (GPIO 39)
• ADC1_CH4 (GPIO 32)
• ADC1_CH5 (GPIO 33)
• ADC1_CH6 (GPIO 34)
• ADC1_CH7 (GPIO 35)
• ADC2_CH0 (GPIO 4)
• ADC2_CH1 (GPIO 0)
• ADC2_CH2 (GPIO 2)
• ADC2_CH3 (GPIO 15)
• ADC2_CH4 (GPIO 13)
• ADC2_CH5 (GPIO 12)
• ADC2_CH6 (GPIO 14)
• ADC2_CH7 (GPIO 27)
• ADC2_CH8 (GPIO 25)
• ADC2_CH9 (GPIO 26)

Estos pines tienen una resolución de 12 bits. Esto significa que puede obtener lecturas analógicas que van de 0 a 4095, en las que 0 corresponde a 0V y 4095 a 3.3V. También tiene la capacidad de establecer la resolución de sus canales en el código, así como el rango ADC.

Los pines ADC ESP32 no tienen un comportamiento lineal esto dificulta por ejemplo diferenciar entre 0 y 0.1V, o entre 3.2 y 3.3V. Esto se debe tener en cuenta al diseñar los proyectos, ya que la conversión a 12bit conlleva que en ese rango, tal y como indicábamos en el párrafo anterior, la variación es de 4096 puntos.

Convertidor digital a analógico (DAC de Digital Analog Converter)

El ESP32 dispone de 2 canales DAC de 8 bits, útiles para convertir señales digitales en salidas de señal de voltaje analógicas. Están disponibles a través d los siguientes GPIO:

• DAC1 (GPIO25)
• DAC2 (GPIO26)

RTC GPIOs

ESP32 ofrece soporte de RTC GPIO que se encuentran enrutados al subsistema de baja potencia RTC y se pueden usar cuando el ESP32 está en modo Deep-Sleep. Estos RTC GPIO se pueden usar también para reactivar el ESP32 cuando está en uso el el coprocesador Ultra Low Power (ULP). Los siguientes GPIO se pueden usar como una fuente de activación externa RTC:

• 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 ESP32 LED PWM cuenta con 16 canales independientes que pueden configurarse para generar señales PWM con diferentes propiedades. Todos los pines que pueden actuar como salidas se pueden usar como pines PWM (los GPIOs 34 a 39 no pueden generar PWM ya que como indicábamos al principio de este artículo no disponen de resistencia Pull-Up/Down.

Para producir una señal PWM,es necesario definir a través del código lo siguiente:
• frecuencia de la señal;
• Ciclo de trabajo;
• canal PWM;
• GPIO que emite la señal.

I2C

El ESP32 también dispone de soporte I2C, para poder utilizar este protocolo de comunicación, habitual en algunos display, pantallas de tinta electrónico y algunos sensores, hay que utilizar los pines específicos del ESP32 I2C (soportados por la biblioteca de Wire):
• GPIO 21 (SDA)
• GPIO 22 (SCL)

SPI

El Bus SPI (del inglés Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj (comunicación sincrónica).

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

SPIMOSIMISOCLKCS
VSPIGPIO 23GPIO 19GPIO 18GPIO 5
HSPIGPIO 13GPIO 12GPIO 14GPIO 15

Interrupciones

Una mejora más con respecto a las versiones anteriores como el ESP8266 es la posibilidad de utilizar todos los pines como interrupciones. De esta forma podemos generar a través del código una señal de interrupción para realizar una operación en cualquier momento, por ejemplo con un pulsador.

Pines en estado HIGH durante el reinicio

Algunos GPIO cambien de estado HIGH o salida PPWM durante el reinicio de la placa. Esto puede generar problemas y resultados inesperados durante el arranque o incluso impedir el reinicio de la placa. Los pines que modifican así su estado son los siguientes:

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 to GPIO 11
  • GPIO 14
  • GPIO 15

Pin EN (Enable)

Este pin es el de habilitación del regulador 3.3V. Para deshabilitar el regulador de 3.3V será suficiente conectar este pin a tierra. Esto implica que se puede usar este pin conectado a un botón para reiniciar el ESP32.

Consumo de corriente de los GPIO

La corriente máxima absoluta consumida por GPIO es de 40 mA según la sección «Condiciones de funcionamiento recomendadas» en la hoja de datos de ESP32.

Sensor Magnético Integrado (Hall Effect Sensor)

Entre las prestaciones, este integrado incluye un sensor magnético que permite detectar modificaciones en los campos magnéticos de su entorno. Se puede activar a través de código y puede resultar útil en algunas aplicaciones.

Para la lectura del valor de este sensor, se puede utilizar la función integrada hallRead();

Sensor de Temperatura Integrado

Junto con el sensor de campos magnéticos, el ESP32 dispone de un sensor interno de temperatura. El valor de este sensor se puede obtener con la función temperature_sens_read();

 

Comentarios

Populares

Manual en español de la radio ATS 20 plus V 1.18

    Características Interfaz completamente reelaborada . No más fuentes feas y estiradas. Interfaz legible minimalista. La fuente de frecuencia de 7 segmentos está inspirada en el firmware swling, pero la creé yo. Controles completamente reelaborados . Puede leer el manual de usuario a continuación. BFO ahora es parte de la frecuencia principal y está regulado por paso de frecuencia, ya no es una opción dedicada que hace que la experiencia de navegación en frecuencia sea terrible. El modo SSB tiene pasos más precisos. Banda LW : De 153 KHz a 520 KHz Banda MW : De 520 a 1710 KHz Banda SW : De 1710 a 30000 KHz (Con muchas subbandas) Banda FM : De 64 a 108 MHz. RDS dinámico para estaciones de radio FM con opción para cambiar líneas de información RDS (muestra hasta 16 caracteres). Exploración de estaciones AM/FM . Modo CW agregado . Se eliminó el RSSI mal diseñado y se reemplazó con una escala similar a un medidor S que se muestra opcionalmente . Todas las bandas SW ahora se sienten como

Easyworship 2009 full español mega

  Requerimientos básicos del sistema: Sistema operativo: Windows XP SP3 / Vista/ 7. CPU: Procesador Intel Pentium 1GHz (32 /64bits) o procesador AMD. -Memoria: 512MB de RAM por lo menos, para funcionar correctamente. -Espacio libre en disco duro: 5GB DESCARGAR POR MEGA AQUI

Biblias para OpenLP

  RESUMEN: Estas son las Biblias que yo he podido convertir desde e-Sword y se pueden usar en OpenLP Lista Completa de todas las Biblias disponibles para descarga: Biblia International Standard Version Biblia Jerusalen Biblia Latinoamericana 95 Biblia Latinoamericana de Hoy Biblia Lenguaje Sencillo Dios Habla Hoy Easy To Read Version King James 2000 La Biblia de Las Americas Modern King James Version Nueva Biblia de Jerusalén Nueva Biblia de los Hispanos Nueva Biblia Latinoamericana de Hoy Nueva Traducción Viviente NVI Palabra de Dios para Todos Reina Valera Contemporanea Reina Valera Gómez 2004 Reina-Valera 1960 Traducción en Lenguaje Actual Descargue de MEGA: https://mega.nz/#F!Shlg3ZxT!7yhz05bD2Sw86oFgqMApJQ

Canciones Easyworship y Openlp

Paquete de canciones en total mas de 150: -Declaramos (Marcos Brunet). -Aquí Estoy (Rey de Reyes) -Agnus Dei (o Aleluya) -Abre los Cielos (Jesús Adrián Romero) -Abre los Cielos (Ingrid Rosario) -Hosanna (Marcos Barrientos)   Lista de canciones: A Dios dale Gloria A tus pies A Tí A Él sea la gloria Abba padre Abre hoy los Cielos Abre las puertas del Cielo Abre los Cielos Abre mis ojos Aclamad a Dios Adoramos Agnus dei Aguas profundas Ahora vivo para Tí Al borde de tu Gran Trono Al que me ciñe Al rey de Gloria Alabanzas Alcanza oh Dios mi corazón Aleluya (Hillsong) Aleluya a nuestro Dios Aleluya2222222 Alfarero Algo esta cayendo aquí Algo grande viene Alza tus ojos y mira Amado salvador Amor sin condición Anhelo conocerte Aquí se siente la presencia de dios Aquí estoy Aquí estoy (Hillsong) Atrae mi corazón Atráeme a Tí Aunque esa tierra sea de gigantes Aunque un ejercito Bendito Jesús Bueno es alabar Cada d

Temas para OpenLP en windows

  RESUMEN: Cuando uno instala OpenLP éste viene con pocos temas. Hice estos temas(fondos) para OpenLP con los Wallpapers de Ubuntu que encontré en los repositorios de UbuntuStudio 15.10 (vistos en synaptic y creando un script de descarga) Usé el programa XnViewMP para redimensionar cada imagen al estandar que usa OpenLP 1024x768, después en OpenLP con cada imagen creé un nuevo tema ( usted también puede crear los suyos propios ). Para la combinación de colores me ayudé con el programa Gpick tomando el color de cada wallpaper y generando su complementario o triada para saber qué color de letra podría poner con respecto al fondo (Nota: en Gpick usé Color Whell: RYB v1). También explico que dependiendo de la imágen usada puse las letras arriba o en medio o abajo. Además usé el tamaño de letra 42, con negrita, y bordes en todas. INSTRUCCIONES Los archivos que usted descargará son ejecutables (.exe), instálelos como un programa normal, luego cuando abra otra v