Pin Arduino - guida pratica a piedinatura e collegamenti

Un pin Arduino collegato a una breadboard con quattro pulsanti (S1-S4) e resistori.

Scritto da

Ippolito Vitali

Pubblicato il

3 apr 2026

Indice

I pin Arduino sono il punto in cui la scheda smette di essere teoria e diventa utile: leggono pulsanti e sensori, pilotano LED, relè e moduli, e permettono al microcontrollore di interagire con il mondo reale. Capire come si dividono tra ingressi digitali, letture analogiche, PWM e alimentazione evita errori banali e fa risparmiare tempo già nei primi montaggi. In questa guida mi concentro sulla piedinatura, sull’uso pratico dei contatti più comuni e sui limiti che conviene conoscere prima di collegare un componente.

I punti da fissare prima di collegare un componente

  • Su una scheda UNO classica trovi 14 pin digitali e 6 ingressi analogici; non tutti hanno la stessa funzione.
  • I pin digitali leggono o scrivono solo stati logici, mentre gli analogici misurano una tensione variabile.
  • PWM non è una vera uscita analogica, ma una simulazione molto utile per LED, motori e dimmer.
  • Molti problemi nascono da corrente e tensione: un pin non va trattato come se fosse un alimentatore.
  • Prima di progettare, controllo sempre il pinout della scheda specifica, perché tra i modelli Arduino le differenze contano.

Cosa fanno davvero i pin di Arduino

Io parto sempre da una distinzione semplice: un pin non è “solo un foro”, ma un’interfaccia tra il microcontrollore e qualcosa di esterno. I contatti digitali servono per leggere o scrivere stati netti, i contatti analogici servono per misurare livelli di tensione variabili, e i pin di alimentazione portano energia a moduli e sensori. Su una UNO classica, la documentazione ufficiale parla di 14 pin digitali e 6 ingressi analogici, mentre 6 pin digitali supportano anche PWM.

In pratica, la scheda ragiona su quattro famiglie di collegamenti:

  • Ingressi digitali, per pulsanti, finecorsa e sensori che restituiscono sì/no.
  • Uscite digitali, per LED, transistor, relè e segnali di comando.
  • Ingressi analogici, per potenziometri, sensori di luce, temperatura o altri segnali continui.
  • Pin di alimentazione e comunicazione, per dare tensione ai moduli e parlare con bus come I2C o SPI.

Il punto che spesso si sottovaluta è che non tutte le schede Arduino hanno gli stessi pin, la stessa logica elettrica o gli stessi limiti di corrente. Io leggo sempre il pinout della scheda specifica prima di fare affidamento su una funzione “che di solito c’è”. Da qui conviene passare alla lettura pratica delle sigle stampate sulla scheda.

Schema del pinout di Arduino UNO, con indicazioni per I2C, SPI e ingressi analogici.

Come leggere la piedinatura senza confondersi

La serigrafia sulla scheda è la prima guida, ma va interpretata bene. Le sigle più comuni non descrivono solo una posizione fisica: indicano anche il ruolo del pin, il tipo di segnale e, in certi casi, una funzione condivisa con altre periferiche interne. Se impari a leggerle una volta, eviti metà degli errori tipici dei primi progetti.

Sigla Cosa significa Uso tipico Attenzione pratica
D0-D13 Pin digitali Pulsanti, LED, sensori, comandi Su alcuni pin ci sono funzioni speciali; D0 e D1 spesso servono alla seriale
A0-A5 Ingressi analogici Potenziometri, sensori analogici Su molte schede possono anche lavorare come digitali
~ Pin con PWM Regolazione luminosità o velocità Non è una vera uscita analogica, ma una modulazione di impulso
5V, 3.3V, GND, VIN Alimentazione Moduli, sensori, ingresso di tensione Non vanno scambiati con pin di segnale
SDA, SCL Bus I2C Display, sensori, expander La posizione può cambiare da scheda a scheda
AREF Riferimento analogico Misure analogiche con riferimento esterno Si usa solo quando sai davvero perché ti serve

La sigla con la tilde, ad esempio, è importante perché segnala i pin su cui puoi usare PWM. Sui modelli più diffusi della famiglia UNO questo dettaglio fa la differenza quando vuoi regolare un LED o un motore senza usare componenti più complessi. Un altro punto da non ignorare sono D0 e D1: sono comodi, ma spesso entrano in conflitto con la comunicazione seriale e con l’upload dello sketch.

Quando leggo una scheda nuova, la mia regola è semplice: prima individuo i pin di segnale, poi separo alimentazione e massa, e solo dopo penso al software. Con questa sequenza la piedinatura diventa molto più leggibile, e il passo successivo è capire come usare davvero un pin digitale nel lavoro quotidiano.

Ingresso e uscita digitale nel lavoro di tutti i giorni

Un pin digitale ha una logica netta: legge HIGH o LOW, oppure imposta HIGH o LOW in uscita. In Arduino questo comportamento si gestisce con `pinMode()`, `digitalRead()` e `digitalWrite()`, cioè con tre funzioni che, nella pratica, coprono la maggior parte dei casi semplici. Io le considero la base di partenza per chiunque voglia fare un progetto affidabile.

const int LED_PIN = 13;
const int BUTTON_PIN = 2;

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == LOW) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

Questo esempio mostra una scelta che consiglio spesso: usare la resistenza di pull-up interna. Invece di lasciare l’ingresso “flottante”, cioè senza uno stato definito, il pin viene tenuto alto internamente e il pulsante lo porta a massa quando viene premuto. Il vantaggio è concreto: meno componenti, cablaggio più pulito e meno letture casuali.

Ci sono però alcune regole che non tratto mai come opzionali:

  • Su un LED metto sempre una resistenza in serie, spesso nell’ordine di 220-330 ohm come punto di partenza.
  • Se leggo un pulsante, considero il debounce, cioè il piccolo rimbalzo elettrico dei contatti.
  • Se uso la seriale, evito di occupare D0 e D1 con altri dispositivi salvo casi ben controllati.
  • Se il modulo ha una massa propria, la collego alla massa della scheda: senza riferimento comune, il segnale perde senso.

Quando queste basi funzionano, il progetto inizia a comportarsi in modo prevedibile. A quel punto il passaggio successivo è distinguere bene tra lettura analogica e PWM, perché lì nasce una delle confusioni più frequenti.

Analogico e PWM non sono la stessa cosa

Qui vedo spesso il malinteso più classico: molti pensano che `analogWrite()` generi una vera tensione analogica, ma nella maggior parte delle schede Arduino classiche produce invece un segnale PWM. PWM significa Pulse Width Modulation: in pratica la scheda accende e spegne molto rapidamente il pin, variando il rapporto tra tempo acceso e tempo spento. All’occhio umano, o a un carico adatto, questo comportamento sembra una regolazione continua.

Funzione Cosa fa Valore tipico su UNO Dove si usa
`analogRead()` Legge una tensione in ingresso 0-1023 Potenziometri e sensori analogici
`analogWrite()` Genera PWM in uscita 0-255 LED dimmerabili, motori tramite driver
Uscita digitale Imposta HIGH o LOW 0 o 1 Comandi on/off

Sull’UNO classico l’ADC è a 10 bit, quindi `analogRead()` restituisce valori tra 0 e 1023. Questo dato è utile perché ti fa capire subito quanto è “fine” la misura, ma anche quanto è sbagliato aspettarsi una precisione da strumentazione professionale. Per un potenziometro o un sensore hobby va benissimo; per una misura critica, serve un progetto più accurato.

Il PWM, invece, funziona bene per controllare la luminosità di un LED o la velocità di un motore, sempre però con un driver adeguato. Io non lo uso mai come scorciatoia per alimentare carichi pesanti direttamente dal pin, perché lì il problema non è più il software ma la corrente disponibile. E questo ci porta agli errori che, in pratica, fanno perdere più tempo di tutti gli altri.

Gli errori che vedo più spesso nei primi progetti

La maggior parte dei guasti non nasce da un bug complicato, ma da una scelta elettrica sbagliata. Un pin può sembrare “vivo” perché il programma gira, eppure il circuito non risponde perché la corrente è eccessiva, la massa non è comune o la tensione non è compatibile. Io controllo sempre questi punti prima di cercare difetti nel codice.

  • Collegare un motore direttamente al pin. È il classico errore da evitare: un motore richiede un driver o almeno un transistor, non un’uscita logica pura.
  • Confondere tensione e corrente. Una scheda può avere un pin a 5V, ma questo non significa che possa alimentare qualunque carico. Una piccola LED può stare nell’ordine di pochi milliampere; un servo può arrivare verso 1000 mA nei picchi.
  • Lasciare un ingresso flottante. Se un pin di input non ha pull-up, pull-down o un segnale definito, la lettura può oscillare senza motivo.
  • Usare 5V e 3.3V come se fossero equivalenti. Non tutte le schede hanno la stessa logica, e un modulo a 3.3V collegato male può dare letture errate o danni.
  • Dimenticare la massa comune. Se il segnale non condivide la stessa massa tra scheda e componente, la misura diventa inaffidabile.
  • Ignorare i pin già occupati da funzioni speciali. Seriale, I2C, SPI e PWM possono sovrapporsi a un uso generico e creare conflitti difficili da capire dopo.

Su questo punto sono abbastanza netto: quando un progetto non si accende, quasi sempre il colpevole è nel cablaggio o nell’alimentazione, non nello sketch. Vale anche il contrario, cioè che un buon cablaggio semplifica il debugging del software. Una volta eliminati questi intoppi, scegliere il pin giusto diventa una decisione molto più pratica che teorica.

La regola pratica che uso per scegliere il pin giusto

Quando progetto qualcosa di semplice, non parto mai dal numero del pin ma dal tipo di segnale che mi serve. Questa abitudine mi evita di forzare una scheda in un ruolo per cui non è nata e mi fa scegliere il collegamento più pulito. In altre parole, prima definisco il lavoro del pin, poi scelgo il contatto.

Scenario Pin consigliato Perché
LED acceso/spento Qualsiasi pin digitale Serve solo un comando HIGH o LOW
Dimming di un LED Un pin con PWM Il duty cycle simula una regolazione continua
Pulsante Pin digitale con INPUT_PULLUP Cablaggio semplice e lettura stabile
Potenziometro o sensore analogico A0-A5 su una UNO classica Servono ingressi capaci di leggere valori continui
Sensore I2C SDA e SCL Il bus è già pensato per moduli multipli sulla stessa linea
Motore o carico pesante Pin di comando più driver esterno Il pin da solo non deve fornire la corrente richiesta

Se dovessi ridurre tutto a una sola regola, direi questa: il pin giusto è quello che rispetta funzione, tensione e corrente del componente. Quando queste tre cose coincidono, il progetto è più stabile e il debug diventa quasi banale; quando una delle tre manca, iniziano i problemi poco chiari. Per questo io consiglio sempre di partire da un LED, un pulsante e un sensore semplice: se quei tre casi funzionano, hai già capito gran parte del linguaggio dei pin di Arduino.

Domande frequenti

Su una UNO classica trovi 14 pin digitali e 6 ingressi analogici. Inoltre, 6 pin digitali supportano anche il PWM, utile per regolare LED e motori senza un’uscita analogica vera e propria.

Conviene quando vuoi evitare un ingresso flottante e semplificare il cablaggio. Con INPUT_PULLUP il pin resta alto a riposo e va a LOW quando premi il pulsante, senza resistenze esterne aggiuntive.

analogRead() misura una tensione in ingresso e, su UNO, restituisce valori da 0 a 1023. analogWrite() invece non genera una vera tensione analogica: produce PWM, con valori da 0 a 255, utile per dimmerare LED o controllare motori tramite driver.

Gli errori più frequenti sono collegare un motore direttamente al pin, confondere tensione e corrente, lasciare un ingresso flottante, usare 5V e 3.3V come se fossero equivalenti e dimenticare la massa comune tra scheda e componente.

Valuta l'articolo

Valutazione: 0.00 Numero di voti: 0

Tag:

piedinatura pwm alimentazione i2c pull-up

Condividi post

Ippolito Vitali

Ippolito Vitali

Mi chiamo Ippolito Vitali e ho accumulato 8 anni di esperienza nel campo della tecnologia, dei hobby e del tempo libero. La mia passione per questi argomenti è nata da un interesse personale che si è trasformato in una vera e propria missione: aiutare gli altri a esplorare e comprendere le meraviglie del mondo tecnologico. Scrivo di tutto, dalle ultime innovazioni alle tecniche per ottimizzare il tempo libero, cercando sempre di semplificare concetti complessi e rendere le informazioni accessibili. Nel mio lavoro, mi impegno a controllare le fonti e a confrontare le informazioni per garantire contenuti utili, accurati e aggiornati. Seguo le tendenze del settore con attenzione, organizzando le mie conoscenze in modo chiaro e comprensibile. Credo che la tecnologia e il tempo libero possano migliorare la qualità della vita, e mi piace condividere queste idee con i lettori, offrendo spunti pratici e riflessioni stimolanti.

Scrivi un commento