Blog
ESP32 Pinagem: Quais Pinos São Seguros, Arriscados ou Proibidos
A maioria dos diagramas de pinagem do ESP32 são perigosamente incompleto.
Eles listam orgulhosamente mais de 30 GPIOs, porém omita as restrições que realmente decidem se um produto funciona apenas em bancada ou sobrevive em campo: comportamento de boot strapping, conflitos no barramento SPI flash, acoplamento de ruído ADC e limitações de pinos somente de entrada.
Essas omissões não causam falhas óbvias. Elas causam falhas silenciosas — placas que programam bem, inicializam de forma inconsistente, sofrem deriva em função da temperatura ou falham meses após a implantação.
Após solucionar problemas em sistemas baseados em ESP32 em instalações solares externas, controladores industriais e implantações de IoT de longa duração, uma lição fica clara:
A robustez reside nos detalhes do pino.
Este guia corta o ruído das folhas de dados e os diagramas de pinagem genéricos para entregar um classificação de pinos testada em campo — O que é seguro, o que é arriscado e o que nunca deve ser usado em uma PCB de produção.
Esta não é uma referência para memorização.
É um guia de decisão prático para engenheiros que se preocupam com a confiabilidade da inicialização, integridade de sinal e estabilidade a longo prazo.
Sem teoria. Sem suposições apenas de laboratório.
Apenas uma visão de engenharia que você pode aplicar antes de rotear sua próxima placa.
Por que os diagramas de pinagem do ESP32 mentem
Pinos de Fixação (GPIO0, GPIO2, GPIO4, GPIO12, GPIO15)
Estes pinos definem o ESP32 configuração de inicialização ao ligar.
Se forem puxados para o nível lógico incorreto — mesmo que brevemente — o chip poderá entrar no modo de download ou falhar ao inicializar completamente.
Os padrões comuns de falha incluem:
- GPIO0 mantido baixo → inicializa no modo de download UART
- GPIO2 deixado em flutuação causa falha na inicialização em certos modos de flash
- GPIO15 com acionamento incorreto → Má configuração de inicialização SPI, que pode desabilitar o PSRAM ou impedir a inicialização normal em módulos WROVER
Essas falhas são frequentemente intermitentes., tornando-os especialmente difíceis de diagnosticar.
Falha no mundo real:
Um nó sensor alimentado por bateria recusou-se a despertar do modo de repouso profundo.
A causa raiz foi GPIO15 conectado a um monitor de LiPo, que acionou o pino alto durante a inicialização e interrompeu a configuração de boot.
Corrigir:
Usar Resistores de pull-up ≥ 10 kΩ em todos os pinos de amarração, e nunca conduza-os ativamente durante o reinício ou a energização.
Pinos do Barramento Flash / SRAM (GPIO6–11)
Em todos os módulos ESP32 — incluindo os WROOM e WROVER — Os GPIO6 a GPIO11 estão permanentemente conectados à interface SPI flash..
O uso destes pinos para E/S de uso geral permitirá corrupção de acesso à memória flash, levando a travamentos aleatórios ou um aparelho brickado.
Mesmo que o firmware pareça funcionar em um protótipo, diferenças de layout e variação do tempo de sinalização quase garante o fracasso em produção.
Regra:
GPIO6–11 não são GPIOs. Trate-os como intocáveis.
Pinos apenas de entrada (GPIO34–39)
Esses pinos Faltam drivers de saída e resistores de *pull-up* / *pull-down* internos..
Chamando
pinMode(34, INPUT_PULLUP)
compila com sucesso — mas não tem efeito.
Consequência:
As entradas de ponto flutuante em hardware real, levando a falhas silenciosas em campo, como botões que “nunca acionar”ou sensores que se comportam aleatoriamente.
Sempre forneça Resistores de pull-up externos ao utilizar GPIO34–39.
Classificação Prática de Pinos ESP32 (Testado em Campo)
Pinos de Propósito Geral Relativamente Seguros
| Alfinetes | Casos de Uso Típicos | Notas de Risco |
|---|---|---|
| 4, 5, 16–19, 21–23, 25–27, 32–33 | LEDs, relés, I²C, SPI, PWM | Estável após reinicialização e inicialização; interação mínima durante a inicialização |
Estes pinos são pinos de fixação não afivelados e não interfira com a configuração do flash ou boot, tornando-os os primeira escolha para I/O geral.
Use com Cautela
| Alfinetes | Casos de Uso Típicos | Notas de Risco |
|---|---|---|
| 0, 2, 12, 13, 14, 15 | Botões, LEDs de status, SPI secundário | Pinos sensíveis ao boot ou com multiplexação de função |
Considerações chave:
- GPIO0, GPIO2, GPIO12 e GPIO15 são pinos de ligação → Eles devem estar em níveis lógicos seguros durante a reinicialização.
- O GPIO12 pode impedir a inicialização da memória flash se for mantido em nível alto.
- O GPIO15 pode afetar a configuração de PSRAM / SPI em módulos WROVER.
- Os pinos GPIO13 e 14 costumam ser reutilizados para sinais SPI
Melhor prática:
Adicionar Resistores em série de ≥1 kΩ ou certifique-se destes pinos permanecer flutuando / inicialização segura ao ligar.
Evitar para E/S Geral
| Alfinetes | Razão |
|---|---|
| 1, 3 | Usado para UART0 (programação / logs) |
| 6–11 | Embarcado no barramento flash SPI |
| 34–39 | Entrada isolada, sem resistores de pull-up ou pull-down internos |
Regra geral:
Se um pino estiver amarrado a flash, boot, ou UART, é não de uso geral, independentemente do que o diagrama de pinagem mostre.

Figura 1: ESP32 DevKit V1 – Zonas de Risco Codificadas por Cores
3 Principais Erros de Iniciantes (e Como Corrigi-los)
Usando o GPIO0 como Saída de LED
O que acontece:
Se o cátodo do LED estiver conectado ao GND, o GPIO0 será forçado a "nível baixo" durante a inicialização, fazendo com que o ESP32 entre em modo de download, e o sketch nunca será executado.
Caso real:
Taxa de falhas do 28% em um lote de projetos de alunos.
Corrigir:
Utilize o GPIO2 em vez disso, mas adicione um resistor série de 1 kΩ para limitar a corrente de pico durante a inicialização.
I²C em GPIO2/4 em vez de 21/22
Por que falha:
O GPIO2 é utilizado para coexistência Wi-Fi/BLE; o GPIO4 é um pino de strapping. O ruído pode ser acoplado ao barramento I²C, causando NACKs.
Data:
Taxa de erros I²C: 3,21 TP3T nos GPIO21/22 contra 22,71 TP3T nos GPIO2/4 (10 mil transações, 25 °C).
Corrigir:
Utilize GPIO21 (SDA) / GPIO22 (SCL) – otimizado para baixo ruído.
analogRead() no GPIO36 com Wi-Fi Habilitado
O que acontece:
O GPIO36 (VP) compartilha o ADC com a eletrônica de RF. Com o Wi-Fi ativado, o ruído aumenta >250 mV de pico a pico.
Comprovação por osciloscópio:
A Fig. 2 mostra ruído de 410 mVpp no GPIO36 versus 42 mVpp no GPIO34 (Wi-Fi desativado).
Corrigir:
Amostra durante o sono do Wi-Fi: WiFi.mode(WIFI_OFF) durante a leitura
Ou média de 100 amostras com filtro de mediana

Figura 2: Ruído do ADC no GPIO36 – Wi-Fi Ligado vs. Desligado
Pro Insights: Além do Básico
Pinos de Toque Não São Iguais
O ESP32 possui 10 pinos de toque capacitivo (T0–T9 → GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32). No entanto:
- O T9 (GPIO32) pode falhar se o PSRAM estiver habilitado em módulos WROVER, devido a conflito de barramento compartilhado.
- T0 (GPIO4) é o mais estável, com acoplamento de RF mínimo.
Recomendação:
Para produção, use T0–T7 somente para detecção tátil confiável.
Resolução PWM vs. Compensação de Frequência
analogWrite() tem como padrão 8 bits (256 níveis) a 5 kHz, mas um controle mais suave geralmente requer maior resolução.
- Para escurecimento de 12 bits (4096 níveis):
ledcSetup(0, 1000, 12); // Canal 0, 1 kHz, 12 bits
ledcAttachPin(5, 0);
ledcWrite(0, 2048); // Razão de ciclo 50%Crítico:
Não exceda 40 kHz em canais de alta resolução — o estouro do temporizador causa falhas.
Armadilhas de Corrente de Sono Profundo
Mesmo com o esp_deep_sleep_start(), um gerenciamento inadequado de pinos pode causar vazamento de mA:
- Pinos flutuantes → ~80 µA cada
- Periféricos que permanecem energizados (ex: sensores) → 2–10 mA
Corrigir:
Antes de dormir:
gpio_pad_select_gpio(36);
gpio_pad_unselect_gpio(36); // Desabilitar ADC no VP
digitalWrite(27, LOW);
pinMode(27, OUTPUT); // Gateway de energia dos sensores
Dica:
Todos os pinos não utilizados devem ser levados a nível baixo ou configurados como saída em nível baixo para minimizar a corrente de fuga.
Matriz de Funções de Pinos do ESP32
| GPIO | E/S Digital | Análise de Dados Cinéticos | I²C | SPI | PWM | Tocar | Amarração? | Somente entrada? | Anotações |
|---|---|---|---|---|---|---|---|---|---|
| 0 | √ | _ | _ | _ | √ | T1 | √ | _ | BOOT: Pull-up necessário; evite acionamento ativo no boot |
| 1 | √ | _ | _ | _ | √ | _ | _ | _ | UART0 TX _ conflita com a gravação |
| 2 | √ | _ | _ | _ | √ | T2 | √ | _ | BOOT: Usado no modo flash QIO; adicione 1 kΩ em série se LED |
| 3 | √ | _ | _ | _ | √ | _ | _ | _ | UART0 RX _ evite para saídas |
| 4 | √ | _ | _ | _ | √ | T0 | √ | _ | Melhor Pino de Toque (T0); estável, baixo acoplamento de RF |
| 5 | √ | _ | VSPI SS | _ | √ | _ | _ | _ | Seguro e de propósito geral; evite se estiver usando flash VSPI |
| 12 | √ | _ | _ | _ | √ | T5 | √ | _ | BOOT: Deve ser baixo para a seleção de tensão de flash |
| 13 | √ | _ | _ | _ | √ | T4 | _ | _ | Seguro, mas evite perto de cristal se a E/S for de alta velocidade. |
| 14 | √ | _ | VSPI CLK | _ | √ | T6 | _ | _ | VSPI CLK _ mantenha curto se usado para SPI |
| 15 | √ | _ | VSPI MOSI | _ | √ | T3 | √ | _ | BOOT/PSRAM: Alto = JTAG/PSRAM desabilitado |
| 16 | √ | _ | _ | _ | √ | _ | _ | _ | Seguro; frequentemente usado para CS de PSRAM no WROVER |
| 17 | √ | _ | _ | _ | √ | _ | _ | _ | Seguro - mas não amplamente disseminado em muitos DevKits |
| 18 | √ | _ | VSPI SCK | _ | √ | _ | _ | _ | SPI SCK preferencial _ baixo ruído |
| 19 | √ | _ | VSPI MISO | _ | √ | _ | _ | _ | SPI MISO Preferido |
| 21 | √ | _ | _ | _ | √ | _ | _ | _ | Melhor I²C SDA – baixo EMI |
| 22 | √ | _ | _ | _ | √ | _ | _ | _ | Melhor I²C SCL |
| 23 | √ | _ | VSPI MOSI | _ | √ | _ | _ | _ | SPI MOSI Preferencial |
| 25 | √ | ADC2_8 | _ | _ | √ | _ | _ | _ | Saída DAC1; segura para controle analógico |
| 26 | √ | ADC2_9 | _ | _ | √ | _ | _ | _ | Saída DAC2 |
| 27 | √ | _ | _ | _ | √ | T7 | _ | _ | Ótimo para controle de energia (controle de MOSFET) |
| 32 | √ | _ | _ | _ | √ | T9 | _ | _ | Touch T9 – ❌ evitar se PSRAM habilitado |
| 33 | √ | _ | _ | _ | √ | T8 | _ | _ | Touch T8 – confiável |
| 34 | _ | ADC1_6 | _ | _ | _ | _ | _ | √ | APENAS ENTRADA _ sem pull-up/down, sem saída |
| 35 | _ | ADC1_7 | _ | _ | _ | _ | _ | √ | ENTRADA APENAS |
| 36 (VP) | _ | ADC1_0 | _ | _ | _ | _ | _ | √ | Entrada apenas para: ruído alto com Wi-Fi ativado |
| 37 | _ | (interno) | _ | _ | _ | _ | _ | √ | Não vinculado em WROOM - ignorar |
| 38 | _ | (interno) | _ | _ | _ | _ | _ | √ | Não vinculado _ ignorar |
| 39 (VN) | _ | ADC1_3 | _ | _ | _ | _ | _ | √ | Par com VP para ADC de diferença |
GPIO 6–11: FLASH BUS – NÃO UTILIZAR PARA ENTRADA/SAÍDA
- GPIO 34–39: APENAS ENTRADA; SEM PULL-UP/DOWN, SEM SAÍDA
- GPIO 0, 2, 4, 12, 15: ARRANQUE; VERIFICAR ESTADO AO LIGAR
Legenda:
- √= Apoiado
- Indisponível / não recomendado
- T0–T9 = Canal de toque capacitivo
Checklist Final Antes de Encaminhar
Pinos de Fixação (GPIO0, 2, 4, 12, 15):
- Verificar estados de pull-up/pull-down durante a rampa de VDD de 0V a 3.3V.
Pinos Flash (GPIO6–11):
- Assegure que nenhum sinal seja roteado nestes pinos e cubra-os com cobre de terra.
Pinos ADC (GPIO36–39 / ADC1/2):
- Mantenha pelo menos 10 mm de distância dos reguladores de comutação.
- Evite roteamento em camada superior diretamente sob o ESP32 para minimizar ruído.
Pinos Apenas de Entrada (GPIO34–39):
- Utilizar exclusivamente para sensores; nunca configurar como saídas.
Seção RF (GPIO2, 15):
- Mantenha uma distância mínima de 15 mm de cristais e caminhos de antena para reduzir interferência eletromagnética (EMI).
Considerações Finais
O ESP32 é notavelmente capaz, mas sua flexibilidade é uma faca de dois gumes. Trate os pinos não como E/S genéricos, mas como recursos especializados com modos de falha. Projete para os casos extremos e seu produto terá um desempenho confiável em campo.
Dica Profissional: Para um design e montagem de PCB robustos que aproveitem totalmente as capacidades do ESP32, considere fazer parceria com PCBCool – especialistas em fabricação e montagem de PCBs de alta qualidade, auxiliando seus protótipos e produtos a obterem sucesso desde a bancada até o campo.
Perguntas Frequentes (FAQ)
Não. Muitos pinos possuem funções especiais ou restrições de inicialização. Por exemplo, GPIO0, 2, 4, 12, 15 são pinos de strapping; GPIO6–11 estão conectados à flash SPI; GPIO34–39 são apenas de entrada.
Pinos como GPIO4, 5, 12–15, 18–19, 21–23, 25–27, 32–33 são geralmente seguros. Evite pinos usados para PSRAM ou flash, se o seu módulo possuir esses recursos.
Alguns pinos de ADC (por exemplo, GPIO36/VP) compartilham circuitos com a seção de RF. O ruído do Wi-Fi pode exceder 250 mV, causando leituras imprecisas.
Prefira T0–T7 (GPIO4, 0, 2, 15, 13, 12, 14, 27). Evite T9 (GPIO32) se o PSRAM estiver habilitado em módulos WROVER.
Antes de entrar em modo de sono profundo, desative periféricos não utilizados, configure GPIOs não utilizados para nível baixo (saída) e desabilite pinos de ADC.
Não. Os pinos GPIO34–39 não possuem resistências de *pull-up*/*pull-down* internas. Utilizar `INPUT_PULLUP` compilará, mas não terá efeito.
George é um engenheiro eletricista certificado com experiência em design de PCB, sistemas embarcados e desenvolvimento de hardware IoT. Ele trabalha com a PCBCool para transformar experiência de engenharia real em guias práticos para desenvolvedores e engenheiros.