Tabla de contenido:

ESP8266 usando pines GPIO0 / GPIO2 / GPIO15: 4 pasos
ESP8266 usando pines GPIO0 / GPIO2 / GPIO15: 4 pasos

Video: ESP8266 usando pines GPIO0 / GPIO2 / GPIO15: 4 pasos

Video: ESP8266 usando pines GPIO0 / GPIO2 / GPIO15: 4 pasos
Video: Как сделать 4-канальное реле Wi-Fi ESP8266 ESP01 | ESP01 Домашняя автоматизация | УдаленныйXY 2024, Noviembre
Anonim
ESP8266 usando pines GPIO0 / GPIO2 / GPIO15
ESP8266 usando pines GPIO0 / GPIO2 / GPIO15

Actualización del 1 de julio de 2018: se agregó una nota sobre la reprogramación cuando GPIO0 es una salida

Esta es una nota muy breve sobre cómo usar los pines GPIO0 / GPIO2 y GPIO15 en el módulo ESP8266.

Actualización: consulte también Cómo usar los pines ESP8266-01

Introducción

ESP8266 es un chip habilitado para wifi de bajo costo. Viene en una variedad de tipos de módulos y se puede programar de varias formas. Todos los módulos hacen que GPIO0 y GPIO2 sean accesibles. La mayoría de los módulos, además del ESP8266-01, también hacen que GPIO15 sea accesible. Estos GPIO controlan cómo se inicia el módulo y, como tales, requieren un manejo especial si se van a utilizar. GPIO6-GPIO11 también requieren un tratamiento especial como se describe a continuación.

Paso 1: Flash GPIO Pines - GPIO6 a GPIO11

La mayoría de las placas ESP8266 tienen un chip flash conectado a algunos o todos los GPIO6-GPIO11. La mayoría de los programas usan memoria flash, así como RAM, por lo que, a menos que te asegures específicamente de que tu código solo se ejecute desde la RAM, no puedes usar estos pines para otros fines.

El número exacto de pines utilizados en el rango GPIO6 a GPIO11 depende del tipo de hardware flash utilizado en su módulo. Quad IO usa 4 líneas para datos (6 pines en total) para hasta 4 veces la velocidad estándar. E / S dual usa 2 líneas para datos (4 pines en total) El estándar usa una sola línea para datos (3 pines en total).

A menos que sepa exactamente lo que requiere su placa, es mejor simplemente ignorar GPIO6 a GPIO11 y no consultarlos desde su código.

Paso 2: Pines GPIO0, GPIO2 y GPIO15

Pines GPIO0, GPIO2 y GPIO15
Pines GPIO0, GPIO2 y GPIO15

Estos pines determinan en qué modo se inicia el chip.

Para la ejecución normal del programa, GPIO0 y GPIO2 deben subirse a Vcc (3.3V) y GPIO15 debe llevarse a GND, cada uno con una resistencia en el rango de resistencia de 2K a 10K. Una resistencia de 2K ofrece una mejor inmunidad al ruido. OLIMEX usa resistencias de 2K SparkFun usa resistencias de 10K. Yo uso resistencias 3K3.

La configuración de estas entradas solo se verifica durante el encendido (o reinicio) del chip. Después de eso, los pines están disponibles para uso general, pero como se explica a continuación, su uso está restringido por estas resistencias externas de subida / bajada.

Paso 3: uso de GPIO0, GPIO2 y GPIO15 como salidas

Uso de GPIO0, GPIO2 y GPIO15 como salidas
Uso de GPIO0, GPIO2 y GPIO15 como salidas

Como se señaló anteriormente, estos pines ya tendrán una resistencia conectada a VCC (GPIO0 y GPIO2) o GND para GPIO15. Esto determina cómo se debe conectar cualquier dispositivo externo, como un relé o led + resistencia. Para GPIO0 y GPIO2, se debe conectar un relé externo entre VCC y el pin para que no interfiera con la acción de la resistencia pull up. Por el contrario, un relé externo conectado a GPIO15 debe estar conectado entre GND y el pin para que no interfiera con la acción de la resistencia de extracción.

Para activar el dispositivo externo, GPIO0 o GPIO2 deben estar en BAJO (Activo BAJO) mientras que GPIO15 debe estar en ALTO (Activo ALTO).

El esquema anterior muestra cómo usar GPIO0 y GPIO2 y GPIO15 como salidas. Este circuito también incluye las resistencias pullup / pulldown necesarias. Tenga en cuenta que el módulo de relé de 5 V impulsado por GPIO0 está optoaislado y tiene una conexión común separada para la entrada. Es importante que el voltaje VCCA de 5 V no se aplique al pin ESP8266.

Cómo reprogramar cuando se usa GPIO0 como salida

Nota: GPIO0 debe estar conectado a tierra para entrar en el modo de programación. Si el boceto lo está conduciendo alto, conectarlo a tierra puede dañar su chip ESP8266. La forma segura de reprogramar el ESP8266 cuando su código impulsa la salida GPIO0 es: - a) Apagar la placa b) acortar GPIO0 a gnd c) encender la placa que entra en modo de programa debido al cortocircuito en GPIO0 d) quitar el corto de GPIO0 para que no cortocircuite la salida cuando se ejecuta el programa e) reprogramar la placa f) apagar y encender la placa si es necesario.

Paso 4: Usar GPIO0, GPIO2 y GPIO15 como entradas

Usando GPIO0, GPIO2 y GPIO15 como entradas
Usando GPIO0, GPIO2 y GPIO15 como entradas

Usar estos pines como entradas es un poco complicado. Como se indicó anteriormente en el encendido y durante el reinicio, estos pines se deben tirar hacia arriba o hacia abajo según sea necesario para que el módulo ESP8266 se inicie en el modo de funcionamiento normal. Esto significa que, en general, no puede simplemente conectar un interruptor externo a estos pines porque en el momento del encendido, por lo general, no puede garantizar que el interruptor no tire de la entrada a tierra y, por lo tanto, impida que el módulo se inicie correctamente.

El truco es no conectar el interruptor externo directamente desde GPIO0 o GPIO2 a GND, sino conectarlo a otro pin GPIO que se conecta a tierra (como salida) solo después de que se inicia el ESP8266. Recuerde, cuando se usan como salidas, los pines GPIO brindan una conexión de muy baja resistencia a VCC o GND dependiendo de si están en ALTO o BAJO.

Aquí solo se considerarán GPIO0 y GPIO2. Con este método, puede obtener una (1) entrada de suma usando estos dos (2) GPIO.

Se puede usar un método similar para GPIO15 usando otro pin GPIO para conectar su interruptor a + VCC, pero esto no obtiene una entrada adicional, también puede usar el otro pin GPIO directamente como entrada.

El circuito anterior usa el módulo ESP8266-01 como ejemplo. Sin usar este truco, el ESP8266-01 no tiene pines libres para usar como entrada si ya está usando pines RX / TX para una conexión UART.

Dado que el método setup () del boceto solo se ejecuta después de que se inicia el módulo ESP8266, es seguro hacer que la salida GPIO0 sea BAJA y así proporcionar una tierra para S1 conectado a GPIO2. Luego, puede usar digitalRead (2) en otra parte de su boceto para leer la configuración del interruptor.

Conclusión

Esta breve nota muestra cómo usar GPIO0, GPIO2 y GPIO15 como salidas y cómo usar para obtener una entrada adicional usando GPIO0 y GPIO2 juntos.

Recomendado: