Il pinout dell'ESP32 è uno dei suoi punti di forza più grandi e una delle fonti più comuni di confusione. Con un pesante multiplexing, dipendenze rigide dalla modalità di avvio e un comportamento analogico sensibile, la corretta selezione dei pin è importante per un funzionamento stabile. Questo articolo organizza chiaramente ogni gruppo principale di pin in modo che tu possa evitare conflitti, prevenire guasti all'avvio e progettare hardware affidabile basato su ESP32.

Comprendere il pinout ESP32
L'ESP32 è un microcontrollore potente e flessibile, ampiamente utilizzato in IoT, automazione e dispositivi smart. Le sue capacità avanzate derivano da un sistema di pinout altamente multiplexato, in cui molte funzioni condividono gli stessi pin fisici. Questi includono I/O digitale, canali ADC, sensori touch capacitivi, bus di comunicazione, pin RTC e connessioni interne per la configurazione flash e avvio SPI. Poiché molte funzioni condividono i pin, un cablaggio scorretto può causare avvii falliti, letture rumorose dell'ADC o disattivazione delle periferiche.
Layout dei pin ESP32 DevKit

Le schede di sviluppo ESP32 sono tipicamente disponibili in versioni a 30 e 38 pin, entrambe con le stesse funzioni di base, ma con differenze minori nelle GPIO disponibili.
Gruppi di pin sulle schede di sviluppo ESP32
| Gruppo | Descrizione |
|---|---|
| Power Piers | VIN (5 V), uscita 3,3 V, GND |
| Piste di controllo | EN (reset), IO0 (modalità di avvio) |
| Pin GPIO | I/O digitale con multiplexing |
| Pin analogici | Canali ADC1 e ADC2 |
| Pin di comunicazione | SPI, I2C, UART, I2S |
| Pin solo di input | GPIO34–GPIO39 |
| Pin Riservati al Flash | GPIO6–GPIO11 |
Disposizione comune delle intestazioni
Colpo di testa sinistro
• EN, GPIO36–39, GPIO34–35
• GPIO32–33, 25–27
• VIN, GND, 3,3V
Colpo di testa destro
• GPIO0–23
• Perni per strappo del stivale (0, 2, 5, 12, 15)
Comprendere la disposizione fisica rende più facile evitare errori e pianificare l'impianto elettrico in modo efficiente.
Panoramica GPIO ESP32

Le GPIO ESP32 sono flessibili grazie alla matrice interna di I/O, che permette di mappare periferiche come UART, SPI, I2C e PWM quasi ovunque. Le GPIO supportano input/output digitale con resistori pull-up/down integrati, interruzioni triggerate dai bordi e commutazioni affidabili ad alte velocità. La corrente tipica di trasmissione continua è di 12–16 mA (picchi fino a ~20–40 mA), quindi sono necessari driver esterni per motori o relè.
Pin solo di ingresso
Questi pin non possono guidare l'uscita e sono ideali per sensori e ingressi analogici:
| Pin | Tipo | Uso consigliato |
|---|---|---|
| GPIO34 | Solo input | ADC1 / sensori |
| GPIO35 | Solo input | ADC1 |
| GPIO36 (VP) | Solo input | ADC1 / Sensore a Hall |
| GPIO39 (VN) | Solo input | ADC1 |
Pin ESP32 sicuri da usare e perni da evitare

Non tutti i pin ESP32 si comportano allo stesso modo. Alcuni sono sicuri, mentre altri influenzano la modalità di avvio o sono legati alla memoria flash interna.
Pin sicuri (Consigliati a tutti gli utenti)
| GPIO | Note |
|---|---|
| 4, 13–19, 21–27, 32, 33 | Nessun impatto di avvio, ideale per la maggior parte delle periferiche |
Pin di Attenzione (Influenza la modalità di avvio)
| GPIO | Funzione di avvio | Evitare durante l'avvio |
|---|---|---|
| GPIO0 | Modalità flash/Boot | Tieni ALTO (input) durante l'avvio normale |
| GPIO2 | Tensione di avvio | Deve essere ALTO |
| GPIO5 | Modalità di avvio opzionale | Evita di tirare basso |
| GPIO12 | Modalità tensione flash | Bisogna restare BASSO |
| GPIO15 | Modalità SPI | Bisogna restare BASSO |
Questi pin sono sicuri da usare in modo normale, ma i componenti esterni non devono tirarli a livelli logici non validi durante il reset. I loro ruoli dettagliati di eliminazione sono spiegati nella Sezione 9.
Pin Limitati (Non Utilizzare)
| GPIO | Motivo |
|---|---|
| GPIO6–11 | Collegato alla memoria flash SPI |
Usarli potrebbe bloccare o far crashare l'ESP32.
Pin ADC ESP32

L'ESP32 integra due unità ADC SAR con comportamenti operativi diversi:
• ADC1 — Sempre disponibile e raccomandato per tutti gli ingressi dei sensori
• ADC2 — Condiviso con il sottosistema Wi-Fi e diventa non disponibile ogni volta che il Wi-Fi è attivo
Questa è una delle principali limitazioni dell'ESP32, rendendo ADC1 la scelta affidabile per le misurazioni nelle applicazioni wireless.
| Unità ADC | Canali | GPIO | Note |
|---|---|---|---|
| ADC1 | CH0–CH7 | GPIO32–39 | Scelta migliore per i sensori |
| ADC2 | CH0–CH9 | 0, 2, 4, 12–15, 25–27 | Inutilizzabile durante il Wi-Fi |
Gamma di tensione e precisione
Gli ADC supportano un intervallo di ingresso predefinito 0–1,1 V, estendibile fino a circa 3,3 V con attenuazione. Entrambe le unità ADC sono non lineari e beneficiano della calibrazione. Le prestazioni analogiche possono essere influenzate dall'attività interna RF, quindi instradare le linee del sensore lontano dall'antenna e aggiungere semplici filtri RC può migliorare notevolmente la stabilità. Per i progetti abilitati Wi-Fi, posizionare sempre i sensori analogici su ADC1 per garantire un funzionamento continuo e senza rumore.
DAC, PWM e pin touch ESP32
L'ESP32 include uscite analogiche integrate e sensori touch che semplificano la generazione di forme d'onda, la dimming, il controllo dei motori e le interfacce utente.
Panoramica DAC

Due canali DAC a 8 bit forniscono tensioni analogiche reali:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
Gli usi comuni includono audio semplice, forme d'onda analogiche, sfumatura LED e tensioni di polarizzazione. L'intervallo di uscita è tipicamente 0–3,3 V.
PWM (LEDC)

Il modulo LEDC fornisce PWM ad alta risoluzione e flessibile:
• 16 canali
• Base timer fino a 40 MHz
• Risoluzione fino a 20 bit
• GPIO completamente rimappabili
Utilizzato per l'oscurazione LED, il controllo del motore, i segnali servo, i toni audio e la modulazione generale. Qualsiasi GPIO può ospitare un'uscita PWM tramite la matrice GPIO.
Pin sensore touch

I 10 touchpad capacitivi dell'ESP32 rilevano la vicinanza delle dita ed è utile per pulsanti touch, cursori e grilletti di risveglio.
| Touch Pad | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
Questi sensori includono filtraggio del rumore e funzionano bene per eventi di scia a bassa potenza.
Pin di comunicazione ESP32
L'ESP32 include un ricco set di periferiche di comunicazione, ciascuno in grado di essere instradato a più pin tramite la matrice GPIO flessibile. Questo permette di assegnare interfacce come I2C, SPI e UART quasi ovunque, consentendo layout di schede altamente personalizzabili e combinazioni di periferiche.
I2C (Pin predefiniti e personalizzati)

L'ESP32 include due controller I2C, con piena flessibilità nella selezione dei pin. Sebbene la maggior parte delle schede di sviluppo utilizzi i pin predefiniti, sia SDA che SCL possono essere riassegnati a quasi qualsiasi GPIO.
| Segnale | GPIO predefinito | Note |
|---|---|---|
| SDA | GPIO21 | Completamente rimappabile |
| SCL | GPIO22 | Completamente rimappabile |
Qualsiasi due GPIO digitali possono agire come SDA e SCL. Supporta sia la modalità standard (100 kHz), la modalità veloce (400 kHz) sia la modalità veloce plus (1 MHz a seconda della scheda). Supporta pull-up interni su alcune schede, ma sono raccomandati resistori esterni da 4,7 kΩ per una comunicazione stabile. Questa flessibilità rende l'ESP32 ideale per sistemi che richiedono più sensori o un instradamento dei pin non convenzionale.
L'ESP32 include più bus SPI, con HSPI e VSPI disponibili per i dispositivi utente. Entrambi supportano la rimappatura tramite la matrice GPIO, ma la maggior parte delle schede e librerie utilizza la seguente configurazione VSPI predefinita, che evita conflitti con le connessioni flash interne:
Mappatura VSPI predefinita
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
Il VSPI è tipicamente preferito per display, schede SD e periferiche ad alta velocità. Sebbene i pin siano rimappabili, l'uso dei predefiniti garantisce la massima compatibilità e riduce i problemi di timing senza ripetere restrizioni già trattate nelle sezioni precedenti.
UART (Seriale)

L'ESP32 include tre controller UART, con routing flessibile che permette a qualsiasi pin UART di spostarsi su quasi qualsiasi GPIO.
| UART | PIN TX | PIN RX | Scopo Principale |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | Flash, messaggi di avvio, registrazione seriale |
| UART1 | GPIO10 | GPIO9 | Disponibile per applicazioni utente |
| UART2 | GPIO17 | GPIO16 | Disponibile per applicazioni utente |
Pin ESP32 Deep-Sleep & RTC
L'ESP32 include un sottosistema Ultra-Low-Power (ULP) e un dominio dedicato a Real-Time Clock (RTC) che rimangono alimentati anche quando la CPU principale e le periferiche sono spente. Questa architettura consente un consumo energetico estremamente basso, spesso nell'ordine dei microampere, rendendo l'ESP32 adatto per applicazioni a lungo termine a batteria.
Il sleep profondo permette al chip di spegnere i core principali, la maggior parte degli orologi interni e le radio Wi-Fi/Bluetooth, continuando a monitorare alcuni pin e sensori tramite le periferiche RTC.

L'ESP32 può svegliarsi dal sonno profondo attraverso diversi trigger indipendenti. Ogni sorgente di scia opera all'interno del dominio RTC, progettato per rimanere attivo con un consumo energetico minimo.
| Tipo di scia | GPIO / Note |
|---|---|
| GPIO RTC esterno | GPIO32, GPIO33, GPIO25, GPIO26, GPIO27 — supportano il risveglio di bordo o di livello |
| Touch pad capacitivi | T0–T9 — rileva la vicinanza o il tocco delle dita durante il sonno profondo |
| Timer Wake-Up | Il timer RTC può risvegliare il dispositivo dopo un intervallo programmato |
| Co-processore ULP | (Opzionale) Il codice personalizzato a basso consumo può essere eseguito per controllare i sensori prima di risvegliare la CPU principale |
Questi pin appartengono al dominio RTC e rimangono attivi anche quando la CPU e le GPIO normali sono spente. Supportano il risveglio tramite bordi ascendenti/discendenti o semplice rilevamento dei livelli. Comunemente utilizzato per il wake-on-movement, interruttori magnetici e trigger a basso consumo.
Funzioni di avvio, strapping e pin EN ESP32

L'ESP32 utilizza diversi perni di fissaggio che determinano le configurazioni chiave del sistema durante il reset o l'accensione. Questi pin vengono campionati solo all'avvio e poi tornano alla normale funzione GPIO. Assicurarsi che non vengano portati a livelli invalidi durante il reset è utile per un comportamento coerente all'avvio.
Tavolo per perni per cintura
| Pin | Ruolo da Boot | Stato richiesto allo Boot |
|---|---|---|
| GPIO0 | Seleziona bootloader / modalità flash | LOW = entra in modalità flash; HIGH = avvio normale |
| GPIO2 | Definisce livello di tensione di avvio interno | Deve rimanere ALTO |
| GPIO5 | Configurazione di avvio SPI | Deve rimanere ALTO |
| GPIO12 | Seleziona la tensione di flash (3,3 V / 1,8 V) | Deve rimanere BASSO per il flash a 3,3 V |
| GPIO15 | Imposta la modalità di comunicazione SPI durante l'avvio | Deve rimanere BASSO |
Questa sezione fornisce il riferimento autorevole per il comportamento del strapping. Le sezioni precedenti riassumono solo gli effetti pratici; Usa questa tabella quando assegni pin su PCB personalizzati o integri pulsanti e sensori.
Pin 9.1 EN (Abilita / Reset)
Il pin EN (Enable) funge da ingresso master reset per l'ESP32.
Comportamento con le spin EN:
• Tirare EN LOW resetta immediatamente il chip.
• Rilasciarlo nuovamente in ALTO accende i circuiti interni e riavvia la sequenza di avvio.
• Sulle schede di sviluppo (ad esempio, ESP32-DevKitC, NodeMCU-ESP32), l'EN è collegato all'interfaccia USB-seriale per consentire l'auto-reset durante il flashing.
Pin di alimentazione ESP32

L'ESP32 è sensibile alla qualità dell'alimentazione perché le sue radio Wi-Fi e Bluetooth assorbono impulsi di corrente brevi e ad alta ampiezza. Una consegna di potenza stabile garantisce un avvio affidabile, ripristini di brownout e prestazioni wireless costanti.
Riepilogo Power Pin
| Pin | Tensione | Usa |
|---|---|---|
| VIN | Ingresso 5 V | Alimenta il regolatore di bordo (tipicamente AMS1117 o ME6211) per generare 3,3 V |
| 3V3 | Uscita 3,3 V | Regolazione dell'uscita dall'LDO di bordo; Usati per alimentare logica e sensori esterni a bassa corrente |
| GND | — | Riferimento elettrico e percorso di ritorno per tutti i sottosistemi |
Esempi consigliati di pin e cablaggi ESP32
Scegliere i pin giusti sull'ESP32 è necessario per un funzionamento stabile, un instradamento pulito del segnale ed evitare conflitti con il boot-strap o le connessioni interne del flash. Le seguenti raccomandazioni evidenziano i pin più affidabili e privi di conflitti per funzioni comuni.
Scelte di perni
| Funzione | Migliori spille | Note |
|---|---|---|
| I2C | 21 (SDA), 22 (SCL) | Coppia predefinita testata hardware; Funziona nella maggior parte dei board. |
| SPI | 18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS) | Questi pin si mappano perfettamente al VSPI ed evitano i pin collegati al flash. |
| UART | 16 (RX), 17 (TX) | Pin UART2 dedicati, sicuri per avvio e debug. |
| PWM (LEDC) | 4, 16–19, 21–27, 32–33 | Autonomia ad alta flessibilità; Il PWM può essere instradato a quasi qualsiasi GPIO. |
| ADC | 32–39 (ADC1) | I canali ADC1 restano utilizzabili anche quando il Wi-Fi è attivo. |
Conclusione
Padroneggiare il pinout di ESP32 elimina le incertezze e previene molti dei problemi che compaiono nelle build reali, da letture rumorose dell'ADC a loop di avvio infiniti. Comprendendo i pin sicuri, il comportamento dei strapping, l'integrità dell'alimentazione e il routing in modalità deep sleep, puoi progettare circuiti che rimangano stabili, prevedibili e pronti per il wireless. Usa le pin map e le linee guida sopra come base per progetti ESP32 senza problemi.
Domande frequenti [FAQ]
Come configuro PlatformIO per la Freenove ESP32-S3 Breakout Board?
Usa le impostazioni standard dei moduli di sviluppo ESP32-S3. Nel tuo platformio.ini, aggiunge:
[env:esp32s3]
piattaforma = espressif32
Tabellone = esp32-s3-devkitc-1
Framework = arduino
Questo corrisponde al pinout di Freenove, permettendo la compilazione e il caricamento normali tramite USB.
Quante periferiche può far girare l'ESP32 contemporaneamente?
Grazie alla matrice GPIO, l'ESP32 può eseguire contemporaneamente più funzioni I²C, SPI, UART, PWM e ADC, purché si evitino pin limitati e si rimanga entro i limiti di CPU e temporizzazione. I principali colli di bottiglia sono ADC2 durante il Wi-Fi e la qualità dell'alimentatore, non il numero di pin.
Perché il mio ESP32 si riavvia quando collego sensori o moduli?
I reset inaspettati di solito derivano da cali di tensione causati da scoppi Wi-Fi, motori o alimentazioni poco regolamentate. Utilizzando una sorgente da 5 V da 1A o superiore, aggiungendo condensatori sfusi da 10–100 μF e isolando i carichi rumorosi si prevengono i blackout.
Posso usare il pin da 3,3 V dell'ESP32 per alimentare i moduli esterni?
Sì, ma solo per dispositivi a bassa corrente (tipicamente sotto i 300–500 mA, a seconda del LDO integrato). Le periferiche ad alto consumo come motori, servo e grandi strisce LED devono utilizzare un alimentatore separato per evitare reset e surriscaldamento.
Come posso scegliere i migliori pin ESP32 quando uso più periferiche?
Dai priorità ai pin non legati, evita GPIO6–11, posiziona sensori analogici su ADC1 e usa pin VSPI/I²C/UART predefiniti quando possibile. Questo riduce i conflitti e garantisce che tutte le periferiche possano operare insieme senza problemi di rimappatura del dispositivo.