Está en la página 1de 5

Pines de entrada

Los GPIO del 43 al 39 solo deberían usarse como entradas digitales. No


tienen resistencias de pull-up ni de pull-down. Y no deben usarse tampoco como salidas.

1. GPIO34
2. GPIO35
3. GPIO36
4. GPIO37
5. GPIO38
6. GPIO39

SPI
Muchas placas de desarrollo sacan los GPIOs del 6 al 11 para que sean usados, el
problema es que estos están conectados a la SPI que usa el ESP32 con su Flash, por
lo que podemos tener resultados inesperados o directamente negativos. Por lo tanto, si
podemos evitarlo, es mejor no usar estos pines:

1. GPIO 6 (SCK/CLK)
2. GPIO 7 (SDO/SD0)
3. GPIO 8 (SDI/SD1)
4. GPIO 9 (SHD/SD2)
5. GPIO 10 (SWP/SD3)
6. GPIO 11 (CSC/CMD)

Pines capacitivos
No todo el mundo sabe que el ESP32 cuenta con 10 pines capacitivos. Estos pines, al
igual que algunas pantallas táctiles, son capaces de detectar las variaciones eléctricas
que produce, por ejemplo, la piel humana cuando toca algo. De esta forma podemos
usar estos pines para sustituir los botones mecánicos por una superficie que, al ser
tocada, actúe cómo botón. Seguro que habéis visto este tipo de interruptores en muchos
espacios públicos donde ya no es necesario accionar mecánicamente el interruptor para
dar la luz, basta con acercar la mano a una pequeña placa gris para que se encienda.
Si queremos hacer algo similar podemos usar los siguientes pines:

1. T0 (GPIO 4)
2. T1 (GPIO 0)
3. T2 (GPIO 2)
4. T3 (GPIO 15)
5. T4 (GPIO 13)
6. T5 (GPIO 12)
7. T6 (GPIO 14)
8. T7 (GPIO 27)
9. T8 (GPIO 33)
10. T9 (GPIO 32)

Estos pines pueden ser usados también para despertar al ESP32 de su modo de sueño
profundo.
Entradas analógicas
Cómo ya hemos comentado el ESP32 integra un conversor de analógico a digital, lo que
nos permite tomar lecturas analógicas. Concretamente tenemos a nuestra disposición
18 pines con capacidad para tomar este tipo de lecturas. Todas ellas con una resolución
de 12bits (por lo tanto tendremos una precisión mejor que la que trae Arduino, o incluso
el ESP8266).

Cómo ya comentamos estos pines son fijos y son los siguientes:

1. ADC1_CH0 (GPIO 36)


2. ADC1_CH1 (GPIO 37)
3. ADC1_CH2 (GPIO 38)
4. ADC1_CH3 (GPIO 39)
5. ADC1_CH4 (GPIO 32)
6. ADC1_CH5 (GPIO 33)
7. ADC1_CH6 (GPIO 34)
8. ADC1_CH7 (GPIO 35)
9. ADC2_CH0 (GPIO 4)
10. ADC2_CH1 (GPIO 0)
11. ADC2_CH2 (GPIO 2)
12. ADC2_CH3 (GPIO 15)
13. ADC2_CH4 (GPIO 13)
14. ADC2_CH5 (GPIO 12)
15. ADC2_CH6 (GPIO 14)
16. ADC2_CH7 (GPIO 27)
17. ADC2_CH8 (GPIO 25)
18. ADC2_CH9 (GPIO 26)

Recordar que el ESP32 funciona a 3.3V, no a 5V. Por lo tanto con los 12 bits de
resolución tendremos valores desde el 0 hasta el 4095, siendo 0 un valor -cercano- a
0V y 4095 un valor -cercano- a 3.3V. Si necesitan leer tensiones mayores tendrás que
usar un divisor o un conversor de tensión para asegurarte de no superar nunca este
umbral.

Salidas analógicas
Continuando en el mundo de la analógica recordemos que en este caso contamos con
un conversor de digital a analógico, esto nos va a permitir tener salidas analógicas, algo
que no es muy común en microcontrolares de bajo coste y que nos permitirá, por
ejemplo, experimentar con el sonido.

Estos pines son:

1. DAC1 (GPIO25)
2. DAC2 (GPIO26)

RTC
Uno de los aspectos que más se ha cuidado en el ESP32 es su modo de bajo consumo
que consigue gastos realmente ridículos cuando se pone en modo de sueño profundo.
Como parte de este sistema se han integrado pines que soportan RTC (real time clock,
reloj de tiempo real) para las tareas de despertar el micro. Este RTC también está
conectado a algunos pines y podemos usarlos para producir una señal en ellos cuando
pase un determinado intervalo de tiempo.

Estos pines son:

1. RTC_GPIO0 (GPIO36)
2. RTC_GPIO3 (GPIO39)
3. RTC_GPIO4 (GPIO34)
4. RTC_GPIO5 (GPIO35)
5. RTC_GPIO6 (GPIO25)
6. RTC_GPIO7 (GPIO26)
7. RTC_GPIO8 (GPIO33)
8. RTC_GPIO9 (GPIO32)
9. RTC_GPIO10 (GPIO4)
10. RTC_GPIO11 (GPIO0)
11. RTC_GPIO12 (GPIO2)
12. RTC_GPIO13 (GPIO15)
13. RTC_GPIO14 (GPIO13)
14. RTC_GPIO15 (GPIO12)
15. RTC_GPIO16 (GPIO14)
16. RTC_GPIO17 (GPIO27)

PWM
Creo que cuando empezamos en el mundo de la electrónica todos nos quedamos
enamorados de las posibilidades que ofrece el PWM. Luego, vamos creciendo estás
lindes, aprendemos otras tecnológicas, otros modos de hacer las cosas… y nuestro
amor crece aún más. Y es que la posibilidad de crear pulsos de el ancho que queramos
abre un universo de posibilidades. A mi en muchas ocasiones me ha pasado que los
primeros pines sin los que me quedaba era precisamente estos y en muchas ocasiones
he tenido que recurrir a procesadores secundarios o placas hechas específicamente
para este fin, que me ampliasen el número de señales PWM que podía hacer (vease el
caso de Andy… )

En este caso el ESP32 puede hacer PWM con todos sus salidas a excepción de los que
los pines que van del 34 al 39.

Podemos configurar desde el código la frecuencia, el ciclo, el canal de PWM y el pin que
queremos usar.

I2C
Quizá en otra ocasión hagamos un tutorial sobre el protocolo I2C, que es mi protocolo
de comunicación favorito (si, hasta en esto se pueden tener favoritos)

Por software podemos definir cualquier pin para ser usado como con I2C, pero los que
vienen para tal fin por defecto, son compatibles con la librería Wire de Arduino y por lo
tanto os van a calentar menos la cabeza son:

1. GPIO 21 (SDA)
2. GPIO 22 (SCL)
SPI
Con SPI pasa algo similar a lo que acabamos de ver con I2C, podemos configurar por
software los pines que queremos usar para el SPI, pero por defecto vienen mapeados
de la siguiente forma:

SPI MOSI MISO CLK CS

VSPI GPIO23 GPIO19 GPIO18 GPIO5

VSPI GPIO13 GPIO12 GPIO14 GPIO15

Pines de interrupción
Maravillosa noticia ¡todos los pines del ESP32 pueden ser usados cómo pines de
interrupción!

Pines que es mejor dejar tranquilos…


Algunos pines son usados por el ESP32 para entrar en modo de programación o de
bootloader. Muchas placas de desarrollo no se molestan en sacar estos pines, otras si
lo hacen y si estás integrando el chip en tu diseño es una opción que tienes a tu
disposición y que recomendamos encarecidamente no hacer. Estamos hablando de los
pines:

1. GPIO 0
2. GPIO 2
3. GPIO 4
4. GPIO 5
5. GPIO 12
6. GPIO 15

La mayor parte del tiempo estos pines se comportan cómo pines normales, pero en el
arranque o la programación pasan a ser gestionados directamente por el ESP que los
coloca en el estado que necesita para llevar a cabo sus tareas. Si decides usarlos lo
más probable es que tengas problemas, incluso podrías no ser capaz de programar el
ESP32 mientras tengas algo conectado a ellos. Por eso te recomendamos dejar estos
pines tranquilos.

Pin de ENABLE
El pin de ENABLE (EN) está conectado al pin de enable del regulador de tension. Por
defecto tiene una pull-up que lo mantiene en alto, si nosotros tiramos este pin abajo
(conectandolo a tierra) desactivamos el regulador de 3.3V y por lo tanto el micro deja de
estar alimentado y se desconecta.

Esto puede ser interesante para producir un reset, por ejemplo, solo tenemos que
conectar este pin a tierra mediante un pulsador. Cuando no pulsemos la pull-up que
incorpora lo mantendrá en alto y, por lo tanto, activo. Cuando accionemos el pulsador
este pin estará en bajo, la corriente dejará de llegar al ESP32 y habremos producido un
reseteo.

También podría gustarte