L'Arduino Uno R3 è una scheda basata sul microcontrollore Atmel ATmega328 (scheda tecnica). Dispone di 14 pin di ingresso/uscita (di cui 6 possono essere utilizzati come uscite PWM), 6 ingressi analogici, un clock a 16 MHz, una connessione USB, un jack di alimentazione, un connettore ICSP e un pulsante di reset. L'Arduino Uno R3 contiene tutto il necessario per supportare il microcontrollore; è sufficiente collegarlo ad un computer con un cavo USB per iniziare.
L'Arduino Uno R3 si differenzia da tutte le schede precedenti in quanto non usa il chip FTDI come driver USB-seriale, sulla Arduino Uno R3 questa funzione viene svolta da un microcotrollore ATmega16U2 programmato come un convertitore USB-seriale.
La Revisione 3 (R3) della Arduino Uno presenta le seguenti nuove funzionalità:
Sono stati aggiunti i pin SDA e SCL (questi pin sono vicini al pin AREF) e due nuovi pin posizionati vicino al pin RESET, il primo è denominato IOREF e permetterà agli shields di adattarsi alla tensione della scheda. In futuro gli shields saranno compatibili sia con le schede Arduino alimentate a 5V sia con le schede Arduino alimentate a 3,3V. Il secondo pin, attualmente non connesso, verrà utilizzato per espansioni future.
Circuito di RESET migliorato
Il convertitore USB-seriale è realizzato con un microcontrollore ATtmega16U2 che sostituisce il microcontrollore ATmega8U2 presente sulle versioni precedenti.
Alimentazione:
L'Arduino Uno R3 può essere alimentata attraverso la connessione USB oppure con un alimentatore esterno, la sorgente di alimentazione viene selezionata automaticamente.
L'alimentatore esterno può essere collegato tramite il jack di alimentazione presente sulla scheda, questo alimentatore dovrà fornire una tensione compresa tra 7V e 12V. Una tensione inferiore ai 7V non permetterà il funzionamento corretto del regolatore presente a bordo e la scheda risulterà instabile, se si utilizzano più di 12 V il regolatore di tensione può surriscaldarsi e danneggiare la scheda.
I piedini di alimentazione sono i seguenti:
VIN. La tensione di ingresso alla scheda Arduino quando sta utilizzando una sorgente di alimentazione esterna, questo ingresso è collegato direttamente al jack di alimentazione presente sulla scheda.
5V. Su questo pin è presente la tensione a 5V generata dal regolatore presente sulla scheda. Per evitare di danneggiare la scheda questo ingresso non andrà mai utilizzato come sorgente di alimentazione.
3,3V. Su questo pin è presente la tensione a 3,3V generata dal regolatore interno, è permesso un assorbimento massimo di 50mA.
GND. Pin di massa
IOREF. Questo pin sulla scheda Arduino fornisce il riferimento di tensione con cui il microcontrollore opera. Uno shield in grado di leggere la tensione del pin IOREF può selezionare l'alimentazione appropriata e abilitare o meno gli adattatori di livello che permettono di lavorare a 5V oppure a 3,3V.
Memoria:
Il microcontrollore ATmega328 dispone di 32 KB di Flash (0,5 KB usati per il bootloader), 2 KB di SRAM e 1 KB di EEPROM (che può essere letta e scritta con la libreria EEPROM).
Ingressi e Uscite:
Ciascuno dei 14 pin digitali della Arduino Uno R3 può essere utilizzato come ingresso oppure come uscita utilizzando le funzioni pinMode (), digitalWrite (), e digitalRead (). Tutti i pin operano a 5V e sono in grado di fornire o ricevere un massimo di 40 mA, su tutti i pin è presente una resistenza di pull-up interno (disabilitata di default) con un valore compreso tra 20Kohm e 50Kohm. Inoltre, alcuni di questi pin hanno funzioni specializzate:
Seriale: Pin 0 (RX) e pin 1 (TX). Vengono utilizzati per ricevere (RX) e trasmettere (TX) i dati seriali TTL. Questi pin sono collegati ai corrispondenti pin del convertitore USB-seriale ATmega16U2.
Interrupt Esterni: Pin 2 e pin 3. Questi pin possono essere configurati per attivare un interrupt su un livello logico basso, un fronte di salita o di discesa o cambiamenti di valore. Vedere la funzione attachInterrupt () per i dettagli.
PWM: Pin 3, 5, 6, 9, 10, e 11. Forniscono una uscita PWM a 8 bit utilizzando la funzione analogWrite ().
SPI: pin 10 (SS), pin 11 (MOSI), pin 12 (MISO) e pin 13 (SCK). Questi pin vengono utilizzati per la comunicazione SPI tramite la libreria SPI.
LED: collegato al pin 13. Quando sul pin è presente un livello alto il LED è acceso, un livello basso spegne il led.
La Arduino Uno R3 dispone di 6 ingressi analogici etichettati da A0 a A5, ciascuno di questi pin fornisce una risoluzione a 10 bit (cioè 1024 valori differenti). Per default questi pin effettuano le misure utilizzando come riferimento superiore i 5V e come riferimento inferiore la massa. E' possibile cambiare il riferimento superiore utilizzando il pin AREF e la funzione analogReference (). Due pin analogici hanno anche alcune funzionalità specializzate:
Pin A4: SDA (I2C-TWI)
Pin A5: SCL (I2C-TWI)
Questi pin offrono il supportoTWI (I2C) utilizzando la libreria Wire.
Ci sono altri pin sulla scheda con funzioni dedicate:
AREF: Tensione di riferimento per gli ingressi analogici. Utilizzato con analogReference ().
RESET: Un livello basso su questo pin resetta il microcontrollore. Questo ingresso è generalmente utilizzato dal pulsante di reset presente su alcuni shields.
Comunicazione:
L'Arduino Uno R3 offre una serie di possibilità per la comunicazione con un computer, un altro Arduino o altri microcontrollori. L'ATmega328 fornisce la comunicazione seriale UART TTL (5V), disponibile sul pin digitali 0 (RX) e 1 (TX). Un ATmega16U2 si occupa della comunicazione seriale via USB e, per il software del computer, appare come una porta COM virtuale. Il firmware dell'ATmega16U2 utilizza i driver USB COM standard e non è necessario alcun driver esterno. Solo per i sistemi operativi Windows è necessario un file .inf. Il software Arduino include un monitor seriale che consente di visualizzare i dati testuali inviati e ricevuti dalla scheda Arduino. Sulla scheda sono presenti i LED RX e TX che lampeggiano quando i dati vengono trasmessi o ricevuti tramite la connessione USB. I LED RX e TX non lampeggiano quando è in corso una comunicazione seriale sui pin 0 e 1.
Tramite la libreria SoftwareSerial è possibile indirizzare la comunicazione seriale TTL a 5V verso qualunque pin della Arduino Uno R3.
L' ATmega328 supporta anche la comunicazione I2C (TWI) e la comunicazione SPI. Il software Arduino include una libreria Wire per semplificare l'uso del bus I2C e una libreria SPI da utilizzare per la comunicazione SPI.
Programmazione:
L'Arduino Uno R3 può essere programmata con il software di Arduino (download). Dopo avere lanciato il software selezionare "Arduino Uno" dal menù Strumenti > Scheda (secondo il microcontrollore impiegato sulla scheda.
L'ATmega328 utilizzato sulla Arduino Uno R3 è precaricato con un bootloader che permette di caricare il nuovo codice senza utilizzare di un programmatore hardware esterno. La comunicazione avviene utilizzando il protocollo STK500 originale.
È anche possibile ignorare il bootloader e programmare il microcontrollore attraverso tramite di ICSP (In-Circuit Serial Programming) utilizzando un programmatore Arduino ISP.
E' anche disponibile il codice sorgente del firmware utilizzato per l'ATmega16U2 (o per l'ATmega8U2 utilizzato nelle versioni precedenti della Arduino Uno R3). Questo firmware può essere modificato e caricato con un bootloader DFU, che può essere attivato da:
Collegando il ponticello di saldatura sul retro della scheda (vicino all'immagine dell'Italia) e resettando l'ATmega8U2.
Sulle ultime versioni (Arduino Uno R2 e Arduino Uno R3)è presente che forza a livello basso la linea HWB dei microcontrollori ATmega8U2 o ATmega16U2 rendendo più facile utilizzare la modalità DFU.
Dopo avere effettuato questi passaggi è possibile utilizzare l' Atmel FLIP Software o il programmatore DFU (Mac OS X e Linux) per caricare il nuovo firmware.
Reset (Software) Automatico:
Il reset della Arduino Uno R3 (da effettuare prima di caricare un nuovo sketch) può essere effettuato con il pulsante presente sulla scheda oppure tramite il software in esecuzione sul computer collegato alla scheda. Una delle linee di controllo del flusso hardware (DTR) del microprocessore ATmega16U2 è collegata alla linea di reset dell'ATmega328 attraverso un condensatore da 100nF. Quando questa linea è posta a livello basso , viene attivata la procedura di reset per il tempo necessario al ripristino dell'ATmega328. Il software di Arduino utilizza questa funzionalità per consentire di caricare il codice premendo semplicemente il pulsante di caricamento nell'ambiente Arduino. Questo permette al bootloader di essere ben coordinato con l'inizio del caricamento.
Questa configurazione ha altre implicazioni. Quando la Arduino Uno R3 è collegata ad un computer con sistema operativo Mac OS X o Linux e viene effettuata una connessione tramite USB viene generato un impulso di reset della durata di circa 500mS. Per questo motivo occorre attendere almeno 1S prima di caricare un nuovo sketch.
Per disattivare il ripristino automatico occore tagliare su entramvi i lati le piste che fanno capo alle piazzole denominate "RESET-EN". La stessa funzione si ottiene collegando una resistenza da 100 Ohm tra la linea di reset e l'alimentazione a 5V.
Protezione della porta USB:
L'Arduino Uno ha un fusibile ripristinabile che protegge la porta USB del computer dal cortocircuito e dalla sovracorrente. Se dalla porta USB vengono assorbiti più di 500mA il fusibile si interrompe e verrà ripristinato solo dopo avere eliminato il sovraccarico.
L'Arduino Uno R3 è una scheda basata sul microcontrollore Atmel ATmega328. Dispone di 14 pin di ingresso/uscita (di cui 6 possono essere utilizzati come uscite PWM), 6 ingressi analogici, un clock a 16 MHz, una connessione USB, un jack di alimentazione, un connettore ICSP e un pulsante di reset. L'Arduino Uno R3 contiene tutto il necessario per supportare il microcontrollore; è sufficiente collegarlo ad un computer con un cavo USB per iniziare.
L'Arduino Uno R3 si differenzia da tutte le schede precedenti in quanto non usa il chip FTDI come driver USB-seriale, sulla Arduino Uno R3 questa funzione viene svolta da un microcotrollore ATmega16U2 programmato come un convertitore USB-seriale.
La Revisione 3 (R3) della Arduino Uno presenta le seguenti nuove funzionalità:
- Sono stati aggiunti i pin SDA e SCL (questi pin sono vicini al pin AREF) e due nuovi pin posizionati vicino al pin RESET, il primo è denominato IOREF e permetterà agli shields di adattarsi alla tensione della scheda. In futuro gli shields saranno compatibili sia con le schede Arduino alimentate a 5V sia con le schede Arduino alimentate a 3,3V. Il secondo pin, attualmente non connesso, verrà utilizzato per espansioni future.
- Circuito di RESET migliorato
- Il convertitore USB-seriale è realizzato con un microcontrollore ATtmega16U2 che sostituisce il microcontrollore ATmega8U2 presente sulle versioni precedenti.
Alimentazione:L'Arduino Uno R3 può essere alimentata attraverso la connessione USB oppure con un alimentatore esterno, la sorgente di alimentazione viene selezionata automaticamente.
L'alimentatore esterno può essere collegato tramite il jack di alimentazione presente sulla scheda, questo alimentatore dovrà fornire una tensione compresa tra 7V e 12V. Una tensione inferiore ai 7V non permetterà il funzionamento corretto del regolatore presente a bordo e la scheda risulterà instabile, se si utilizzano più di 12 V il regolatore di tensione può surriscaldarsi e danneggiare la scheda.
I piedini di alimentazione sono i seguenti:
- VIN: La tensione di ingresso alla scheda Arduino quando sta utilizzando una sorgente di alimentazione esterna, questo ingresso è collegato direttamente al jack di alimentazione presente sulla scheda.
- 5V: Su questo pin è presente la tensione a 5V generata dal regolatore presente sulla scheda. Per evitare di danneggiare la scheda questo ingresso non andrà mai utilizzato come sorgente di alimentazione.
- 3,3V: Su questo pin è presente la tensione a 3,3V generata dal regolatore interno, è permesso un assorbimento massimo di 50mA.
- GND: Pin di massa.
- IOREF: Questo pin sulla scheda Arduino fornisce il riferimento di tensione con cui il microcontrollore opera. Uno shield in grado di leggere la tensione del pin IOREF può selezionare l'alimentazione appropriata e abilitare o meno gli adattatori di livello che permettono di lavorare a 5V oppure a 3,3V.
Memoria:
Il microcontrollore ATmega328 dispone di 32 KB di Flash (0,5 KB usati per il bootloader), 2 KB di SRAM e 1 KB di EEPROM (che può essere letta e scritta con la libreria EEPROM).
Ingressi e Uscite:
Ciascuno dei 14 pin digitali della Arduino Uno R3 può essere utilizzato come ingresso oppure come uscita utilizzando le funzioni pinMode (), digitalWrite (), e digitalRead (). Tutti i pin operano a 5V e sono in grado di fornire o ricevere un massimo di 40 mA, su tutti i pin è presente una resistenza di pull-up interno (disabilitata di default) con un valore compreso tra 20Kohm e 50Kohm. Inoltre, alcuni di questi pin hanno funzioni specializzate:
- Seriale: Pin 0 (RX) e pin 1 (TX). Vengono utilizzati per ricevere (RX) e trasmettere (TX) i dati seriali TTL. Questi pin sono collegati ai corrispondenti pin del convertitore USB-seriale ATmega16U2.
- Interrupt Esterni: Pin 2 e pin 3. Questi pin possono essere configurati per attivare un interrupt su un livello logico basso, un fronte di salita o di discesa o cambiamenti di valore. Vedere la funzione attachInterrupt () per i dettagli.
- PWM: Pin 3, 5, 6, 9, 10, e 11. Forniscono una uscita PWM a 8 bit utilizzando la funzione analogWrite ().
- SPI: pin 10 (SS), pin 11 (MOSI), pin 12 (MISO) e pin 13 (SCK). Questi pin vengono utilizzati per la comunicazione SPI tramite la libreria SPI.
- LED: collegato al pin 13. Quando sul pin è presente un livello alto il LED è acceso, un livello basso spegne il led.
La Arduino Uno R3 dispone di 6 ingressi analogici etichettati da A0 a A5, ciascuno di questi pin fornisce una risoluzione a 10 bit (cioè 1024 valori differenti). Per default questi pin effettuano le misure utilizzando come riferimento superiore i 5V e come riferimento inferiore la massa. E' possibile cambiare il riferimento superiore utilizzando il pin AREF e la funzione analogReference ().
Due pin analogici hanno anche alcune funzionalità specializzate:
- Pin A4: SDA (I2C-TWI)
- Pin A5: SCL (I2C-TWI)
Questi pin offrono il supportoTWI (I2C) utilizzando la libreria Wire.
Ci sono altri pin sulla scheda con funzioni dedicate:
- AREF: Tensione di riferimento per gli ingressi analogici. Utilizzato con analogReference ().
- RESET: Un livello basso su questo pin resetta il microcontrollore. Questo ingresso è generalmente utilizzato dal pulsante di reset presente su alcuni shields.
Comunicazione:L'Arduino Uno R3 offre una serie di possibilità per la comunicazione con un computer, un altro Arduino o altri microcontrollori. L'ATmega328 fornisce la comunicazione seriale UART TTL (5V), disponibile sul pin digitali 0 (RX) e 1 (TX). Un ATmega16U2 si occupa della comunicazione seriale via USB e, per il software del computer, appare come una porta COM virtuale. Il firmware dell'ATmega16U2 utilizza i driver USB COM standard e non è necessario alcun driver esterno. Solo per i sistemi operativi Windows è necessario un file .inf. Il software Arduino include un monitor seriale che consente di visualizzare i dati testuali inviati e ricevuti dalla scheda Arduino. Sulla scheda sono presenti i LED RX e TX che lampeggiano quando i dati vengono trasmessi o ricevuti tramite la connessione USB. I LED RX e TX non lampeggiano quando è in corso una comunicazione seriale sui pin 0 e 1.
Tramite la libreria SoftwareSerial è possibile indirizzare la comunicazione seriale TTL a 5V verso qualunque pin della Arduino Uno R3.
L' ATmega328 supporta anche la comunicazione I2C (TWI) e la comunicazione SPI. Il software Arduino include una libreria Wire per semplificare l'uso del bus I2C e una libreria SPI da utilizzare per la comunicazione SPI.
Programmazione:
L'Arduino Uno R3 può essere programmata con il
software di Arduino . Dopo avere lanciato il software selezionare "Arduino Uno" dal menù Strumenti > Scheda.
L'ATmega328 utilizzato sulla Arduino Uno R3 è precaricato con un bootloader che permette di caricare il nuovo codice senza utilizzare di un programmatore hardware esterno. La comunicazione avviene utilizzando il protocollo STK500 originale.
È anche possibile ignorare il bootloader e programmare il microcontrollore attraverso tramite di ICSP (In-Circuit Serial Programming) utilizzando un programmatore Arduino ISP.
E' anche disponibile il codice sorgente del firmware utilizzato per l'ATmega16U2 (o per l'ATmega8U2 utilizzato nelle versioni precedenti della Arduino Uno R3). Questo firmware può essere modificato e caricato con un bootloader DFU, che può essere attivato da:
- Collegando il ponticello di saldatura sul retro della scheda (vicino all'immagine dell'Italia) e resettando l'ATmega8U2.
- Sulle ultime versioni (Arduino Uno R2 e Arduino Uno R3)è presente che forza a livello basso la linea HWB dei microcontrollori ATmega8U2 o ATmega16U2 rendendo più facile utilizzare la modalità DFU.
Dopo avere effettuato questi passaggi è possibile utilizzare l' Atmel FLIP Software o il programmatore DFU (Mac OS X e Linux) per caricare il nuovo firmware.
Reset (Software) Automatico:
Il reset della Arduino Uno R3 (da effettuare prima di caricare un nuovo sketch) può essere effettuato con il pulsante presente sulla scheda oppure tramite il software in esecuzione sul computer collegato alla scheda. Una delle linee di controllo del flusso hardware (DTR) del microprocessore ATmega16U2 è collegata alla linea di reset dell'ATmega328 attraverso un condensatore da 100nF. Quando questa linea è posta a livello basso , viene attivata la procedura di reset per il tempo necessario al ripristino dell'ATmega328. Il software di Arduino utilizza questa funzionalità per consentire di caricare il codice premendo semplicemente il pulsante di caricamento nell'ambiente Arduino. Questo permette al bootloader di essere ben coordinato con l'inizio del caricamento.
Questa configurazione ha altre implicazioni. Quando la Arduino Uno R3 è collegata ad un computer con sistema operativo Mac OS X o Linux e viene effettuata una connessione tramite USB viene generato un impulso di reset della durata di circa 500mS. Per questo motivo occorre attendere almeno 1S prima di caricare un nuovo sketch.
Per disattivare il ripristino automatico occore tagliare su entramvi i lati le piste che fanno capo alle piazzole denominate "RESET-EN". La stessa funzione si ottiene collegando una resistenza da 100 Ohm tra la linea di reset e l'alimentazione a 5V.
Protezione della porta USB:
L'Arduino Uno ha un fusibile ripristinabile che protegge la porta USB del computer dal cortocircuito e dalla sovracorrente. Se dalla porta USB vengono assorbiti più di 500mA il fusibile si interrompe e verrà ripristinato solo dopo avere eliminato il sovraccarico.
Caratteristiche:
- Microcontrollore: ATmega328
- Tensione operativa: 5V
- Tensione di alimentazione: da 7V a 12V (raccomandata)
- Tensione di alimentazione: da 6V a 20V (limite)
- Pin di ingresso e uscita: 14
- Uscite PWM: 6
- Ingressi analogici: 6
- Massimo assorbimento sui pin: 40mA
- Massimo assorbimento per l'uscita a 3,3V: 50mA
- Memoria Flash: 32KB (0,6KB impegnati dal bootloader)
- Memoria statica: 2KB
- EEPROM: 1KB
- Clock: 16MHz
- Dimensioni: 68,6mm x 53,4mm
- Peso: 25g
Documenti: