📐 Diagrama de Pinos (30 pinos)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
                         ┌─────────────┐
                         │     USB     │
                         └──────┬──────┘
                                │
     ┌──────────────────────────┴──────────────────────┐
     │                                                 │
     │              ESP32 DEVKIT V1                    │
     │              (30 PIN VERSION)                   │
     │                                                 │
  EN ├─○  [EN]                              [VP]  36 ○─┤ GPIO36 (ADC1_0) *INPUT ONLY*
 VP  ├─○  [VP]  36                          [VN]  39 ○─┤ GPIO39 (ADC1_3) *INPUT ONLY*
 VN  ├─○  [VN]  39                          [34]  34 ○─┤ GPIO34 (ADC1_6) *INPUT ONLY*
 D34 ├─○  [34]  34                          [35]  35 ○─┤ GPIO35 (ADC1_7) *INPUT ONLY*
 D32 ├─○  [32]  32  (ADC1_4, TOUCH9)        [32]  32 ○─┤ GPIO32 (ADC1_4, TOUCH9)
 D33 ├─○  [33]  33  (ADC1_5, TOUCH8)        [33]  33 ○─┤ GPIO33 (ADC1_5, TOUCH8)
 D25 ├─○  [25]  25  (ADC2_8, DAC1)          [25]  25 ○─┤ GPIO25 (ADC2_8, DAC1)
 D26 ├─○  [26]  26  (ADC2_9, DAC2)          [26]  26 ○─┤ GPIO26 (ADC2_9, DAC2)
 D27 ├─○  [27]  27  (ADC2_7, TOUCH7)        [27]  27 ○─┤ GPIO27 (ADC2_7, TOUCH7)
 D14 ├─○  [14]  14  (ADC2_6, TOUCH6)        [14]  14 ○─┤ GPIO14 (ADC2_6, TOUCH6)
 D12 ├─○  [12]  12 *(ADC2_5, TOUCH5)        [12]  12 ○─┤ GPIO12 (ADC2_5, TOUCH5) *
 GND ├─○  [GND]                             [GND]    ○─┤
 D13 ├─○  [13]  13  (ADC2_4, TOUCH4)        [13]  13 ○─┤ GPIO13 (ADC2_4, TOUCH4)
  SD2├─○  [SD2]  9 *                        [SD2]  9 ○─┤ GPIO9 (Flash) *
  SD3├─○  [SD3] 10 *                        [SD3] 10 ○─┤ GPIO10 (Flash) *
 CMD ├─○  [CMD] 11 *                        [CMD] 11 ○─┤ GPIO11 (Flash) *
  5V ├─○  [5V]                              [5V]     ○─┤
 GND ├─○  [GND]                             [GND]    ○─┤
     │                                                 │
LEFT SIDE:                                    RIGHT SIDE:
  3V3├─○  [3V3]                             [23]  23 ○─┤ GPIO23 (SPI MOSI)
  EN ├─○  [EN]                              [22]  22 ○─┤ GPIO22 (I2C SCL)
  VP ├─○  [VP]  36                          [TX0]  1 ○─┤ GPIO1  (UART0 TX)
  VN ├─○  [VN]  39                          [RX0]  3 ○─┤ GPIO3  (UART0 RX)
 D34 ├─○  [34]  34                          [21]  21 ○─┤ GPIO21 (I2C SDA)
 D35 ├─○  [35]  35                          [19]  19 ○─┤ GPIO19 (SPI MISO)
 D32 ├─○  [32]  32                          [18]  18 ○─┤ GPIO18 (SPI SCK)
 D33 ├─○  [33]  33                          [5]    5 ○─┤ GPIO5  (SPI SS)
 D25 ├─○  [25]  25                          [17]  17 ○─┤ GPIO17 (UART2 TX)
 D26 ├─○  [26]  26                          [16]  16 ○─┤ GPIO16 (UART2 RX)
 D27 ├─○  [27]  27                          [4]    4 ○─┤ GPIO4  (ADC2_0)
 D14 ├─○  [14]  14                          [0]    0 ○─┤ GPIO0 * (BOOT)
 D12 ├─○  [12]  12 *                        [2]    2 ○─┤ GPIO2 * (LED)
 D13 ├─○  [13]  13                          [15]  15 ○─┤ GPIO15 * (ADC2_3)
 GND ├─○  [GND]                             [GND]    ○─┤
  5V ├─○  [5V]                              [3V3]    ○─┤
     │                                                 │
     └─────────────────────────────────────────────────┘

* = Strapping pin (cuidado no boot!)

📊 Tabela de Pinos - Lado Esquerdo

Pino GPIO ADC Touch DAC Função Especial Notas
EN - RESET Pull-up HIGH para operar
VP 36 ADC1_0 - INPUT ONLY
VN 39 ADC1_3 - INPUT ONLY
34 34 ADC1_6 - INPUT ONLY
35 35 ADC1_7 - INPUT ONLY
32 32 ADC1_4 TOUCH9 - OK
33 33 ADC1_5 TOUCH8 - OK
25 25 ADC2_8 DAC1 - OK
26 26 ADC2_9 DAC2 - OK
27 27 ADC2_7 TOUCH7 - OK
14 14 ADC2_6 TOUCH6 - OK
12 12 ADC2_5 TOUCH5 MTDI ⚠️ Boot config
13 13 ADC2_4 TOUCH4 - OK

📊 Tabela de Pinos - Lado Direito

Pino GPIO ADC Touch Função Especial Notas
23 23 SPI MOSI OK
22 22 I2C SCL OK
TX0 1 UART0 TX USB Serial
RX0 3 UART0 RX USB Serial
21 21 I2C SDA OK
19 19 SPI MISO OK
18 18 SPI SCK OK
5 5 SPI SS OK
17 17 UART2 TX OK
16 16 UART2 RX OK
4 4 ADC2_0 TOUCH0 - OK
0 0 ADC2_1 TOUCH1 BOOT ⚠️ Pull-up no boot
2 2 ADC2_2 TOUCH2 LED ⚠️ Boot config
15 15 ADC2_3 TOUCH3 - ⚠️ Boot config

🔌 Interfaces de Comunicação

UART

I2C (Wire)

SPI (VSPI)

SPI (HSPI) - Alternativo


⚡ Especificações Elétricas

Parâmetro Valor Notas
Tensão operação 3.3V NÃO use 5V nos GPIOs!
Corrente por pino 40mA 12mA recomendado
Tensão entrada 0-3.3V 3.6V absoluto máximo
PWM Canais 16 LEDC (8-bit padrão)
ADC1 Canais 8 12-bit (0-4095)
ADC2 Canais 10 Não use com WiFi!
DAC Canais 2 GPIO25, GPIO26 (8-bit)
Touch Pins 10 Capacitive sensing

⚠️ Pinos Strapping (Boot Configuration)

CUIDADO: Estes pinos afetam o modo de boot!

GPIO Estado no Boot Função Recomendação
GPIO0 HIGH Boot normal Pull-up externo! LOW = flash mode
GPIO2 LOW Boot normal Evite pull-up
GPIO12 LOW 3.3V flash Mantenha LOW! HIGH = 1.8V flash
GPIO15 HIGH SDIO Pull-up no boot
GPIO5 - Boot mensagem Não crítico

Regra de ouro: Evite conectar botões/leds nestes pinos sem entender o boot!


🚫 Pinos a Evitar

GPIO Razão
GPIO6-11 Conectados à flash SPI interna! NUNCA USE!
GPIO1, 3 UART0 (USB Serial) - conflito ao fazer upload
GPIO34-39 INPUT ONLY - sem pull-up/pull-down interno
ADC2 (todos) Não funcionam quando WiFi está ativo

📝 Pinos Recomendados para Uso Geral

✅ Seguros para GPIO:

✅ Seguros para ADC (sem WiFi):


💡 Exemplos de Uso

GPIO Digital

1
2
3
4
5
6
7
8
9
10
11
12
const int LED_PIN = 2;  // GPIO2 (LED builtin)

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
  delay(1000);
}

ADC (Analógico)

1
2
3
4
5
6
7
8
9
10
11
12
const int ADC_PIN = 34;  // GPIO34 (ADC1_6)

void setup() {
  Serial.begin(115200);
  analogSetAttenuation(ADC_11db);  // 0-3.3V range
}

void loop() {
  int value = analogRead(ADC_PIN);  // 0-4095
  Serial.println(value);
  delay(100);
}

PWM (LEDC)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const int PWM_PIN = 25;
const int PWM_CHANNEL = 0;
const int PWM_FREQ = 5000;
const int PWM_RESOLUTION = 8;

void setup() {
  ledcSetup(PWM_CHANNEL, PWM_FREQ, PWM_RESOLUTION);
  ledcAttachPin(PWM_PIN, PWM_CHANNEL);
}

void loop() {
  for(int duty = 0; duty <= 255; duty++) {
    ledcWrite(PWM_CHANNEL, duty);
    delay(10);
  }
}

Touch Sensor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const int TOUCH_PIN = 4;  // GPIO4 (TOUCH0)
const int THRESHOLD = 40;

void setup() {
  Serial.begin(115200);
}

void loop() {
  int touchValue = touchRead(TOUCH_PIN);
  
  if(touchValue < THRESHOLD) {
    Serial.println("Touched!");
  }
  
  delay(100);
}

🔗 Referências


Voltar: 📍 Pin Diagrams ESP32