Este artigo é um guia para os GPIOs do ESP8266: diagramas de pinagem, suas funções e como usá-los.
O chip ESP8266 12-E vem com 17 pinos GPIO. Nem todos os GPIOs estão disponíveis em todas as placas de desenvolvimento ESP8266, alguns GPIOs não são recomendados para uso, e outros têm funções muito específicas.
Com este guia, você aprenderá como usar corretamente os GPIOs do ESP8266 e evitará horas de frustração ao usar os pinos corretos para seus projetos.
ESP8266 12-E Chip Pinout
A figura a seguir ilustra o layout dos pinos do chip ESP8266 12-E. Utilize este diagrama se estiver utilizando um chip ESP8266 sem placa em seus projetos.
Atualmente, há uma ampla variedade de placas de desenvolvimento com o chip ESP8266 que diferem no número de GPIOs acessíveis, tamanho, formato, etc.
As placas ESP8266 mais amplamente utilizadas são o ESP-01, o Kit NodeMCU ESP8266-12E e o Wemos D1 Mini.
ESP8266-01 Pinout
Se estiver utilizando uma placa ESP8266-01, você pode utilizar o seguinte diagrama de GPIO como referência.
ESP8266 12-E NodeMCU Kit
O diagrama de pinos do kit ESP8266 12-E NodeMCU é mostrado abaixo.
Wemos D1 Mini Pinout
A figura a seguir mostra o diagrama de pinos do WeMos D1 Mini.
Periféricos ESP8266
Os periféricos do ESP8266 incluem:
- 17 GPIOs
- SPI
- I2C (implementado em software)
- Interfaces I2S com DMA
- UART
- ADC de 10 bits
Melhores pinos para usar – ESP8266
Uma coisa importante a notar sobre o ESP8266 é que o número do GPIO não corresponde à etiqueta na serigrafia da placa. Por exemplo, D0 corresponde ao GPIO16 e D1 corresponde ao GPIO5.
A tabela a seguir mostra a correspondência entre as etiquetas na serigrafia e o número do GPIO, assim como quais pinos são os melhores para usar em seus projetos e quais você precisa ter cautela.
Os pinos destacados em verde estão OK para uso. Os destacados em amarelo estão OK para uso, mas você precisa prestar atenção porque podem ter comportamento inesperado principalmente durante a inicialização. Os pinos destacados em vermelho não são recomendados para uso como entradas ou saídas.
RÓTULO | GPIO | INPUT | OUTPUT | NOTAS |
---|---|---|---|---|
D0 | GPIO16 | Sem interrupção | Sem suporte a PWM ou I2C | High na inicialização |
D1 | GPIO5 | OK | OK | frequentemente usado como SCL (I2C) |
D2 | GPIO4 | OK | OK | frequentemente usado como SDA (I2C) |
D3 | GPIO0 | pulled up | OK | conectado ao botão FLASH, a inicialização falha se ficar em LOW |
D4 | GPIO2 | pulled up | OK | High na inicialização, conectado ao LED integrado, a inicialização falha se ficar em LOW |
D5 | GPIO14 | OK | OK | SPI (SCLK) |
D6 | GPIO12 | OK | OK | SPI (MISO) |
D7 | GPIO13 | OK | OK | SPI (MOSI) |
D8 | GPIO15 | pulled to GND | OK | SPI (CS) |
RX | GPIO3 | OK | RX Pin | HIGH na inicialização |
TX | GPIO1 | TX pin | OK | HIGH na inicialização |
A0 | ADC0 | Entrada analógica | X |
Continue lendo para uma análise mais detalhada e aprofundada dos GPIOs do ESP8266 e suas funções.
GPIOs conectados ao chip de memória flash
Os GPIOs 6 a 11 geralmente estão conectados ao chip de memória flash em placas ESP8266. Portanto, não são recomendados para uso.
Pinos usados durante a inicialização
O ESP8266 pode ser impedido de inicializar se alguns pinos forem puxados para LOW ou para HIGH. A seguinte lista mostra o estado dos seguintes pinos na INICIALIZAÇÃO:
- GPIO16: pino está high na INICIALIZAÇÃO
- GPIO0: falha de inicialização se puxado para LOW
- GPIO2: pino está high na INICIALIZAÇÃO, falha de inicialização se puxado para LOW
- GPIO15: falha de inicialização se puxado para HIGH
- GPIO3: pino está high na INICIALIZAÇÃO
- GPIO1: pino está high na INICIALIZAÇÃO, falha de inicialização se puxado para LOW
- GPIO10: pino está high na INICIALIZAÇÃO
- GPIO9: pino está high na INICIALIZAÇÃO
Pinos com estado HIGH na inicialização
Existem alguns pinos que emitem um sinal de 3,3V quando o ESP8266 é inicializado. Isso pode ser problemático se você tiver relés ou outros periféricos conectados a esses GPIOs. Os seguintes GPIOs emitem um sinal HIGH na inicialização:
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
Além disso, os outros GPIOs, exceto GPIO5 e GPIO4, podem emitir um sinal de baixa voltagem na inicialização, o que pode ser problemático se estiverem conectados a transistores ou relés. Você pode ler este artigo que investiga o estado e comportamento de cada GPIO na inicialização.
Entrada Analógica – ESP8266
O ESP8266 suporta apenas leitura analógica em um GPIO. Esse GPIO é chamado de ADC0 e geralmente é marcado na serigrafia como A0.
A tensão máxima de entrada do pino ADC0 é de 0 a 1V se você estiver usando o chip ESP8266 sem placa. Se estiver usando uma placa de desenvolvimento como o kit NodeMCU ESP8266 12-E, a faixa de entrada de voltagem é de 0 a 3,3V porque essas placas contêm um divisor de tensão interno.
LED Integrado (Interno)
A maioria das placas de desenvolvimento ESP8266 tem um LED embutido. Este LED geralmente está conectado ao GPIO2.
O LED funciona com lógica invertida. Envie um sinal HIGH para desligá-lo e um sinal LOW para ligá-lo.
Pino RST
Quando o pino RST é levado ao estado LOW, ocorre um reset no ESP8266, o que é similar a pressionar o botão de RESET presente na placa.
GPIO0
Quando o GPIO0 é configurado como LOW, isso coloca o ESP8266 no modo de inicialização, semelhante a pressionar o botão FLASH/BOOT na placa.
GPIO16
Para acordar o ESP8266 do modo de sono profundo, conecte o GPIO16 ao pino RST. Isso permite que o ESP8266 seja ativado a partir do estado de dormência profunda quando necessário.
I2C
O ESP8266 não possui pinos I2C de hardware, mas pode ser implementado em software. Portanto, você pode usar qualquer GPIOs como I2C. Normalmente, os seguintes GPIOs são usados como pinos I2C:
- GPIO5: SCL
- GPIO4: DAS
SPI
Para o SPI no ESP8266, os pinos utilizados são:
- GPIO12: MISO (Master In Slave Out)
- GPIO13: MOSI (Master Out Slave In)
- GPIO14: SCLK (Serial Clock)
- GPIO15: CS (Chip Select)
Pinos PWM
O ESP8266 permite PWM (Modulação por Largura de Pulso) por software em todos os pinos de I/O: GPIO0 a GPIO15. Os sinais PWM no ESP8266 têm uma resolução de 10 bits.
Pinos de Interrupção
O ESP8266 é capaz de utilizar interrupções em qualquer um de seus pinos GPIO, exceto no GPIO16.
GPIO INPUT / OUTPUT – ESP8266
Abaixo os pinos que funcionam como INPUT e OUTPUT. Realizamos alguns testes para comprovar que realmente eles funcionam:
- OUTPUT Digital (digitalWrite): NÃO funcionou com os GPIOs 6, 7, 8, 11 e o ADC (A0)
- INPUT Digital (digitalRead): NÃO funcionou com os GPIOs 1, 3, 6, 7, 8, 11 e o ADC (A0)
- OUTPUT Analógico (analogWrite): NÃO funcionou com os GPIOs 6, 7, 8, 11 e o ADC (A0) (Os GPIOs 4, 12, 14, 15 possuem PWM por hardware os demais por software)
- INPUT Analógico (analogRead): funcionou apenas com o ADC (A0)
Obs: Os pinos 6, 7, 8, 11 não funcionam para as quatro funções acima.
Qual o número que coloco quando estou programando?
Você pode utilizar o número que está na frente do GPIO ou as constantes A0, D0, D1, D2, D3, D4, D5, D6, D7 e D8.
Finalizando
Esperamos que este guia sobre os GPIOs do ESP8266 tenha sido proveitoso para você. Se tiver algum conselho ou dicas sobre o uso adequado dos GPIOs do ESP8266, por favor, compartilhe conosco na seção de comentários abaixo.
Além disso, se você tiver alguma dúvida ou precisar de mais informações sobre o ESP8266 ou qualquer outro tópico relacionado, não hesite em perguntar. Estamos aqui para ajudar!
Uma resposta