Arduino uno e i sensori
Logo audio valvole
Banner Audiovalvole
Compra Audiovalvole eBook su lulu.com

Il microcontrollore Arduino UNO

Arduino uno: Microcontrollori e microprocessori

Qual'è la differenza fra un microcontrollore (o microcontroller o MCU=MicroController Unit) e un microprocessore?
Il microcontroller integra tutta una serie di funzioni (su un unico chip) che lo rendono adatto ad interfacciarsi con il mondo esterno, come ad esempio uscire analogiche, digitali, pwm, ingressi digitali e analogici (ADC).
Inoltre il microcontrollore contiene al suo interno tutto quello che in genere serve per memorizzare il programma e eseguirlo, come ram, eprom, eeprom, rom, ecc..
Quindi un microcontrollore è progettato per interagire direttamente con il mondo esterno tramite un programma residente nella propria memoria interna e mediante l'uso di pin specializzati o configurabili dal programmatore.
Riassumendo il microprocessore integra sul chip solo la logica di elaborazione mentre richiede sempre delle unità esterne, memorie, gestori di segnali e dispositivi periferici per poter scambiare informazioni e interagire con l'esterno, il microcontrollore è invece un sistema completo, che integra in uno stesso chip il processore, la memoria permanente, la memoria volatile e i canali (pin) di I/O, oltre ad eventuali altri blocchi specializzati.

Arduino uno: di cosa si tratta?

Arduino Uno è una scheda basata su microcontrollore Atmel ATmega328 che permette la realizzazione di diversi circuiti elettronici anche complessi con una certa facilità.
Le caratteristiche salienti di detta scheda sono riportate di seguito:

Processore Arduino UnoAtmel ATmega328
Tensione di lavoro5Vdc
Assorbimento a vuoto (solo arduino UNO) 40-50mA
Tensione di alimentazione consigliata da 7Vdc a 12Vdc alimentabile con alimentatore esterno o via USB direttamente dal computer.
Pin digitali 14 configurabili via software come ingressi o uscite (6 utilizzabili come uscite PWM)
Pin analogici 6 ingressi
Massima corrente per pin digitale 40 mA massima
Memoria Flash32KB
Memoria Sram2KB
Memoria EEPROM1KB
Velocità di clock del microcontrollore16MHz

La potenza di arduino uno non permette di fare elaborazioni video o campionamento di audio ad alta risoluzione, tuttavia è sufficiente per tutta una serie di sensori ed altre applicazioni anche relativamente complesse, specie se supportato da circuiti aggiuntivi progettati allo scopo di evitare al microcontrollore le più gravose operazioni.
Inoltre si tratta di un microcontrollore monotask, ovvero può svolgere una operazione per volta.
Quindi occorre adottare uno stile di programmazione che si adatti alle caratteristiche.

Arduino uno nei particolari

Arduino UNO
Figura N.1

Descrizione dei pin di arduino UNO in ardine dal lato sinistro a quello destro dall'alto al basso

Nome del pin (scritta in bianco)

Funzione

Utilizzo

Alimentazione

Collegamento per alimentatore esterno.
Tensione consigliata da 7 a 12V.
Tensione operativa limite 6-20V.

Alimentazione con alimentatore esterno.

USB

Collegamento USB con il computer.
Serve per l'alimentazione di arduino, per il collegamento seriale, sia per il monitor seriale che per la programmazione di Arduino UNO.

Alimentazione, programmazione, monitor seriale.

Non Collegato

Pin non collegato previsto per future funzioni aggiuntive

NN

IOREF

Uscita con tensione uguale allo stato logico uno utilizzata per gestire la compatibilità degli shields con i livelli logici delle varie versioni di arduino.
Per esempio Vin in arduino uno è 5V che corrisponde allo stato logico uno (o alto), per arduino DUE Vin è 3,3V.

 

RESET

Reset di Arduino UNO.
Il reset si ottiene portando a livello basso lo stato logico di questo pin.

Reset di Arduino UNO

3,3

Alimentazione stabilizzata da 3,3 Volt per alimentare dispositivi esterni

Uscita alimentazione

5

Alimentazione stabilizzata da 5 Volt per alimentare dispositivi esterni

Uscita alimentazione

GND

Massa di Arduino UNO.
Da collegarsi alla massa dei dispositivi esterni

Massa (riferimento 0 Volt)

GND

Massa di Arduino UNO.
Da collegarsi alla massa dei dispositivi esterni

Massa (riferimento 0 Volt)

Vin

Tensione di alimentazione per arduino uno in parallelo al connettore di alimentazione.
Tensione consigliata da 7 a 12V.
Tensione operativa limite 6-20V.

Gestione Livelli logici dispositivi esterni

A0 (Ingresso Analogico)

Ingresso analogico per convertitore ADC con conversione a 10 bit (1024 valori)

Ingresso Analogico

A1 (Ingresso Analogico)

Ingresso analogico per convertitore ADC con conversione a 10 bit (1024 valori)

Ingresso Analogico

A2 (Ingresso Analogico)

Ingresso analogico per convertitore ADC con conversione a 10 bit (1024 valori)

Ingresso Analogico

A3 (Ingresso Analogico)

Ingresso analogico per convertitore ADC con conversione a 10 bit (1024 valori)

Ingresso Analogico

A4 (Ingresso Analogico)

Ingresso analogico per convertitore ADC con conversione a 10 bit (1024 valori)

Ingresso Analogico

A5 (Ingresso Analogico)

Ingresso analogico per convertitore ADC con conversione a 10 bit (1024 valori)

Ingresso Analogico

0 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

1 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

2 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

3 (Digital i/o, PWM)

Ingresso/uscita digitale con possibilità di uscita PWM a 8 bit.
(il settaggio per ingresso, uscita o pwm si esegue via software)

I/O digitale, PWM

4 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

5 (Digital i/o, PWM)

Ingresso/uscita digitale con possibilità di uscita PWM a 8 bit.
(il settaggio per ingresso, uscita o pwm si esegue via software)

I/O digitale, PWM

6 (Digital i/o, PWM)

Ingresso/uscita digitale con possibilità di uscita PWM a 8 bit.
(il settaggio per ingresso, uscita o pwm si esegue via software)

I/O digitale, PWM

7 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

8 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

9 (Digital i/o, PWM)

Ingresso/uscita digitale con possibilità di uscita PWM a 8 bit.
(il settaggio per ingresso, uscita o pwm si esegue via software)

I/O digitale, PWM

10 (Digital i/o, PWM)

Ingresso/uscita digitale con possibilità di uscita PWM a 8 bit.
(il settaggio per ingresso, uscita o pwm si esegue via software)

I/O digitale, PWM

11 (Digital i/o, PWM)

Ingresso/uscita digitale con possibilità di uscita PWM a 8 bit.
(il settaggio per ingresso o uscita o pwm si esegue via software)

I/O digitale, PWM

12 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

13 (Digital I/O)

Ingresso/uscita digitale (il settaggio per ingresso o uscita si esegue via software)

I/O digitale

GND

Massa di Arduino UNO.
Da collegarsi alla massa dei dispositivi esterni

Massa (riferimento 0 Volt)

AREF

Riferimento in tensione per il convertitore analogico digitale.
Se sugli ingressi analogici abbiamo un valore da convertire in digitale che è più basso dei 5V si può migliorare la conversione mettendo su AREF una tensione uguale a quella massima che assume il segnale da convertire.

Ingresso riferimento tensione ADC

NN

Pin non collegato previsto per future funzioni aggiuntive

NN

NN

Pin non collegato previsto per future funzioni aggiuntive

NN

Tensioni e correnti

L'arduino UNO può essere alimentato via USB o con un alimentatore sterno.
L'alimentazione è scelta automaticamente.
L'alimentazione esterna (non USB) può essere indistintamente un alimentatore o un pacco batterie.
L'alimentazione può essere collegata usando un plug oppure collegandosi al piedino Vin.
La scheda può funzionare con una alimentazione esterna da 6 a 20 Volt, tuttavia in funzione della corrente richiesta il regolatore presente sulla scheda deve dissipare una potenza proporzionale alla tensione di alimentazione e alla corrente, quindi attenzione a non surriscaldarlo.
Si consiglia quindi di mantenersi in un range che va da 7 a 12 Volt.


I pin di alimentazione sono i seguenti:

Memoria

La memoria disponibile sul microcontrollore ATmega328 è la seguente:

Input/Output

Ognuno dei 14 pin digitali di arduino può essere settato come ingresso o uscita.
Operano a 5V e possono fornire o assorbire (livello logico 0) una corrente di 40 mA (20 mA consigliata).
Questi pin hanno un resistore di pull-up di 20-50 KΩ (disconnesso per default).
Alcuni di questi pin hanno funzioni particolari che ora descriveremo:

Connettore ICSP (In-Circuit Serial Programming)

Si tratta di un connettore visibile sulla figura N.1 nel punto contrassegnato con "B".

Connettore ICSP (In-Circuit Serial Programming)
Figura N.2
I microcontrollori in particolare se SMD (Surface Mount Chip) sono in genere saldati direttamente sul PCB.
Per quello che riguarda arduino UNO il microcontrollore è posto su uno zoccolo , quindi rimpiazzabile (tranne per qualche eccezione riguardante alcuni cloni che utilizzano la versione SMD del micocontrollore ATmega328 che è saldato direttamente sul PCB).
Per la programmazione la scheda arduino UNO utilizza la presa USB, ma per fare in modo che il computer possa colloquiare con arduinousando il connettore USB vi è una porzione di codice caricata sul microcontrollore chiamata bootloader.
Se noi mettiamo sulla scheda arduino un microcontrollore nuovo il bootloader non è caricato ed occorre caricarlo utilizzando un programmatore e il connettore ICSP.
Inoltre il connettore ICSP può essere utilizzato per collegare periferiche SPI (per questo utilizzo fare riferimento alla figura n.2)
Inizio Pagina