Pines Esp32

Pines de entrada Los GPIO del 43 al 39 solo deberían usarse como entradas digitales. No tienen resistencias de pull-up n

Views 167 Downloads 3 File size 337KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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. 2. 3. 4. 5. 6.

GPIO34 GPIO35 GPIO36 GPIO37 GPIO38 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. 2. 3. 4. 5. 6.

GPIO 6 (SCK/CLK) GPIO 7 (SDO/SD0) GPIO 8 (SDI/SD1) GPIO 9 (SHD/SD2) GPIO 10 (SWP/SD3) 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. 2. 3. 4. 5. 6. 7. 8. 9. 10.

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)

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. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

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)

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. 2.

DAC1 (GPIO25) 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. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

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 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. 2.

GPIO 21 (SDA) 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. 2. 3. 4. 5. 6.

GPIO 0 GPIO 2 GPIO 4 GPIO 5 GPIO 12 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.