Rozłożenie pinów ESP32 to jedna z jego największych zalet i jedno z najczęstszych źródeł zamieszania. Przy silnym multipleksowaniu, ścisłych zależności trybu rozruchu oraz czułym zachowaniu analogowym, poprawny wybór pinów jest ważny dla stabilnej pracy. Ten artykuł jasno organizuje każdą główną grupę pinów, abyś unikał konfliktów, zapobiegał awariom uruchamiania i projektował niezawodny sprzęt oparty na ESP32.

Zrozumienie układu pinów ESP32
ESP32 to potężny i elastyczny mikrokontroler szeroko stosowany w IoT, automatyzacji oraz urządzeniach inteligentnych. Jej zaawansowane możliwości pochodzą z silnie multipleksowanego systemu pinów, w którym wiele funkcji dzieli te same fizyczne piny. Należą do nich cyfrowe I/O, kanały ADC, pojemnościowe czujniki dotyku, magistrale komunikacyjne, piny domeny RTC oraz wewnętrzne połączenia do konfiguracji SPI flash i rozruchu. Ponieważ wiele funkcji dzieli piny, nieprawidłowe okablowanie może powodować nieudane uruchamianie, szumiące odczyty ADC lub wyłączenie peryferiów.
Układ pinów ESP32 DevKit

Płytki deweloperskie ESP32 zazwyczaj występują w wersjach 30-pinowych i 38-pinowych, obie z tymi samymi podstawowymi funkcjami, ale z drobnymi różnicami w dostępnych GPIO.
Grupy pinów na płytach deweloperskich ESP32
| Grupa | Opis |
|---|---|
| Piny zasilające | VIN (5 V), wyjście 3,3 V, GND |
| Piny sterujące | EN (reset), IO0 (tryb rozruchowy) |
| GPIO Pins | Cyfrowe I/O z multipleksowaniem |
| Analogowe piny | Kanały ADC1 i ADC2 |
| Piny komunikacyjne | SPI, I2C, UART, I2S |
| Piny tylko wejściowe | GPIO34–GPIO39 |
| Piny zarezerwowane z pamięcią błyskową | GPIO6–GPIO11 |
Typowy układ nagłówków
Lewe nagłówek
• EN, GPIO36–39, GPIO34–35
• GPIO32–33, 25–27
• VIN, GND, 3,3V
Prawy nagłówek
• GPIO0–23
• Sworznie do zapinania butów (0, 2, 5, 12, 15)
Zrozumienie układu fizycznego ułatwia unikanie błędów i efektywne planowanie okablowania.
Przegląd GPIO ESP32

GPIO ESP32 są elastyczne dzięki wewnętrznej macierzy I/O, która pozwala mapować peryferia takie jak UART, SPI, I2C i PWM niemal wszędzie. GPIO obsługuje cyfrowe wejścia/wyjścia z wbudowanymi rezystorami pull-up/down, przerwanymi przerwaniami wyzwalanymi na krawędzi oraz niezawodnym przełączaniem przy dużych prędkościach. Typowy ciągły prąd napędowy wynosi 12–16 mA (szczyty do ~20–40 mA), dlatego do silników lub przekaźników wymagane są zewnętrzne sterowniki.
Piny tylko wejściowe
Te piny nie mogą napędzać wyjścia i są idealne dla czujników oraz wejść analogowych:
| Pin | Typ | Zalecane użycie |
|---|---|---|
| GPIO34 | Tylko wejście | ADC1 / czujniki |
| GPIO35 | Tylko wejście | ADC1 |
| GPIO36 (VP) | Tylko wejście | ADC1 / Czujnik Halla |
| GPIO39 (VN) | Tylko wejście | ADC1 |
Bezpieczne piny ESP32 do użycia i piny do unikania

Nie wszystkie piny ESP32 zachowują się tak samo. Niektóre są bezpieczne, inne wpływają na tryb uruchamiania lub są powiązane z wewnętrzną pamięcią flash.
Bezpieczne przypinki (zalecane dla wszystkich użytkowników)
| GPIOs | Uwagi |
|---|---|
| 4, 13–19, 21–27, 32, 33 | Brak wpływu na rozruch, idealne dla większości urządzeń peryferyjnych |
Piny ostrzegawcze (wpływają na tryb uruchamiania)
| GPIO | Funkcja startowa | Unikaj podczas uruchamiania |
|---|---|---|
| GPIO0 | Tryb flash/Boot | Utrzymuj WYSOKIE (wejście) podczas normalnego uruchamiania |
| GPIO2 | Napięcie startowe | Musi być WYSOKI |
| GPIO5 | Opcjonalny tryb uruchamiania | Unikaj pull low |
| GPIO12 | Tryb napięcia błyskowego | Muszę pozostać NISKO |
| GPIO15 | Tryb SPI | Muszę pozostać NISKO |
Te piny są bezpieczne do użycia podczas normalnej pracy, ale zewnętrzne komponenty nie mogą ich wyciągać do nieprawidłowych poziomów logicznych podczas resetu. Szczegółowe role ich butów są wyjaśnione w Sekcji 9.
Ograniczone piny (nie używać)
| GPIO | Powód |
|---|---|
| GPIO6–11 | Podłączone do pamięci flash SPI |
Użycie tych urządzeń może zawieźć lub zawiesić ESP32.
Przypinki ADC ESP32

ESP32 integruje dwie jednostki SAR ADC o różnym zachowaniu operacyjnym:
• ADC1 — Zawsze dostępny i zalecany dla wszystkich wejść z czujników
• ADC2 — Współdzielony z podsystemem Wi-Fi i staje się niedostępny, gdy Wi-Fi jest aktywne
To jedno z kluczowych ograniczeń ESP32, które czyni ADC1 niezawodnym wyborem do pomiarów w zastosowaniach bezprzewodowych.
| Jednostka ADC | Kanały | GPIOs | Uwagi |
|---|---|---|---|
| ADC1 | ROZDZ. 0–ROZDZ. 7 | GPIO32–39 | Najlepszy wybór czujników |
| ADC2 | ROZDZ. 0–ROZDZ. 9 | 0, 2, 4, 12–15, 25–27 | Nieużyteczne podczas Wi-Fi |
Zakres napięcia i dokładność
ADC obsługują domyślny zakres wejścia 0–1,1 V, który można rozszerzyć do około 3,3 V z tłumieniem. Obie jednostki ADC są nieliniowe i korzystają z kalibracji. Wydajność analogowa może być zależna od wewnętrznej aktywności RF, więc skierowanie linii czujników z dala od anteny i dodanie prostych filtrów RC może znacznie poprawić stabilność. W projektach z obsługą Wi-Fi zawsze umieszczaj czujniki analogowe na ADC1, aby zapewnić ciągłą i bezszumową pracę.
ESP32 DAC, PWM i piny dotykowe
ESP32 wyposażony jest w wbudowane analogowe wyjścia oraz czujniki dotykowe, które upraszczają generowanie fal, ściemnianie, sterowanie silnikiem oraz interfejsy użytkownika.
Przegląd DAC 6.1

Dwa 8-bitowe kanały DAC generują prawdziwe analogowe napięcia:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
Do typowych zastosowań należą prosty dźwięk, analogowe przebiegi, zanikanie diod LED oraz napięcia polaryzacyjne. Zakres wyjściowy wynosi zazwyczaj 0–3,3 V.
PWM (LEDC)

Moduł LEDC zapewnia wysokorozdzielczy, elastyczny PWM:
• 16 kanałów
• Baza timera do 40 MHz
• Rozdzielczość do 20 bitów
• W pełni remontowalne GPIO
Wykorzystywany do ściemniania LED, sterowania silnikiem, sygnałów serwomechanizmów, tonów audio oraz ogólnej modulacji. Każde GPIO może hostować wyjście PWM za pomocą macierzy GPIO.
Piny czujnika dotykowego

10 pojemnościowych paneli dotykowych ESP32 wykrywa bliskość palców i jest przydatnych do przycisków dotykowych, suwaków oraz wyzwalaczy budzenia.
| Panel dotykowy | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
Czujniki te zawierają filtrowanie szumów i dobrze sprawdzają się w przypadku niskiej mocy podczas pobudzenia budzenia.
Piny komunikacyjne ESP32
ESP32 zawiera bogaty zestaw urządzeń peryferyjnych komunikacyjnych, z których każde może być kierowane do wielu pinów przez elastyczną macierz GPIO. Pozwala to na przypisanie interfejsów takich jak I2C, SPI i UART niemal wszędzie, co umożliwia wysoce konfigurowalne układy płyt i kombinacje peryferiów.
I2C (domyślne i niestandardowe piny)

ESP32 wyposażony jest w dwa kontrolery I2C, z pełną elastycznością wyboru pinów. Chociaż większość płyt deweloperskich używa domyślnych pinów, zarówno SDA, jak i SCL można przypisać niemal do dowolnego GPIO.
| Sygnał | Domyślny GPIO | Uwagi |
|---|---|---|
| SDA | GPIO21 | W pełni przewracalny |
| SCL | GPIO22 | W pełni przewracalny |
Dowolne dwa cyfrowe GPIO mogą pełnić rolę SDA i SCL. Obsługuje zarówno tryb standardowy (100 kHz), tryb szybki (400 kHz), jak i tryb szybki plus (1 MHz w zależności od płyty). Obsługuje wewnętrzne podciąganie na niektórych płytkach, ale zaleca się zewnętrzne rezystory 4,7 kΩ dla stabilnej komunikacji. Ta elastyczność sprawia, że ESP32 jest idealny do systemów wymagających wielu czujników lub niekonwencjonalnego trasowania pinów.
ESP32 zawiera wiele magistral SPI, z dostępnymi dla urządzeń użytkowników HSPI i VSPI. Obie obsługują mapowanie przez macierz GPIO, ale większość płyt i bibliotek stosuje następującą domyślną konfigurację VSPI, która zapobiega konfliktom z wewnętrznymi połączeniami flash:
Domyślne mapowanie VSPI
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
VSPI jest zazwyczaj preferowane dla wyświetlaczy, kart SD oraz szybkich urządzeń peryferyjnych. Chociaż piny można ponownie przemieścić, użycie domyślnych zapewnia maksymalną kompatybilność i redukuje problemy z czasem bez powtarzania ograniczeń już omówionych w wcześniejszych sekcjach.
UART (Serial)

ESP32 posiada trzy kontrolery UART z elastycznym trasowaniem, które pozwala na przeniesienie dowolnych pinów UART do niemal dowolnego GPIO.
| UART | TX Pin | Pin RX | Główny cel |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | Flashowanie, komunikaty uruchamiania, logowanie seryjne |
| UART1 | GPIO10 | GPIO9 | Dostępne dla aplikacji użytkownika |
| UART2 | GPIO17 | GPIO16 | Dostępne dla aplikacji użytkownika |
ESP32 Deep-Sleep i RTC piny
ESP32 zawiera podsystem Ultra-Low-Power (ULP) oraz dedykowaną domenę zegara czasu rzeczywistego (RTC), które pozostają zasilane nawet po wyłączeniu głównego procesora i urządzeń peryferyjnych. Ta architektura umożliwia niezwykle niskie zużycie energii, często w zakresie mikroamperzy, co czyni ESP32 odpowiednim do długoterminowych zastosowań zasilanych bateriami.
Głębokie uśpienie pozwala układowi wyłączyć główne rdzenie, większość wewnętrznych zegarów oraz radia Wi-Fi/Bluetooth, jednocześnie monitorując wybrane piny i czujniki za pomocą peryferiów RTC.

ESP32 może budzić się z głębokiego snu za pomocą kilku niezależnych czynników. Każde źródło śladu działa w domenie RTC, która została zaprojektowana tak, aby pozostawać aktywna przy minimalnym zużyciu energii.
| Typ śladu | GPIO / Uwagi |
|---|---|
| Zewnętrzne RTC GPIO | GPIO32, GPIO33, GPIO25, GPIO26, GPIO27 — wsparcie budzenia krawędziowego lub poziomu |
| Dotykowe panele pojemnościowe | T0–T9 — wykrywa bliskość palców lub dotyk podczas głębokiego snu |
| Timer Wake-Up | Timer RTC może obudzić urządzenie po zaprogramowanym interwale |
| Współprocesor ULP | (Opcjonalnie) Niestandardowy kod o niskiej porze energii może sprawdzić czujniki przed wybudzeniem głównego procesora |
Te piny należą do domeny RTC i pozostają aktywne nawet wtedy, gdy CPU i zwykłe GPIO są wyłączone. Wspierają przebudzenie poprzez wznoszące się i opadające krawędzie lub prostą detekcję poziomu. Powszechnie stosowane do budzenia w ruchu, przełączników magnetycznych oraz niskomocowych wyzwalaczy.
Funkcje uruchamiania, strapowania i pinów EN ESP32

ESP32 wykorzystuje kilka pinów zaciskowych, które określają kluczowe konfiguracje systemu podczas resetu lub uruchamiania. Te piny są próbkowane tylko podczas uruchamiania, a następnie wracają do normalnej funkcji GPIO. Zapewnienie, że nie zostaną one ustawione na nieprawidłowe poziomy podczas resetu, jest przydatne dla spójnego zachowania startupu.
Stół do zaciskania sworzni
| Pin | Rola startowa | Wymagany stan przy starcie |
|---|---|---|
| GPIO0 | Wybiera tryb bootloadera / flash | LOW = wejście w tryb błysku; HIGH = normalny start |
| GPIO2 | Definiuje wewnętrzny poziom napięcia startowego | Musi pozostać WYSOKI |
| GPIO5 | Konfiguracja rozruchu SPI | Musi pozostać WYSOKI |
| GPIO12 | Wybiera napięcie błyskowe (3,3 V / 1,8 V) | Musi pozostać NISKI dla lampy 3,3 V |
| GPIO15 | Ustawia tryb komunikacji SPI podczas uruchamiania | Musi pozostać NISKI |
Ta sekcja stanowi autorytatywne źródło dotyczące zachowań przy paskach. Wcześniejsze sekcje podsumowują jedynie skutki praktyczne; używaj tej tabeli przy przypisywaniu pinów na niestandardowych płytkach PCB lub integracji przycisków i czujników.
PIN EN (Włącz / Reset)
Pin EN (Enable) pełni funkcję wejścia resetu głównego dla ESP32.
Zachowanie pinów EN:
• Pobranie EN-LOW natychmiast resetuje układ.
• Zwolnienie go z powrotem do HIGH uruchamia wewnętrzne obwody i restartuje sekwencję startową.
• Na płytach deweloperskich (np. ESP32-DevKitC, NodeMCU-ESP32) EN jest powiązany z interfejsem USB-szeregowy, co umożliwia automatyczny reset podczas flashowania.
Piny zasilające ESP32

ESP32 jest wrażliwy na jakość zasilania, ponieważ jego radia Wi-Fi i Bluetooth pobierają krótkie, wysokoamplitudowe impulsy prądowe. Stabilne zasilanie zapewnia niezawodne uruchamianie, zmniejsza liczbę resetów awarii i zapewnia stabilną wydajność bezprzewodową.
Podsumowanie pinów mocy
| Pin | Napięcie | Użycie |
|---|---|---|
| VIN | 5 V wejściowe | Zasila pokładowy regulator (zazwyczaj AMS1117 lub ME6211), aby wygenerować napięcie 3,3 V |
| 3V3 | 3,3 V wyjście | Regulowane wyjście z pokładowego LDO; używany do zasilania zewnętrznej logiki niskoprądowej i czujników |
| GND | — | Ścieżka odniesienia elektrycznego i powrotnego dla wszystkich podsystemów |
Zalecane przykłady pinów ESP32 i okablowania
Wybór odpowiednich pinów w ESP32 jest potrzebny dla stabilnej pracy, czystego kierowania sygnału oraz unikania konfliktów z boot-strapem lub wewnętrznymi połączeniami flash. Poniższe zalecenia wskazują na najbardziej niezawodne, wolne od konfliktów piny do typowych funkcji.
Wybór przypinek
| Funkcja | Najlepsze przypinki | Uwagi |
|---|---|---|
| I2C | 21 (SDA), 22 (SCL) | Domyślna para testowana sprzętowo; Działa w większości tablic. |
| SPI | 18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS) | Te piny są czysto odwzorowane na VSPI i unikają pinów podłączonych do flasha. |
| UART | 16 (RX), 17 (TX) | Dedykowane piny UART2, bezpieczne do uruchamiania i debugowania. |
| PWM (LEDC) | 4, 16–19, 21–27, 32–33 | Zasięg o wysokiej elastyczności; PWM można skierujyć do niemal każdego GPIO. |
| ADC | 32–39 (ADC1) | Kanały ADC1 pozostają użyteczne nawet przy aktywnym Wi-Fi. |
Podsumowanie
Opanowanie układu pinów ESP32 eliminuje zgadywanie i zapobiega wielu problemom pojawiającym się w rzeczywistych buildach, od szumowych odczytów ADC po niekończące się pętle uruchamiania. Rozumiejąc piny bezpieczne, zachowanie pasowania, integralność zasilania i trasowanie głębokiego snu, możesz projektować układy stabilne, przewidywalne i gotowe do bezprzewodowego połączenia. Wykorzystaj powyższe mapy i wskazówki z pinami jako fundament dla bezproblemowych projektów ESP32.
Najczęściej zadawane pytania [FAQ]
Jak skonfigurować PlatformIO dla płytki Freenove ESP32-S3 Breakout Board?
Użyj standardowych ustawień modułu deweloperskiego ESP32-S3. W platformio.ini dodaj:
[env:esp32s3]
platform = espressif32
Board = ESP32-S3-DevKitC-1
Framework = Arduino
To odpowiada rozstawowi pinów Freenove, umożliwiając normalne kompilowanie i przesyłanie przez USB.
Ile urządzeń peryferyjnych może jednocześnie obsługiwać ESP32?
Dzięki GPIO Matrix ESP32 może jednocześnie uruchamiać wiele funkcji I²C, SPI, UART, PWM i ADC, o ile unikasz ograniczonych pinów i pozostajesz w granicach CPU oraz czasowania. Główne wąskie gardła to ADC2 podczas Wi-Fi i jakość zasilania, a nie liczba pinów.
Dlaczego mój ESP32 restartuje się po podłączaniu czujników lub modułów?
Niespodziewane resety zwykle wynikają z spadków napięcia spowodowanych przerwami Wi-Fi, silnikami lub źle regulowanymi źródłami zasilania. Przy użyciu źródła 5 V o napięciu 1 A lub wyższym, dodanie kondensatorów objętych 10–100 μF oraz izolacja szumowych obciążeń zapobiega awariom napięcia.
Czy mogę użyć pinu 3.3 V ESP32 do zasilania zewnętrznych modułów?
Tak, ale tylko dla urządzeń niskoprądowych (zazwyczaj poniżej 300–500 mA, w zależności od wbudowanego LDO). Peryferia o dużym poborze prądu, takie jak silniki, serwa i duże paski LED, muszą korzystać z osobnego zasilania, aby uniknąć resetów i przegrzewania.
Jak wybrać najlepsze piny ESP32, używając wielu peryferiów?
Priorytetowo traktuj piny bez wiązek, unikaj GPIO6–11, umieszczaj czujniki analogowe na ADC1 i używaj domyślnych pinów VSPI/I²C/UART, gdy to możliwe. To zmniejsza konflikty i zapewnia, że wszystkie urządzenia peryferyjne mogą działać razem bez problemów z przemapowaniem.