Aprender

ESP32 DevKit V1 pinout: every pin, and which ones to avoid

Iniciante

Ou veja todas as aulas.

  • 503componentes na bancada
  • 44placas rodando agora
  • 1.00xtempo real, em todas as placas
ESP32 DevKit V1: um potenciômetro no D32live0.000 s 0.00x
Clique para abrir no editor
Um potenciômetro de 10 k no D32 (canal 4 do ADC1) define o brilho de um LED no D4, com a leitura impressa.

Esta é a pinagem do ESP32 DevKit V1 de 30 pinos, a placa DOIT com um módulo ESP32-WROOM-32 que a maioria dos kits traz. Cada furo dos dois conectores está na tabela abaixo com seu número de GPIO, o que ele pode fazer e no que prestar atenção. Depois da tabela vêm os pinos de alimentação, os pinos de strapping que decidem se a placa inicia, os pinos só de entrada, os pinos que o USB e a flash ocupam, e uma lista de qual pino usar para quê.

O circuito acima é essa placa rodando no Mokxi: um potenciômetro no D32, que é o canal 4 do ADC1, escurece um LED no D4 e imprime a leitura bruta. O Mokxi modela a placa de 30 pinos, não a DevKitC de 38, e os números desta página vêm do mesmo modelo que o simulador roda. Onde o simulador faz menos que o chip, a página avisa na linha.

Cada pino do conector

A serigrafia chama o GPIO n de "Dn", então D23 é o GPIO 23 e digitalWrite(23, HIGH) o aciona. Alguns furos têm o nome da função: VP e VN são os GPIO 36 e 39, TX0 e RX0 são os GPIO 1 e 3, e TX2 e RX2 são os GPIO 17 e 16. A tabela desce pelo conector esquerdo de EN a VIN, depois pelo direito de D23 a 3V3, com o conector USB embaixo.

A ordem dos furos é a leitura do Mokxi da placa DOIT, e os clones diferem nos últimos. Muitas placas de 30 pinos não têm o furo D0 e põem um segundo GND à direita, e em muitas o conector esquerdo termina em D12, D13, GND, VIN. Vá pelas letras impressas na sua placa. Os números de GPIO, que são os que seu código usa, não mudam.

Toque, o DAC e o ADC2 estão na tabela porque o chip os tem e os tutoriais os usam. O Mokxi não modela nenhum dos três, e cada linha avisa.

ESP32 DevKit V1 (30 pinos): o conector esquerdo de cima para baixo, depois o direito
PinoGPIOO que ele pode fazerAtenção a
EN-Habilitação do chip, que é o reset. Em nível baixo mantém o chip em reset; o botão EN faz isso.Not a GPIO.
VP36ADC1_CH0. Só entrada.Sem driver de saída e sem pull-up ou pull-down interno.
VN39ADC1_CH3. Só entrada.Sem driver de saída e sem pull-up ou pull-down interno.
D3434ADC1_CH6. Só entrada.Sem driver de saída e sem pull-up ou pull-down interno.
D3535ADC1_CH7. Só entrada.Sem driver de saída e sem pull-up ou pull-down interno.
D3232ADC1_CH4. PWM. Toque T9 (não modelado).Um coringa seguro.
D3333ADC1_CH5. PWM. Toque T8 (não modelado).Um coringa seguro.
D2525PWM. DAC1 e ADC2_CH8 no chip (não modelado).O ADC2 para de funcionar enquanto o WiFi está ligado.
D2626PWM. DAC2 e ADC2_CH9 no chip (não modelado).O ADC2 para de funcionar enquanto o WiFi está ligado.
D2727PWM. ADC2_CH7 e toque T7 no chip (não modelado).O ADC2 para de funcionar enquanto o WiFi está ligado.
D1414PWM. ADC2_CH6 e toque T6 no chip (não modelado).O ADC2 para de funcionar enquanto o WiFi está ligado.
D1212PWM. ADC2_CH5 e toque T5 no chip (não modelado).Pino de strapping: nível alto no reset e a placa não inicia.
GND-Ground.-
D1313PWM. ADC2_CH4 e toque T4 no chip (não modelado).O ADC2 para de funcionar enquanto o WiFi está ligado.
VIN-O trilho de 5 V do USB. Ponha 5 V aqui para rodar a placa sem cabo.Not a GPIO.
D2323PWM. SPI MOSI (padrão).-
D2222PWM. I2C SCL (padrão).-
TX01UART0 TX: Serial, e o chip USB-serial.Deixe livre, ou os uploads e o monitor serial quebram.
RX03UART0 RX: Serial, e o chip USB-serial.Deixe livre, ou os uploads e o monitor serial quebram.
D2121PWM. I2C SDA (padrão).-
D1919PWM. SPI MISO (padrão).-
D1818PWM. SPI SCK (padrão).-
D55PWM. SPI SS (padrão).Pino de strapping: deixe sem carga na energização.
TX217PWM. UART2 TX nos tutoriais do core 2.x: Serial2.begin(9600, SERIAL_8N1, 16, 17).O core 3.x põe o Serial2 em 4 e 25 se os pinos não forem informados.
RX216PWM. UART2 RX nos tutoriais do core 2.x: Serial2.begin(9600, SERIAL_8N1, 16, 17).O core 3.x põe o Serial2 em 4 e 25 se os pinos não forem informados.
D44PWM. ADC2_CH0 e toque T0 no chip (não modelado).Uma saída segura; os exemplos põem um LED aqui.
D00PWM. ADC2_CH1 e toque T1 no chip (não modelado). O botão BOOT.Pino de strapping: nível baixo no reset espera um upload.
D22PWM. ADC2_CH2 e toque T2 no chip (não modelado). O LED azul, aceso em HIGH.Pino de strapping: precisa estar em nível baixo ou flutuando para fazer upload.
D1515PWM. ADC2_CH3 e toque T3 no chip (não modelado).Pino de strapping: nível baixo no reset silencia as mensagens de boot.
3V3-A saída de 3,3 V do regulador.Not a GPIO.

Pinos de alimentação e seus limites

VIN é o trilho de 5 V do conector USB. Sem cabo, você pode alimentar a placa pondo 5 V no VIN, e o regulador faz 3,3 V a partir dele. 3V3 é a saída desse regulador: alimenta o ESP32 e o que você pendurar nele, então um sensor serve e um servo ou um motor não. GND é o terra.

Todo GPIO é de 3,3 V e nenhum tolera 5 V. A saída de um sensor de 5 V precisa de um divisor ou de um conversor de nível antes de chegar a um pino. O datasheet da Espressif dá a um pino cerca de 40 mA quando ele fornece corrente na configuração de drive mais forte. Trate isso como teto, não como meta, e mantenha um LED em 10 a 20 mA com o resistor.

Pinos de strapping: os que impedem uma placa de iniciar

Cinco pinos são lidos pelo chip no instante em que ele sai do reset, e o que eles leem decide como ele inicia: GPIO 0, 2, 5, 12 e 15. Quando seu sketch está rodando, eles são pinos comuns, então o problema só aparece quando algo ligado a um deles o segura do jeito errado na energização.

O GPIO 0 é o botão BOOT. Mantido em nível baixo no reset, o chip espera um novo programa em vez de rodar o seu, então um botão ou módulo que puxa o D0 para baixo parece uma placa que nunca inicia. O GPIO 2 precisa estar em nível baixo ou flutuando para fazer upload. O GPIO 12 é o que mais pega: nível alto no reset diz ao chip que a flash dele roda a 1,8 V, a flash de um WROOM-32 precisa de 3,3 V, e a placa não inicia até que o que segura o 12 em nível alto o solte. O GPIO 15 em nível baixo no reset silencia as mensagens de boot na porta serial, o que é inofensivo mas confuso.

O Mokxi não modela o strapping. A placa simulada inicia o que estiver nesses pinos, então um circuito que roda aqui ainda pode se recusar a iniciar numa bancada se puxar o D12 para cima ou o D0 para baixo. Dê a qualquer coisa com pull-up ou pull-down próprio um dos pinos seguros.

Pinos só de entrada: GPIO 34, 35, 36 e 39

Os GPIO 34 a 39 têm um buffer de entrada e mais nada: sem driver de saída e sem pull-up ou pull-down interno. Quatro deles estão neste conector: D34, D35, VP e VN. São boas entradas analógicas, todas no ADC1, e não podem ser saídas de jeito nenhum. pinMode(34, OUTPUT) não faz nada no chip, e INPUT_PULLUP também não, então um botão em um deles precisa de um resistor de 10 k próprio.

O Mokxi recusa uma saída nesses pinos como o chip faz, conta cada tentativa e põe uma pequena marca âmbar na placa, para que um sketch não acredite que está acionando um deles.

O LED da placa e os botões BOOT e EN

O LED azul está no GPIO 2 e acende quando o pino está em HIGH. LED_BUILTIN é 2. Como o GPIO 2 é um pino de strapping, se o LED brilha enquanto a placa inicia varia de placa para placa; ele se acerta assim que o pinMode roda. O outro LED na maioria das placas é a luz de energia e não está em nenhum pino.

O BOOT puxa o GPIO 0 para nível baixo enquanto você o segura, por isso o D0 lê LOW quando ele é apertado. O EN é o botão de reset. No Mokxi você pode clicar em qualquer um deles na placa.

Pinos que o USB e a flash usam

TX0 e RX0 são a UART0, ligada ao chip USB-serial da placa, e carregam todo Serial.print e todo upload. Ligue algo neles e os uploads falham ou o monitor serial se enche de lixo, então deixe-os livres. No Mokxi, Serial chega direto ao monitor serial, então o simulador não mostra esse conflito; uma bancada mostra.

Os GPIO 6 a 11 são a flash SPI de onde o programa roda, e não estão neste conector de jeito nenhum, o que é bom. A DevKitC de 38 pinos os expõe, como D0 a D3, CMD e CLK, e são os pinos que nunca se deve usar. TX2 e RX2 são onde a UART2 vai na maioria dos tutoriais. O arduino-esp32 3.x mudou os pinos padrão do Serial2 para 4 e 25, então nomeie-os: Serial2.begin(9600, SERIAL_8N1, 16, 17);. O Mokxi modela UART1 e UART2 bit a bit nos pinos que begin() der a elas, então um GPS ou uma segunda placa em 16 e 17 as ouve, aqui como na bancada.

Analógico, PWM, I2C e SPI

Só o ADC1 é seguro num projeto com WiFi: num ESP32 de verdade o rádio usa o ADC2, e analogRead num pino do ADC2 falha enquanto o WiFi está ligado. O ADC1 está em seis furos aqui: VP, VN, D32, D33, D34 e D35. O Mokxi modela só o ADC1, doze bits, com a curva de um componente real em 11 dB padrão: um potenciômetro ligado a 3,3 V chega a 4095 em cerca de 3,1 V, um pouco antes do fim do curso, e lê cerca de 1890 no meio.

PWM é o LEDC, e qualquer pino com driver de saída pode tê-lo: analogWrite liga um canal na primeira vez que é chamado. O Mokxi modela os oito canais de alta velocidade, oito bits a 1 kHz por padrão; o chip tem dezesseis no total. Wire.begin() usa o D21 para SDA e o D22 para SCL, e o SPI usa D18, D19, D23 e D5 para SCK, MISO, MOSI e SS. No Mokxi os dois barramentos rodam em software nesses pinos, porque os controladores I2C e SPI do chip não são modelados.

Perguntas

Qual pino do ESP32 devo usar para um botão?

D4, D13, D14, D18, D19, D21 a D23, D25 a D27, D32 ou D33, com `INPUT_PULLUP` e o botão ao terra. D34, D35, VP e VN só funcionam com um pull-up de 10 k seu, e D0, D2, D12 e D15 são pinos de strapping.

Qual pino do ESP32 devo usar para um sensor analógico?

Um pino do ADC1: D32, D33, D34, D35, VP ou VN. Eles continuam funcionando com o WiFi ligado. Mantenha o sinal abaixo de 3,3 V; o fundo de escala nominal de 3,9 V do atenuador é uma faixa de medição, não uma entrada segura.

Quais pinos são I2C no ESP32 DevKit V1?

SDA é o D21 e SCL é o D22, os pinos que `Wire.begin()` usa. `Wire.begin(sda, scl)` move o barramento para quaisquer outros dois pinos de saída.

Quais pinos eu nunca devo usar no ESP32?

GPIO 6 a 11, a flash, que esta placa não expõe. TX0 e RX0 se você quer que uploads e o monitor serial funcionem. E o D12 para qualquer coisa que fique em nível alto na energização.

Esta é a pinagem de 30 pinos ou de 38?

A DOIT DevKit V1 de 30 pinos. A DevKitC de 38 pinos da Espressif é o mesmo chip com os mesmos números de GPIO em lugares diferentes, uma polegada inteira entre as fileiras, e os seis pinos da flash expostos. Ela tem sua própria placa no Mokxi.

O ESP32 DevKit V1 tem DAC e pinos de toque?

O chip tem dois DACs de 8 bits, no D25 e no D26, e dez entradas de toque. O Mokxi não modela nenhum dos dois, então `dacWrite` e `touchRead` não vão fazer nada útil aqui.

Monte isto de verdade

Abra o editor, mude um valor e veja o número mudar junto. Nada para instalar, e não precisa de conta.