Pinagem do ESP8266

O ESP8266 tem a vantagem de oferecer uma quantidade considerável de pinos GPIO para a sua necessidade. No entanto, é fundamental prestar muita atenção aos detalhes da pinagem. Nem todos os pinos GPIO do ESP8266 são seguros para uso.

É importante mencionar que a referência de pinagem apresentada abaixo se refere à placa de desenvolvimento ESP8266 NodeMCU de 30 pinos, amplamente utilizada.

placa de desenvolvimento esp8266 nodemcu

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Periféricos e E/S do ESP8266

O ESP8266 NodeMCU possui um total de 17 pinos GPIO distribuídos nos dois lados da placa de desenvolvimento por meio de barras de pinos. Esses pinos são versáteis e podem receber várias funções de periféricos, incluindo:

  • 9 x Pinos de entrada/saída digital:
  • 1 x Canal ADC: Oferece um único canal com ADC SAR de 10 bits de precisão.
  • 2 x Interfaces UART: Possui duas interfaces UART com suporte a controle de fluxo.
  • 4 x Saídas PWM: Oferece quatro pinos PWM para regular aspectos como a velocidade de um motor ou o brilho de um LED.
  • 2 x SPI: Equipado com duas interfaces SPI para conectar diversos sensores e periféricos.
  • 1 x I2C: Incorpora uma interface I2C para conexão com uma variedade de sensores e periféricos.
  • 1 x I2S: Inclui uma interface I2S para adicionar som ao seu projeto.

Pinagem do ESP8266

O ESP8266 NodeMCU possui um total de 30 pinos, organizados para facilitar o uso. Veja o diagrama de pinagem abaixo para conhecer o layout:

Pinagem do ESP8266 NodeMCU NodeMCU

Agora, vamos conhecer os pinos individuais do ESP8266 e descobrir suas funções específicas.

Pinos de Entrada/Saída Digital

Entre os 30 pinos da placa ESP8266 NodeMCU, você pode usar 9 pinos para entrada/saída digital. Entre esses 9 pinos, 5 pinos são seguros para uso e os outros 4 pinos também podem ser usados como entrada/saída digital, mas com cuidado.

Dentro dos 30 pinos da placa ESP8266 NodeMCU, 9 pinos podem ser usados para entrada/saída digital. Em detalhes:

  • 5 pinos são seguros para uso como pinos de entrada/saída digital
  • 4 pinos também podem ser usados como pinos de entrada/saída digital, mas exigem um manuseio cuidadoso.
  • Todos os 9 pinos podem ser configurados com pull-up ou pull-down interno (no chip), ou ajustados para alta impedância.

A tabela abaixo mostra quais pinos são seguros para uso e quais pinos devem ser usados com cautela.

GPIO Rótulo do Pino Seguro para usar? Motivo
GPIO16 D0
!
HIGH na inicialização, usado para acordar do deep sleep
GPIO5 D1
✓
GPIO4 D2
✓
GPIO0 D3
!
conectado ao botão FLASH, a inicialização falha se for puxado para LOW. Resistor de pull-up externo de 10k na placa
GPIO2 D4
!
HIGH na inicialização, a inicialização falha se for puxado para LOW. Resistor de pull-up externo de 10k na placa
GPIO14 D5
✓
GPIO12 D6
✓
GPIO13 D7
✓
GPIO15 D8
!
Necessário para a inicialização, a inicialização falha se for puxado para HIGH. Resistor de pull-down externo de 10k na placa
GPIO3 RX
✕
Pino RX, usado para gravação e depuração
GPIO1 TX
✕
Pino TX, usado para gravação e depuração
GPIO6 CLK
✕
Conectado à memória Flash
GPIO7 SDO
✕
Conectado à memória Flash
GPIO11 CMD
✕
Conectado à memória Flash
GPIO8 SD1
✕
Conectado à memória Flash
GPIO9 SD2
✕
Conectado à memória Flash
GPIO10 SD3
✕
Conectado à memória Flash
ADC0 A0
✕
Pode ser usado somente como pino de entrada analógica.


Legenda
✓
Estes são os seus pinos de maior prioridade, absolutamente seguros para uso. Nenhuma preocupação aqui.
!
Preste muita atenção, pois o comportamento deles, principalmente durante a inicialização, pode ser imprevisível. Preste atenção também aos resistores de pull-up/pull-down externos que ficam na placa. Use-os somente quando for absolutamente necessário.
✕
Estes pinos NÃO devem ser usados como pinos de entrada/saída digital.

A imagem abaixo mostra quais pinos GPIO podem ser usados como pinos de entrada/saída digital.

Pinos de entrada/saída digital do ESP8266 NodeMCU NodeMCU

Como programar os pinos de entrada/saída digital do ESP8266.

Você pode usar as funções a seguir para manipular os pinos de entrada/saída digital do ESP8266.

Observe que você precisa usar o rótulo do pino no código. Por exemplo, o pino GPIO5 (D1):

void setup() { pinMode(D1, OUTPUT); } void loop() { digitalWrite(D1, HIGH); delay(1000); digitalWrite(D1, LOW); delay(1000); }

Exemplos de uso do pino de entrada digital do ESP8266:

Exemplos de uso do pino de saída digital do ESP8266:

Pinos ADC

O ESP8266 vem equipado com um conversor analógico-digital (ADC) de 10 bits de precisão, que permite distinguir 1024 (2^10) níveis analógicos diferentes. Basicamente, ele converte tensões de entrada na faixa de 0 a 3,3V (tensão de operação) em valores inteiros de 0 a 1024. Consequentemente, essa configuração resulta em uma resolução de 3,3 volts divididos por 1024 unidades, o equivalente a 0,0032 volts (3,2 mV) por unidade.

Pino ADC do ESP8266 NodeMCU NodeMCU

Exemplo de código usando o ADC no ESP8266:

void setup() { Serial.begin(9600); } void loop() { int adc = analogRead(A0); Serial.println(adc); // the raw analog reading }

Exemplos de sensores analógicos que usam o pino A0 do ESP8266:

Pinos SPI

O ESP8266 possui dois SPIs (SPI e HSPI) nos modos escravo e mestre. Esses SPIs também oferecem os recursos gerais de SPI listados abaixo:

  • 4 modos de temporização para a transferência no formato SPI
  • Até 80 MHz e os clocks divididos de 80 MHz
  • FIFO de até 64 bytes
Pinos SPI do ESP8266 NodeMCU NodeMCU

Exemplos de uso dos pinos SPI do ESP8266:

Pinos I2C

O ESP8266 não possui pinos I2C integrados, mas você ainda pode fazê-lo funcionar por meio de 'bitbanging'. Ele tem bom desempenho, e o ESP8266 é rápido o bastante para acompanhar o desempenho esperado do Arduino.

Por padrão, GPIO4 (SDA) e GPIO5 (SCL) são configurados como pinos I2C para simplificar a vida de quem usa códigos, bibliotecas e sketches existentes do Arduino.

No entanto, você tem a liberdade de escolher quaisquer outros dois pinos GPIO para o I2C usando wire.begin(SDA, SCL) no Arduino IDE.

Pinos I2C do ESP8266 NodeMCU NodeMCU

Exemplos de uso dos pinos I2C do ESP8266:

Pinos UART

O ESP8266 possui duas interfaces UART, UART0 e UART2, que permitem comunicação assíncrona (RS232 e RS485) em velocidades impressionantes de até 4,5 Mbps. Essa capacidade as torna adequadas para aplicações de transferência de dados em alta velocidade.

  • A UART0 (pinos TXD0, RXD0, RST0 e CTS0) é usada para comunicação.
  • A UART1 (pino TXD1) possui somente um sinal de transmissão de dados e normalmente é usada para imprimir logs.
Pinos UART do ESP8266 NodeMCU NodeMCU

RXD0 e TXD0 servem como pinos de controle serial e de bootloading do módulo ESP, tendo um papel fundamental na comunicação com o módulo. Eles são especialmente importantes durante o processo de bootloading. Portanto, tenha cuidado ao usá-los, pois eles são conectados ao conversor USB-serial e, por isso, recebem o tráfego USB.

Pinos PWM

Todos os pinos GPIO do ESP8266, de GPIO0 a GPIO15, são programáveis para gerar saídas com modulação por largura de pulso (PWM).

O sinal PWM no ESP8266 tem resolução de 10 bits, oferecendo controle preciso da saída. Além disso, a faixa de frequência do PWM é personalizável, variando de 1000 μs a 10000 μs, o equivalente a uma faixa de frequência flexível entre 100 Hz e 1 kHz. Essa adaptabilidade o torna adequado para uma ampla gama de aplicações que exigem configurações de PWM variadas.

Pinos de Alimentação

  • O pino VIN oferece uma opção prática para alimentar diretamente o ESP8266 e seus periféricos quando recebe uma fonte de 5V regulada.
  • O pino 3V3 serve como a saída do regulador de tensão da placa, capaz de fornecer substanciais 600mA. Isso o torna uma fonte confiável para alimentar dispositivos e componentes conectados.
  • GND funciona como o pino de terra, estabelecendo o ponto de referência elétrica para o ESP8266 e os dispositivos conectados. Ele garante um terra comum para o sistema, mantendo conexões elétricas estáveis e adequadas.

Pinos de Interrupção

Todos os GPIOs (General Purpose Input/Output) do ESP8266, com exceção do GPIO16, podem ser configurados como interrupção.

Isso significa que cada GPIO, de GPIO0 a GPIO15, pode ser configurado para disparar uma interrupção, permitindo que o ESP8266 responda a eventos específicos ou a mudanças nos estados de entrada. O GPIO16, porém, não oferece suporte a essa configuração de interrupção. Essa flexibilidade no uso de interrupções aumenta a versatilidade do ESP8266 no tratamento de eventos em tempo real e na interação com dispositivos externos.

Pinos SDIO

O ESP8266 é equipado com um único SDIO (Secure Digital Input/Output Interface) escravo, projetado para conectar cartões SD. Ele oferece suporte ao SDIO v1.1 em 4 bits a 25 MHz e ao SDIO v2.0 em 4 bits a 50 MHz.

Esse recurso permite a integração perfeita de cartões SD ao ESP8266, oferecendo transferência de dados em alta velocidade e compatibilidade com diferentes versões do SDIO. Seja usando o SDIO v1.1 ou o v2.0, o ESP8266 oferece versatilidade para conectar e acessar dados de cartões SD com eficiência.

Pinos de Controle

  • O pino EN (também conhecido como CH_PD ou Chip Power Down) funciona como o pino de habilitação do ESP8266 e é mantido em nível alto por padrão. Quando está em HIGH, o chip fica habilitado, permitindo a operação normal. Por outro lado, quando é puxado para LOW, o chip fica desabilitado, sendo efetivamente desligado.
  • O pino RST funciona como o pino de reset do ESP8266 e é mantido em nível alto por padrão. Quando é puxado brevemente para o terra, ele dispara um reset no ESP8266, de forma semelhante a pressionar o botão RST da placa.
  • O pino FLASH é utilizado pelo ESP8266 para determinar se deve inicializar no bootloader. Manter o pino em nível baixo durante a energização inicia o processo de bootloading, de forma semelhante a pressionar o botão FLASH da placa.
  • O pino WAKE é empregado para acordar o ESP8266 do modo deep sleep, permitindo que o dispositivo retome a operação normal depois de ficar em um estado de baixo consumo.

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!