Spiegazione del pinout ESP32: pin di sicurezza, regole di cablaggio ed esempio

nov 25 2025
Fonte: DiGi-Electronics
Naviga: 1709

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.

Figure 1. ESP32 Pinout

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

Figure 2. ESP32 DevKit Pin Layout

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

GruppoDescrizione
Power PiersVIN (5 V), uscita 3,3 V, GND
Piste di controlloEN (reset), IO0 (modalità di avvio)
Pin GPIOI/O digitale con multiplexing
Pin analogiciCanali ADC1 e ADC2
Pin di comunicazioneSPI, I2C, UART, I2S
Pin solo di inputGPIO34–GPIO39
Pin Riservati al FlashGPIO6–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

Figure 3. ESP32 GPIO

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:

PinTipoUso consigliato
GPIO34Solo inputADC1 / sensori
GPIO35Solo inputADC1
GPIO36 (VP)Solo inputADC1 / Sensore a Hall
GPIO39 (VN)Solo inputADC1

Pin ESP32 sicuri da usare e perni da evitare

Figure 4. Safe ESP32 Pins to Use and Pins to Avoid

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)

GPIONote
4, 13–19, 21–27, 32, 33Nessun impatto di avvio, ideale per la maggior parte delle periferiche

Pin di Attenzione (Influenza la modalità di avvio)

GPIOFunzione di avvioEvitare durante l'avvio
GPIO0Modalità flash/BootTieni ALTO (input) durante l'avvio normale
GPIO2Tensione di avvioDeve essere ALTO
GPIO5Modalità di avvio opzionaleEvita di tirare basso
GPIO12Modalità tensione flashBisogna restare BASSO
GPIO15Modalità SPIBisogna 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)

GPIOMotivo
GPIO6–11Collegato alla memoria flash SPI

Usarli potrebbe bloccare o far crashare l'ESP32.

Pin ADC ESP32

Figure 5. ESP32 ADC Pins

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à ADCCanaliGPIONote
ADC1CH0–CH7GPIO32–39Scelta migliore per i sensori
ADC2CH0–CH90, 2, 4, 12–15, 25–27Inutilizzabile 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

Figure 6. ESP32 DAC

Due canali DAC a 8 bit forniscono tensioni analogiche reali:

DACGPIO
DAC1GPIO25
DAC2GPIO26

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)

Figure 7. ESP32 PWM

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

Figure 8. ESP32 Touch Sensor Pins

I 10 touchpad capacitivi dell'ESP32 rilevano la vicinanza delle dita ed è utile per pulsanti touch, cursori e grilletti di risveglio.

Touch PadGPIO
T0–T9GPIO4, 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)

Figure 9. ESP32 I2C Pins

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.

SegnaleGPIO predefinitoNote
SDAGPIO21Completamente rimappabile
SCLGPIO22Completamente 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)

Figure 10. ESP32 UART Pins

L'ESP32 include tre controller UART, con routing flessibile che permette a qualsiasi pin UART di spostarsi su quasi qualsiasi GPIO.

UARTPIN TXPIN RXScopo Principale
UART0GPIO1GPIO3Flash, messaggi di avvio, registrazione seriale
UART1GPIO10GPIO9Disponibile per applicazioni utente
UART2GPIO17GPIO16Disponibile 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.

Figure 11. ESP32 RTC Pins

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 sciaGPIO / Note
GPIO RTC esternoGPIO32, GPIO33, GPIO25, GPIO26, GPIO27 — supportano il risveglio di bordo o di livello
Touch pad capacitiviT0–T9 — rileva la vicinanza o il tocco delle dita durante il sonno profondo
Timer Wake-UpIl 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

Figure 12.ESP32 Strapping Pins

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

PinRuolo da BootStato richiesto allo Boot
GPIO0Seleziona bootloader / modalità flashLOW = entra in modalità flash; HIGH = avvio normale
GPIO2Definisce livello di tensione di avvio internoDeve rimanere ALTO
GPIO5Configurazione di avvio SPIDeve rimanere ALTO
GPIO12Seleziona la tensione di flash (3,3 V / 1,8 V)Deve rimanere BASSO per il flash a 3,3 V
GPIO15Imposta la modalità di comunicazione SPI durante l'avvioDeve 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

Figure 13. ESP32 Power Pins

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

PinTensioneUsa
VINIngresso 5 VAlimenta il regolatore di bordo (tipicamente AMS1117 o ME6211) per generare 3,3 V
3V3Uscita 3,3 VRegolazione dell'uscita dall'LDO di bordo; Usati per alimentare logica e sensori esterni a bassa corrente
GNDRiferimento 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

FunzioneMigliori spilleNote
I2C21 (SDA), 22 (SCL)Coppia predefinita testata hardware; Funziona nella maggior parte dei board.
SPI18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS)Questi pin si mappano perfettamente al VSPI ed evitano i pin collegati al flash.
UART16 (RX), 17 (TX)Pin UART2 dedicati, sicuri per avvio e debug.
PWM (LEDC)4, 16–19, 21–27, 32–33Autonomia ad alta flessibilità; Il PWM può essere instradato a quasi qualsiasi GPIO.
ADC32–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.