ESP32 DevKit V1 pinout: every pin, and which ones to avoid
Iniciante
- 503componentes na bancada
- 44placas rodando agora
- 1.00xtempo real, em todas as placas
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.
| Pino | GPIO | O que ele pode fazer | Atençã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. |
| VP | 36 | ADC1_CH0. Só entrada. | Sem driver de saída e sem pull-up ou pull-down interno. |
| VN | 39 | ADC1_CH3. Só entrada. | Sem driver de saída e sem pull-up ou pull-down interno. |
| D34 | 34 | ADC1_CH6. Só entrada. | Sem driver de saída e sem pull-up ou pull-down interno. |
| D35 | 35 | ADC1_CH7. Só entrada. | Sem driver de saída e sem pull-up ou pull-down interno. |
| D32 | 32 | ADC1_CH4. PWM. Toque T9 (não modelado). | Um coringa seguro. |
| D33 | 33 | ADC1_CH5. PWM. Toque T8 (não modelado). | Um coringa seguro. |
| D25 | 25 | PWM. DAC1 e ADC2_CH8 no chip (não modelado). | O ADC2 para de funcionar enquanto o WiFi está ligado. |
| D26 | 26 | PWM. DAC2 e ADC2_CH9 no chip (não modelado). | O ADC2 para de funcionar enquanto o WiFi está ligado. |
| D27 | 27 | PWM. ADC2_CH7 e toque T7 no chip (não modelado). | O ADC2 para de funcionar enquanto o WiFi está ligado. |
| D14 | 14 | PWM. ADC2_CH6 e toque T6 no chip (não modelado). | O ADC2 para de funcionar enquanto o WiFi está ligado. |
| D12 | 12 | PWM. 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. | - |
| D13 | 13 | PWM. 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. |
| D23 | 23 | PWM. SPI MOSI (padrão). | - |
| D22 | 22 | PWM. I2C SCL (padrão). | - |
| TX0 | 1 | UART0 TX: Serial, e o chip USB-serial. | Deixe livre, ou os uploads e o monitor serial quebram. |
| RX0 | 3 | UART0 RX: Serial, e o chip USB-serial. | Deixe livre, ou os uploads e o monitor serial quebram. |
| D21 | 21 | PWM. I2C SDA (padrão). | - |
| D19 | 19 | PWM. SPI MISO (padrão). | - |
| D18 | 18 | PWM. SPI SCK (padrão). | - |
| D5 | 5 | PWM. SPI SS (padrão). | Pino de strapping: deixe sem carga na energização. |
| TX2 | 17 | PWM. 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. |
| RX2 | 16 | PWM. 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. |
| D4 | 4 | PWM. ADC2_CH0 e toque T0 no chip (não modelado). | Uma saída segura; os exemplos põem um LED aqui. |
| D0 | 0 | PWM. 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. |
| D2 | 2 | PWM. 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. |
| D15 | 15 | PWM. 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.
Continuar
De onde vêm as informações desta página
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.