En la entrada anterior vimos los distintos pines del ESP8266 y sus funcionalidades. Pero ya comentamos, que no todos los pines son seguros de usar en nuestros proyectos.
Esto es debido a que algunos pines tienen funciones específicas o desempeñan un papel crucial en el proceso de arranque del dispositivo. Si no se utilizan correctamente, esto podemos generar un conflicto y conseguir que nuestro proyecto no arranque, o incluso romper algo.
De los 17 GPIO (0 a 16):
- 6 GPIO (GPIO6 a GPIO11) son usados para conectar por SPI con la memoria flash, por lo que no podemos usarlos.
- Los GPIO0, GPIO2 y GIPO15 intervienen en el arranque, con las consideraciones que hemos visto en el apartado anterior.
- Los GPIO1 y GPIO3 son usados para comunicación Serial (UART)
Más información sobre detalles del hardware del ESP8266, en especial sobre los pines de configuración en la entrada Detalles de hardware y pins del ESP8266
Resumen de los pines
Para evitar contratiempos y asegurarnos de utilizar los pines de manera adecuada, tenemos la siguiente tabla de referencia. Nos permite verificar de un vistazo qué pines son seguros para su uso y cuáles tienen funciones específicas que debemos tener en cuenta.
Antes de iniciar cualquier proyecto con el ESP8266, es altamente recomendable consultar esta tabla de referencia y familiarizarse con las características de cada pin. Esto nos permitirá tomar decisiones informadas y evitar posibles inconvenientes en el desarrollo de nuestros proyectos.
GPIO | Pin | Input | Output | Comentarios |
---|---|---|---|---|
GPIO0 | D3 | ⚠️Pulled Up | ✔️ | Boot falla si pulled LOW Conectado a botón FLASH |
GPIO1 | TX | ⚠️TX | ✔️ | HIGH durante Boot falla si pulled LOW Debug output en boot No usable si se usa UART |
GPIO2 | D4 | ⚠️Pulled Up | ✔️ | HIGH durante boot Boot falla si pulled LOW Built-in LED TX1 |
GPIO3 | RX | ✔️ | ⚠️RX | HIGH durante boot No usable si se usa UART |
GPIO4 | D2 | ✔️ | ✔️ | SDA (I2c) (frecuentemente) |
GPIO5 | D1 | ✔️ | ✔️ | SCL (I2C) (frecuentemente) |
GPIO6-11 | - | ❌ | ❌ | Usados por la memoria FLASH |
GPIO12 | D6 | ✔️ | ✔️ | MISO (SPI) |
GPIO13 | D7 | ✔️ | ✔️ | MOSI (SPI) |
GPIO14 | D5 | ✔️ | ✔️ | SLCK (SPI) |
GPIO15 | D8 | ⚠️Pulled to GND | ✔️ | CS (SPI) LOW durante boot Boot falla si pulled HIGH No tiene Pull-Up |
GPIO16 | D0 | ⚠️No interrupciones | ⚠️No PWM ⚠️No I2C | HIGH durante boot Resistencia Pull-Down Conectar a RST para Wake-Up |
ADC0 | A0 | ⚠️Analog Input | ❌ |
En las próximas entradas iremos viendo distintas placas de placas de desarrollo como la NodeMCU que integran el ESP8266 y empezaremos su programación.