In questo tutorial modificherai il semplice circuito che hai già realizzato, predisponendolo per il controllo del LED attraverso il microcontrollore di Arduino.
I componenti sono esattamente gli stessi utilizzati nel precedente tutorial.
Un pin digitale, è un terminale di un componente elettronico che può assumere soltanto due valori prestabiliti di tensione, chiamati ALTO e BASSO.
La parola digitale, deriva da ‘digit‘ cioè cifra. Utilizzando un circuito elettronico, il modo più semplice per rappresentare l’informazione è utilizzare i due stati che sono più facilmente riproducibili in un circuito: ad esempio circuito aperto, in cui non scorre corrente, e circuito chiuso in cui scorre corrente.
Ai due stati possiamo far corrispondere i valori ‘0’ e ‘1’. Con le due cifre ‘0’ e ‘1’ è possibile comporre qualunque numero attraverso il cosiddetto sistema binario. Poiché anche i caratteri alfabetici possono essere codificati attraverso numeri, vedi ad esempio il codice ASCII, ma anche le immagini, i suoni e i video possono essere codificati attraverso numeri, questo vuol dire che usando due soli stati di un circuito elettronico possiamo arrivare a costruire un sistema per gestire qualunque informazione.
Questo è esattamente quello che è avvenuto con la rivoluzione microelettronica e l’avvento dell’elettronica detta digitale, cioè basata sulla rappresentazione dei numeri.
Anche se l’esempio dell’interruttore aperto o chiuso, o del circuito in cui scorre o non scorre corrente, è quello più utilizzato per introdurre il concetto di digitale, non sono gli stati in corrente (scorre o non scorre) quelli realmente utilizzati.
Quando si mettono in moto cariche elettriche, cioè si genera una corrente, si consuma energia.
Hai già visto che una pila, come quella inventata da Alessandro Volta, quando non è collegata ad un circuito, ha comunque una differenza di potenziale tra i suoi elettrodi.
Utilizzando la tensione, è possibile individuare due stati senza la necessità di far scorrere corrente e quindi di consumare energia.
Ad esempio, potremmo far corrispondere la cifra ‘0’, al potenziale del terminale negativo, spesso chiamato ground perché considerato il riferimento a 0 volt, e la cifra ‘1’ al potenziale del terminale positivo.
I circuiti digitali moderni funzionano esattamente secondo questo principio. In determinati punti del circuito, quelli che vengono utilizzati per rappresentare l’informazione, vengono generate tensioni fisse che possono essere pari a zero volt, oppure pari ad un valore più alto, ad esempio 5 volt. Se la configurazione del circuito è tale per cui in entrambi gli stati non scorre corrente, oppure ne scorre una quantità molto piccola, il circuito riesce a gestire la rappresentazione dell’informazione in forma di numeri, senza consumare troppa energia.
Un microcontrollore è un circuito elettronico integrato digitale. Al suo interno l’informazione in formato binario è gestita in modo articolato e complesso, in fondo si tratta di un vero e proprio elaboratore elettronico.
Il microcontrollore comunica con gli altri componenti elettronici a cui è collegato attraverso l’unico linguaggio che è in grado di gestire: il codice binario.

Quello che vedi nell’immagine è un microcontrollore Atmel ATMega 328, lo stesso che è montato sulla scheda Arduino UNO.
La versione raffigurata è quella con i terminali a forma di zampette, che può anche essere direttamente montato su una breadboard.
Alcuni terminali servono per fornire l’alimentazione al circuito interno, altri sono disponibili per collegare un oscillatore al quarzo esterno, ma la maggior parte dei terminali servono per comunicare con l’esterno. Questi terminali sono comunemente chiamati PIN.
I microcontrollori come l’ATMega 328 sono componenti molto versatili e flessibili e ciascun terminale può svolgere molti ruoli a seconda del programma e del valore di configurazione impostato in alcuni registri al suo interno.
La cosa è molto complicata e proprio per questo usiamo Arduino anziché montare il microcontrollore sulla bradboard, ma ciò che devi tenere a mente è che fondamentalmente ciascun terminale è preposto a gestire un valore di tensione secondo la modalità digitale di cui abbiamo parlato.
La scheda Arduino ha un collegamento tra i connettori che si trovano sui bordi e i PIN del microcontrollore.
I PIN dell’ATMega 328 sono descritti nella documentazione ufficiale della Atmel e hanno dei nomi specifici assegnati dalla Atmel. La scheda Arduino riporta questi PIN sui connettori esterni, dove è possibile collegare un jumper maschio, e li rinomina numerandoli in modo semplice, prevedendo una configurazione standard adatta alla maggior parte dei prototipi.
Nelle figure che seguono sono riportati sia lo schema ufficiale dei PIN, così come fornito dalla Atmel, sia lo schema semplificato di Arduino.


Si tratta di una bella semplificazione. Su questi concetti torneremo in seguito.
Per la rappresentazione delle cifre digitali, esistono al momento due standard principali: la logica TTL e la logica CMOS.
Nello standard TTL (Transistor-Transistor Logic) il valore ALTO, corrispondente alla cifra binaria ‘1’ è definito da un valore di tensione pari a 5 Volt, mentre il valore BASSO, corrispondente alla cifra ‘0’, è definito da un valore di tensione pari a zero, cioè pari al potenziale del GROUND del circuito.
Nel più recente e utilizzato standard CMOS, il valore ALTO è identificato con il potenziale 3,3 Volt e il valore BASSO con il potenziale 0 Volt (GROUND).
Entrambi gli standard prevedono delle tolleranze, poiché le tensioni che riusciamo a ottenere in un circuito non sono mai valori controllabili con precisione estrema, data la variabilità costruttiva dei diversi componenti.
Nello standard TTL è considerato valore BASSO un valore di tensione minore di 0,8 Volt, e qualunque valore superiore a 2,8 Volt è considerato ALTO.
Nello standard CMOS qualunque valore inferiore a 0,8 Volt è considerato BASSO mentre qualunque valore superiore a 2 Volt è considerato ALTO.
Poiché la maggior parte dei circuiti CMOS tollerano sovratensioni fino a 5 Volt, i due standard sono interoperabili.
Arduino lavora nominalmente con valori TTL ma in virtù di quanto detto, come vedremo, può gestire sensori e apparati che sono progettati per lavorare secondo la logica CMOS.
Nel caso del circuito che hai appena visto, l’idea è quella di sfruttare lo stato logico ALTO di un PIN digitale di Arduino per pilotare un LED.
Impostando il PIN digitale allo stato ALTO, questo assumerà un valore prossimo a 5 Volt e potrà essere utilizzato come fonte di tensione per il circuito LED.
Ricorda comunque, che i PIN digitali di Arduino, come tutti i circuiti digitali, non sono progettati per erogare corrente, ma solo per segnalare valori logici.
Poiché il LED richiede pochi milliampere di corrente, possiamo sfruttarlo come semplice fonte di alimentazione.
Ai PIN digitali di Arduino non è possibile collegare dispositivi che richiedono correnti più elevate di 40 mA.
Lo schema del circuito appena realizzato è il seguente.
