A volte nei propri progetti sono utilizzati tutti i pin digitali presenti sulla scheda Arduino UNO.
Questi sono 14, e di solito il pin 0 e 1 non vengono utilizzati in quanti dedicati alla comunicazione seriale con il PC. Vediamo come trasformare i pin analogici in digitale per aumentare questo numero .
Pin connettore DIGITAL (PWM ~)
Ciascuno dei 14 pin digitali presenti sulla Arduino Uno può essere utilizzato indifferentemente come un ingresso o un’uscita, utilizzando le funzioni pinMode(), digitalWrite(), e digitalRead().
Inoltre, alcuni pin hanno funzioni specializzate:
- Pin: 0 (RX) e 1 (TX): possono essere utilizzati per ricezione (RX) e trasmissione (TX) dei dati seriali TTL. Questi sono collegati ai pin corrispondenti della porta USB-TTL del processore ATmega8U2.
- Pin 2 e 3: possono essere configurati come trigger per eventi esterni, come ad esempio il rilevamento di un fronte di salita o di discesa di un segnale in ingresso.
- Pin 3, 5, 6, 9, 10 e 11: possono essere configurati via software con la funzione analogWrite() per generare segnali PWM con risoluzione di 8 bit. Tramite un semplice filtro RC è possibile ottenere tensioni continue di valore variabile.
- Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): possono essere programmati per realizzare una comunicazione SPI, con un’apposita libreria SPI.
- Pin 13: è connesso a un LED interno alla scheda, utile per segnalazioni di diagnostica. Quando il livello del pin è HIGH, il LED si accende , se il livello del pin è LOW, il led si spegne
- GND; è il contatto di massa (GND).
- AREF: Tensione di riferimento per gli ingressi analogici. Utilizzato con analogReference().
NOTA: sono poi presenti due pin posti alla sinistra del pin AREF che non sempre riportano la sigla. Questi sono in realtà due pin dedicati alla comunicazione con il protocollo I2C , identici a quelli dei pin A4 (SDA) e A5 (SCL) sul connettore ANALOG IN.
Utilizzo dei pin Analogici come digitali
La possibilità di recupero di altri pin digitali, è data dal fatto che i pin analogici di Arduino possono essere usati come I/O digitali.
NOTA: ricordate che nel caso il vostro progetto utilizzi dei dispositivi con interfaccia I2C, i pin A4 (SDA) e A5 (SCL) non potranno comunque essere utilizzati.
In questo caso la loro numerazioni sarà:
Pin Analogico | Pin Digitale |
---|---|
A0 | D14 |
A1 | D15 |
A2 | D16 |
A3 | D17 |
A4 | D18 |
A5 | D19 |
Come utilizzare i nuovi pin
Vediamo sotto un esempio di dichiarazione dei pin
1 2 3 4 | void setup() { pinMode(14, OUTPUT); // pin A0 utilizzato come OUTPUT digitale pinMode(15, INPUT); // pin A1 utilizzato come INPUT digitale } |
Un esempio di questa possibilità è mostrata per esempio nel post in qui i pin A1 e A2 sono utilizzare come pin di alimentazione (+5V e GND) per la gestione del modulo KY-013 Analog temperature sensor module