The ESP32 30 Pin is a versatile microcontroller designed for a wide range of applications, particularly in the Internet of Things (IoT) domain. It features built-in Wi-Fi and Bluetooth capabilities, making it an excellent choice for wireless communication projects. With 30 GPIO pins, the ESP32 offers extensive input/output functionality, supporting digital and analog signals, PWM, I2C, SPI, UART, and more. Its powerful dual-core processor and low-power consumption make it suitable for both hobbyist and professional use.
Specification | Value |
---|---|
Microcontroller | Tensilica Xtensa LX6 (dual-core) |
Clock Speed | Up to 240 MHz |
Flash Memory | 4 MB (varies by model) |
SRAM | 520 KB |
Wi-Fi | 802.11 b/g/n |
Bluetooth | v4.2 BR/EDR and BLE |
Operating Voltage | 3.3V |
Input Voltage Range | 5V (via USB) or 7-12V (via VIN) |
GPIO Pins | 30 |
ADC Channels | 18 |
DAC Channels | 2 |
Communication Protocols | UART, SPI, I2C, I2S, CAN, PWM |
Power Consumption | Ultra-low power (varies by mode) |
The ESP32 30 Pin microcontroller has 30 GPIO pins, each with specific functions. Below is a summary of the pin configuration:
Pin Number | Pin Name | Functionality |
---|---|---|
1 | EN | Enable pin (active high) |
2 | IO1 | GPIO1, UART TX |
3 | IO3 | GPIO3, UART RX |
4 | IO4 | GPIO4, PWM, ADC |
5 | IO5 | GPIO5, PWM, ADC |
6-11 | IO6-IO11 | GPIO, SPI Flash (reserved) |
12 | IO12 | GPIO12, ADC, Touch Sensor |
13 | IO13 | GPIO13, ADC, Touch Sensor |
14 | IO14 | GPIO14, PWM, ADC |
15 | IO15 | GPIO15, PWM, ADC |
16 | IO16 | GPIO16, UART, ADC |
17 | IO17 | GPIO17, UART, ADC |
18 | IO18 | GPIO18, SPI SCK |
19 | IO19 | GPIO19, SPI MISO |
21 | IO21 | GPIO21, I2C SDA |
22 | IO22 | GPIO22, I2C SCL |
23 | IO23 | GPIO23, SPI MOSI |
25 | IO25 | GPIO25, DAC1, ADC |
26 | IO26 | GPIO26, DAC2, ADC |
27 | IO27 | GPIO27, ADC, Touch Sensor |
32 | IO32 | GPIO32, ADC, Touch Sensor |
33 | IO33 | GPIO33, ADC, Touch Sensor |
34-39 | IO34-IO39 | GPIO, ADC (input only) |
GND | GND | Ground |
VIN | VIN | Power input (7-12V) |
Powering the ESP32:
Connecting Peripherals:
Programming the ESP32:
The following example demonstrates how to blink an LED connected to GPIO2:
// Define the GPIO pin for the LED
const int ledPin = 2;
void setup() {
// Set the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(ledPin, HIGH);
delay(1000); // Wait for 1 second
// Turn the LED off
digitalWrite(ledPin, LOW);
delay(1000); // Wait for 1 second
}
ESP32 Not Detected by Computer:
Upload Fails with "Failed to Connect" Error:
Wi-Fi Connection Issues:
Random Resets or Instability:
Q: Can I use the ESP32 with 5V sensors?
A: Yes, but you will need a level shifter to convert 5V signals to 3.3V.
Q: How do I reset the ESP32?
A: Press the "EN" button on the board to reset the microcontroller.
Q: Can I use the ESP32 for battery-powered projects?
A: Yes, the ESP32 supports low-power modes, making it suitable for battery-powered applications.
Q: What is the maximum current the GPIO pins can source/sink?
A: Each GPIO pin can source/sink up to 12mA safely.
This concludes the documentation for the ESP32 30 Pin microcontroller.