
Prispevki
ESP32 pinout
Uvod
ESP32 pinout opisuje razporeditev in funkcijo vsakega od 38 pinov na standardni DevKit v1 razvojni ploščici. Na papirju so to samo luknjice z oznakami — v praksi pa vsak pin prinaša drugačna pravila in omejitve. Napačna izbira pina je eden najpogostejših razlogov za projekte, ki se ne zaženejo, kodo, ki se ne naloži, ali senzorje, ki vračajo napačne vrednosti takoj ko se aktivira Wi-Fi.
Ta vodič razloži, kateri pini so varni za splošno rabo, kateri so rezervirani ali omejeni in kakšne so točne pin številke za vsak komunikacijski protokol. Ne potrebujete podatkovnega lista — vse, kar je treba vedeti za začetek, je zbrano tukaj.
Pregled ESP32 pinout
Standardna ESP32 DevKit v1 ploščica ima 38 pinov, razporejenih v dve vrsti po 19 na vsaki strani. GPIO pini so oštevilčeni od 0 do 39, kar navaja na misel, da je 40 pinov — a GPIO 20, 24, 28, 29, 30 in 31 ne obstajajo oziroma niso izpeljani na robnike te ploščice.
ESP32 pinout ni enoten. Vsak pin ima eno ali več alternativnih funkcij poleg základne vhod/izhod vloge: nekateri berejo analogne vrednosti, drugi generirajo PWM signal, tretji so privzeti pini za komunikacijske protokole. Šest pinov je neposredno žično vezanih na integrirani flash pomnilnik — teh se sploh ne sme dotikati z zunanjimi komponentami.
Groba slika celotnega ESP32 pinout:
- ~15 GPIO pinov varnih za splošno rabo brez omejitev
- 6 pinov zasedenih z flash pomnilnikom (GPIO 6–11) — absolutno prepovedani
- 4 pini, ki delujejo izključno kot vhodi (GPIO 34–39 brez GPIO 37/38)
- 5 strapping pinov, ki zahtevajo pozornost ob zagonu (GPIO 0, 2, 5, 12, 15)
- 2 UART0 pina za programiranje prek USB (GPIO 1, 3)

Pregled ESP32 pinout: varni GPIO pini, strapping pini, flash pini in input-only pini v eni preglednici.
Varni GPIO pini za splošno uporabo
Naslednji pini so primerni za digitalne vhode in izhode brez posebnih pogojev ob zagonu in brez konfliktov z vgrajeno periferijo:
| GPIO | Alternativna funkcija | Opomba |
|---|---|---|
| GPIO 4 | ADC2-CH0, touch T0 | Varen, pogosto privzeti pin za DS18B20 senzor |
| GPIO 13 | ADC2-CH4, HSPI MOSI, touch T4 | Varen, strapping z le nizko hitrostjo SPI boot |
| GPIO 14 | ADC2-CH6, HSPI CLK, touch T6 | Varen, a ob zagonu oddaja PWM signal |
| GPIO 16 | UART1 RX (priporočeno) | Ni dostopen na nekaterih WROVER modulih (PSRAM) |
| GPIO 17 | UART1 TX (priporočeno) | Ni dostopen na nekaterih WROVER modulih (PSRAM) |
| GPIO 18 | VSPI SCK | Privzeti SPI takt |
| GPIO 19 | VSPI MISO | Privzeti SPI vhod |
| GPIO 21 | I2C SDA | Privzeti I2C podatkovni pin |
| GPIO 22 | I2C SCL | Privzeti I2C urin pin |
| GPIO 23 | VSPI MOSI | Privzeti SPI izhod |
| GPIO 25 | DAC1, ADC2-CH8 | Pravi analogni izhod 0–3,3 V |
| GPIO 26 | DAC2, ADC2-CH9 | Pravi analogni izhod 0–3,3 V |
| GPIO 27 | ADC2-CH7, HSPI MOSI, touch T7 | Varen |
| GPIO 32 | ADC1-CH4, touch T9 | Varen, ADC1 deluje z Wi-Fi |
| GPIO 33 | ADC1-CH5, touch T8 | Varen, ADC1 deluje z Wi-Fi |
Ti pini delujejo zanesljivo v standardnih projektih z ESP32 razvojnimi ploščicami brez posebnih obhodnih rešitev.

Pini, ki se jim je treba izogniti ali jih skrbno upravljati
GPIO 6–11: absolutno prepovedani
Pini GPIO 6, 7, 8, 9, 10 in 11 so neposredno priključeni na integrirani SPI flash pomnilnik, v katerem je shranjena celotna programska oprema. Mikrokrmilnik komunicira z njim prek tega SPI vmesnika ves čas delovanja. Priključitev senzorja ali modula na katerikoli od teh pinov takoj moti komunikacijo s pomnilnikom — sistem se sesuje ali pa sploh ne zagona. Na večini razvojnih ploščic ti pini niso fizično izpeljani, točno iz tega razloga.
GPIO 34, 35, 36, 39: samo vhodi
Ti štirje pini nimajo izhodnih tranzistorjev. Delujejo izključno kot vhodi (GPI pini) in jih ni mogoče nastaviti kot izhode. Razvojno okolje pri tem ne vrne nobene napake — koda se prevede in naloži normalno, pin preprosto ne odda ničesar. GPIO 36 (Sensor VP) in GPIO 39 (Sensor VN) sta poleg tega vezana na vgrajeni Hallov senzor; če ga nameravate uporabiti, pustite ta dva pina prosta.
Prednost teh pinov je, da so odlični za branje analognih vrednosti prek ADC1 — to je del, ki deluje pravilno celo med aktivnim Wi-Fi prenosom.
Strapping pini: GPIO 0, 2, 5, 12, 15
ESP32 preveri napetostno stanje petih pinov ob vsakem zagonu in glede na to odloči, kako se zagnati. Zunanji upor ali komponenta, priključena na ta pin, lahko nehote spremenita stanje in zmotita mikrokrmilnik.
- GPIO 0 — mora biti HIGH ob zagonu za normalen zagon; če je LOW, gre ESP32 v način za nalaganje firmware-a in se program ne izvede
- GPIO 2 — strapping pin, pogosto vezan na vgrajeno LED; ko je HIGH ob zagonu, nalaganje kode prek USB ne deluje
- GPIO 12 — zagon spodleti, če je pin ob vklopu HIGH; posebej pogosta past pri HSPI projektih
- GPIO 15 — ko je LOW ob zagonu, ESP32 ne izpiše boot loga na serijski vmesnik, kar oteži razhroščevanje
- GPIO 5 — strapping pin, a v praksi redkeje povzroča težave
Priporočilo: strapping pine koristite šele, ko porabite vse varnejše alternative.
GPIO 1 in 3: UART0 za programiranje
GPIO 1 (TX) in GPIO 3 (RX) sta privzeti pini za UART0, ki ga razvojna ploščica koristi za nalaganje kode z računalnika in za Serial Monitor. Priključitev zunanjih naprav na ta pina tvega prekinitev nalaganja ali popačeno serijsko komunikacijo.

Napajalni pini in reset
Poleg GPIO pinov ESP32 pinout vključuje še napajalne priključke, ki so na DevKit v1 ploščici jasno označeni:
- 3V3 — izhod 3,3 V stabiliziranega napajanja. ESP32 deluje na 3,3 V; ta pin napaja zunanje komponente, kot so senzorji in moduli, ki sprejemajo 3,3 V logiko. Maksimalni tok: okrog 600 mA.
- GND — ozemljitev. Na ploščici sta dve GND luknji, ena na vsaki strani. Vsaka zunanja komponenta potrebuje skupno ozemljitev z ESP32.
- VIN (5V) — vhod za napajanje ploščice, ko USB ni priključen. Napetost je tipično 5 V; vgrajeni regulator jo pretvori na 3,3 V. VIN pin je mogoče uporabiti tudi kot 5 V izhod, ko je ploščica priklopljena na USB.
- EN — enable pin, vezan na gumb za ponastavitev (RST). Ko ga za kratek čas povlečete na LOW, se ESP32 ponastavi. V projektih, ki zahtevajo nadziran ponovni zagon brez fizikalnega pritiska na gumb, EN pin priključite na izhod drugega GPIO ali zunanjega krmilje.
Napajanje ploščice je podrobneje obravnavano v članku o napajanju elektronskih projektov.
ADC in DAC – analogni pini
ESP32 pinout vključuje dva analogno-digitalna pretvornika (ADC1 in ADC2) z 12-bitno ločljivostjo: vrednosti od 0 do 4095, ki ustrezajo napetosti od 0 do 3,3 V. Med ADC1 in ADC2 obstaja ključna razlika, ki je vzrok za eno najpogostejših napak v projektih z brezžično komunikacijo.
ADC1: varno z Wi-Fi
ADC1 je ločen od Wi-Fi modula in deluje zanesljivo, tudi ko je Wi-Fi aktiven. Pokriva pine GPIO 32, 33, 34, 35, 36 in 39. Za branje analognih senzorjev v projektih z brezžično komunikacijo je vedno treba segati po ADC1 pinih.
ADC2: ne deluje z aktivnim Wi-Fi
ADC2 si deli strojno opremo z Wi-Fi modulom. Ko Wi-Fi prenaša podatke, ADC2 vrača napačne ali ničelne vrednosti. Pini ADC2 vključujejo GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26 in 27. Če projekt ne bo nikoli koristil Wi-Fi, so ti pini popolnoma funkcionalni za analogno branje. V nasprotnem primeru jih za senzorje zamenjajte z ADC1 pini.
DAC: pravi analogni izhod
ESP32 ima dva 8-bitna digitalno-analogna pretvornika (DAC), ki oddajata pravo analogno napetost — brez PWM simulacije:
- GPIO 25 — DAC kanal 1
- GPIO 26 — DAC kanal 2
Vrednost od 0 do 255 se prevede v napetost od 0 do 3,3 V. Primerna sta za generiranje preprostih avdio signalov, sinusnih valov ali postopno nastavljanje napetosti brez zunanjega pretvornika. Več o analognih perifernih napravah ESP32 v celovitem tehničnem vodniku za ESP32.

Komunikacijski protokoli: SPI, I2C in UART
ESP32 podpira vse tri najpomembnejše protokole za digitalne periferije. Privzeti pini so le izhodišče — z ustrezno inicializacijo v kodi jih je mogoče preusmeriti na skoraj kateri koli prosti GPIO pin. Za poglobljeno razlago protokolov glejte vodič za komunikacijske protokole UART, SPI, I2C.
I2C
Privzeta pina za I2C sta GPIO 21 (SDA) in GPIO 22 (SCL). I2C je pogosta izbira za senzorje in zaslone OLED. Na isti dve liniji je mogoče naslavljati do 127 naprav hkrati z različnimi naslovi.
SPI
ESP32 ima tri SPI vmesnike. En je rezerviran za interni flash, na voljo sta torej VSPI in HSPI.
Privzeti pini za VSPI:
- GPIO 23 — MOSI (izhod na podrejeno napravo)
- GPIO 19 — MISO (vhod od podrejene naprave)
- GPIO 18 — SCK (taktni signal)
- GPIO 5 — CS (izbira naprave — strapping pin, pozor)
HSPI koristi GPIO 14 (SCK), GPIO 12 (MISO), GPIO 13 (MOSI) in GPIO 15 (CS). Tu so kar štirje strapping ali problematični pini, zato se za novi projekt priporoča VSPI. Več o SPI komunikaciji.
UART
ESP32 ima tri strojne UART vmesnike, ki jih je mogoče programsko preusmeriti na skoraj kateri koli GPIO:
- UART0 — GPIO 1 (TX), GPIO 3 (RX): rezerviran za Serial Monitor in nalaganje kode, ne za projekte
- UART1 — privzeto GPIO 9/10 (zasedena z flash-om), preusmerite na GPIO 16 (RX) in GPIO 17 (TX)
- UART2 — prosto, dodelite pinom po potrebi
Navodila za nastavljanje UART v Arduino IDE so v vodiču za programiranje ESP32.

PWM in kapacitivni dotikalni pini
PWM
ESP32 podpira pulzno-širinsko modulacijo (PWM) na skoraj vseh GPIO pinih — z izjemo input-only pinov (GPIO 34–39) in flash pinov (GPIO 6–11). Na voljo je 16 neodvisnih PWM kanalov, ki jih programsko dodelite kateremu koli primernem pinu. ESP32 PWM je primeren za zatemnjevanje LED diod, krmiljenje servo motorjev, nastavljanje hitrosti DC motorjev in generiranje audio frekvenc. Za razliko od Arduina Uno tukaj ni omejitve na posebej označene PWM pine.
Kapacitivni dotikalni pini
ESP32 pinout vključuje 10 kapacitivnih dotikalnih pinov (T0–T9), ki zaznajo spremembo elektrostatičnega naboja, ko se prst dotakne pina ali prevodnega predmeta, priključenega nanj. Za preprost gumb na dotik ni potrebna nobena zunanja komponenta — zadostuje kos žice ali bakren listek.
Najpogosteje dostopni touch pini in njihove oznake:
- GPIO 4 = T0
- GPIO 27 = T7
- GPIO 33 = T8
- GPIO 32 = T9
V Arduino IDE touch pin beremo z touchRead(T0), ki vrne vrednost med 0 in cca. 60–80. Vrednost pod 30 po navadi pomeni dotik. Zaznava je občutljiva na elektromagnetne motnje v bližini napajanja ali motorjev.
Kapacitivni pini so med zanimivejšimi funkcijami ESP32 pinout, ker omogočajo dotikalne vmesnike brez dodatne strojne opreme in brez potrebe po pull-up uporu ali zunanjem vezju. Zaščita: če kapacitivni dotik ne deluje začno, preverite, ali pin ni hkrati nastavljen kot analogni vhod ali drug alternativni način delovanja.
Najpogostejše napake pri vezavi ESP32
Napake pri delu z ESP32 pinout se ponavljajo. Tukaj je seznam tipičnih primerov in rešitve:
- Flash pini (GPIO 6–11). Priključitev senzorja ali modula na GPIO 6–11 je najpogostejši vzrok za ESP32, ki se ne zažene. Ploščica se obnovi, ko pin odklopite in ploščico ponastavite.
- ADC2 z Wi-Fi. Senzor na ADC2 pinu vrača navidezno normalne vrednosti, ko je Wi-Fi izklopljen, in nenadoma napačne, ko se poveže. Rešitev: premaknite senzor na ADC1 pin (GPIO 32–39). To je ena tistih napak, ki porabi ure razhroščevanja.
- Input-only pin kot izhod. GPIO 34–39 nastavite kot izhod in ne prejmete nobene napake — LED preprosto ne sveti. Razvojno okolje pri tem molči. Zapomni si: GPIO 34, 35, 36, 39 = samo vhod.
- Strapping pin in zunanji upor. Pull-up ali pull-down upor na GPIO 0, 2 ali 12 ob zagonu povzroči, da se ploščica ne zažene ali ne sprejme nove kode. Rešitev: preverite stanje pina ob zagonu ali izberite alternativni pin.
- UART1 na GPIO 9/10. UART1 privzeto kliče pina GPIO 9 in 10 — oba sta zasedena z flash-om. Rezultat je sesutje. Vedno preusmerite UART1 na GPIO 16 (RX) in GPIO 17 (TX).
- GPIO 1/3 v projektu. Priključitev česar koli na TX/RX pina med delovanjem pomeni, da Serial Monitor preneha delovati ali da nalaganje kode ne uspe.
Za primerjavo ESP32 z drugimi ploščicami glede pinov in periferije glejte primerjavo ESP32 in Arduino Uno. Če pa vas zanima, kako se ESP32 pinout razlikuje od novejšega čipa, preberite vodič o ESP32-S3 pinout.

Zaključek
ESP32 pinout ponuja izjemno fleksibilnost — 16 neodvisnih PWM kanalov, dva DAC izhoda, deset kapacitivnih dotikalnih pinov in troje strojnih UART vmesnikov na enem čipu. A ta pestrost pride z jasnimi pravili: šest pinov za flash, ki se jih nikoli ne sme dotikati, štirje pini brez izhodne funkcije in pet strapping pinov, ki odločajo o načinu zagona.
Praktično izhodišče: začnite z varnimi pini (GPIO 4, 13, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33), dodajte ADC1 pine (GPIO 32–39) za analogne meritve z Wi-Fi in komunicacijske protokole povežite na privzete pine. S tem boste preskočili večino klasičnih zapletov z ESP32 pinout.
ESP32 razvojne ploščice, module in dodatno opremo najdete v naši ponudbi ESP32 na 3DSVET.eu. Za reference si preberite tudi uradno dokumentacijo Espressif za ESP32.

