SlideShare a Scribd company logo
http://forum.arduino.cc/index.php?action=profile;u=58300
CORSO di ELECTRONIC DESIGN AND RAPID
PROTOTYPING
UNIVERSITA’ DEL SALENTO
Dip. Ingegneria dell’Innovazione
Prof. P. Visconti
Argomenti
 Architettura generaledei microcontrollori
 Ambiente disviluppo integrato
 Caratteristiche e elementi di Arduino UNO
 Principali caratteristiche delATmega328P
 Concetti di porte e pin del microcontrollore
 Istruzioni per comandare i pin del microcontrollore
 Nel 2005 un gruppo di ricerca del Italy’s Interaction
Institute of Ivrea ha sviluppato una piattaforma elettronica
basata su microcontrollore destinata a scopi didattici e di
ricerca denominata Arduino. Il nome deriva un bar posto nelle
vicinanze dell’istituto denominato Bar di Re Arduino.
 Dalla sua prima comparsa Arduino ha attirato l’attenzione di
studenti inventori e ingegneri, i quali hanno scritto e
condiviso codice e progettato soluzioni hardware dedicate a
tali schede
Nascita di Arduino
Il primo prototipo funzionante diArduino
Il prototipo “zero” di Arduino,“quando
ancora si chiamava Programma 2003”
Nascita di Arduino
Arduino con interfaccia seriale RS-232
piuttosto che con interfaccia USB
Arduino Duemilanove
Evoluzione di Arduino
Arduino NG (NuovaGenerazione)
Millestone:
 2005 Prima versione della scheda
basata sul microcontrollore AVR
ATmega8 con programmazione e
scambio dati RS232.
 2006 Arduino NG (nuova
generazione).
 2008 Arduino Duemilanove versione
basata sul microcontrollore Atmel
ATmega 328 (raddoppia memoria on-
chip 32kB).
 2010 Arduino Uno basato su
microcontrollore Atmega 328.
 2010 Arduino Mega2560 basato sul
microcontrollore Atmega 2560 porta
la memoria programma on-chip a
disposizione della scheda fino a
256kB, mettendo a disposizione un
maggior numero di GPIO (54) e
aumentate interfacce di
comunicazione.
 2010 Arduino Uno R3 si differenzia
dalla versione 2009 per la presenza di
uno speciale convertitore USB/seriale
che è implementato da un
microcontrollore ATmega8U2 in cui è
integrato un transceiver USB
liberamente programmabile
Arduino Uno Arduino Uno R3
http://arduino.cc/en/Main/Products
ArduinoMega 2560
ArduinoEthernet
ArduinoLeonardo ArduinoYUN
ArduinoNANO
Arduino Due
Arduino Mini
Cos’èArduino?
Arduino è una piattaforma elettronica
hardware dotata di microcontrollore.
In aggiunta, Arduino include un
opportuno software di sviluppo
(Arduino IDE Integrated Development
Enviroment), all’interno del quale è
poter scrivere i programmi
(denominati sketch) che verranno
eseguiti dal microcontrollore.
Piattaforma di sviluppo open source
Open Source Hardware
Open Source Software
Economica e facilmente reperibile
Espandibile tramite «shield»
http://arduino.cc/en/Main/ArduinoBoardUno
OpenHardware
Sistema di espansione ashield
http://shieldlist.org/
PrimadiArduino…
Computer
• Software
• Eclipse
• A
VRStudio 4
•Porte
• Serial
• Parallel
• USB
Programmatore
• Interfaccia
• JTAG/ICE
• ISP
•Programmatore
• Bit-Bang
• ICSP
• AVRISPMk II
Microcontrollore
• Versione
•DIP
•SOIC
•QFN
•Funzioni
•ADC/DAC
•PWM
•USB
Arduino UnoR3
LED
Connettore
USB
JackAlimentazione
Connettori PinDigitali
Pulsante di Riavvio
Microcontrollore
AVR
ATmega328P
Connettori PinAnalogici
Connettori alimentazione
Convertitore
USB-Seriale
Arduino UnoR3
Alimentazione
La scheda Arduino Uno può essere alimentata attraverso la connessione USB oppure con un alimentatore esterno
tramite l'apposito plug.
Come visibile nello schema, la fonte di alimentazione è selezionata automaticamente,
attraverso il circuito formato da uno dei due amplificatori operazionali contenuti
nell’integrato U1 LM358D e dal Mosfet T1 a canale P tipo FDN304.
Connettore USB
Alimentazione
Esterna
Alimentazione con
batteria
<Vin; restituisce la tensione applicata dall'alimentatore al plug e può
essere usato per alimentare altri circuiti che dispongano già di un
regolatore di tensione (ad esempio gli shield applicati al modulo);
<GND; è il contatto di massa (GND).
<5 V; fornisce i 5 volt prelevati dall'uscita del regolatore interno ed è utile
per alimentare altri circuiti compatibili con i 5 volt;
<3.3V; questo pin fornisce i 3,3 volt ricavati dal regolatore corrispondente
e consente di alimentare circuiti compatibili con tensioni di 3,3 volt (la
massima corrente prelevabile e di 150 mA);
Tutte le tensioni sono disponibili sui pin del connettore POWER
Arduino UnoR3
Interfaccia seriale
Per l’interfaccia seriale come già detto nell’ scheda Arduino UNO non utilizza un chip FTDI (il FT232RL (o
alternativamente il CH340 o CH341) per convertire i segnali da USB a seriale TTL e viceversa. È invece utilizzato un
microcontrollore ATmega8U2 in cui è integrato un transceiver USB liberamente programmabile.
ProgrammazioneconAtmega8U2 ProgrammazioneconCH340
In questo modo a differenza del chip della FDTI, per il quale era necessario installare appositi driver, con I'utilizzo
dell'integrato ATmega8U2 ciò non è più necessario, perché sono usati i driver comuni della periferica USB già
disponibili con il sistema operativo. La presenza del connettore ICSP1 permette agli utenti avanzati di riprogrammare il
processore, trasformando la scheda Arduino UNO in un diverso tipo di dispositivo USB. Per esempio si potrà usare
la scheda come tastiera, mouse, disco driver o come un'interfaccia MIDI, ecc Il clock del processore è fornito di
quarzo da 16 MHz Q1.
Microcontrollore
In elettronica digitale il microcontrollore o microcontroller o MCU (MicroController
Unit) è un dispositivo elettronico integrato su singolo chip, nato come evoluzione
alternativa al Microprocessore ed utilizzato generalmente in sistemi embedded ovvero
per applicazioni specifiche di controllo digitale.
http://it.wikipedia.org/wiki/Microcontrollore
ANALOG
INPUTS
AVR(Alf and Vegard RISC
processor)
• Sviluppati daAtmel nel 1996
• Famiglia di Microcontrollori RISC
(reduced instruction setcomputer)
• Istruzioni alunghezzafissa, accessoalla memoria di tipo load-storecon
32 registri general-purpose
• Pipeline adue stadi per velocizzarel’esecuzione
• Esecuzionedella maggior parte delle istruzioni in un solo ciclo di clock
• Fino a12 volte più veloce di una architettura standardCISC
Architettura Harvard
http://it.wikipedia.org/wiki/Architettura_di_von_Neumann
Architettura VonNeumann
Nella macchina di von Neumann:
• dati e istruzioni memorizzati in un’unica memoria che
permette lettura e scrittura;
• la memoria è costituita da celle uguali, indirizzate
dalla loro posizione;
• le istruzioni vengono eseguite in modo sequenziale.
http://it.wikipedia.org/wiki/Architettura_Harvard
Architettura Harvard
Surveyor SRV-1 Blackfin Robot
 L'architettura di Von Neumann si contrappone
all'architettura Harvard nella quale invece i dati
del programma e le istruzioni del programma sono
memorizzati in spazi di memoria distinti.
 Nello specifico i microcontrollori Atmel AVR
utilizzano una memoria flash per la
memorizzazione del programma, mentre una
memoria SRAM (Static RAM) per la
memorizzazione dei dati
AVRMicrocontroller(caratteristiche)
 Memoria Flash programmabile (almeno 10.000 volte) , RAM, EEPROM
interne (scrivibile almeno 100.000 volte)
 Sistema di programmazione interno (ISP)
 Varietà di periferiche: I/O digitali, ADC, Timer, UART, RTC timer, pulse
width modulator (PWM)…
 Clock fino a 20MHz
 Ampia gamma di tensioni di funzionamento: da 1.8 V a 6.0 V.
 Package variabile da 8 pin fino a 64 pin
 Watchdog con oscillatore interno autonomo
 POR (Power On Reset)
 Famiglie
 ATtiny25-45-85, ATtiny24-44-84, ATtiny2313-4313 ...
 ATmega88, ATmega168, ATmega328P ...
 XMega (sigle che iniziano con "ATXMega")
AtmelATmega328P
Versione PDIP
Plastic Dual In-linePackage
Versione SMD
Surface-Mount Device
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet.pdf
CaratteristicheATmega328P
http://arduino.cc/en/Main/ArduinoBoardUno
Caratteristiche ArduinoUno
Tensionedi lavoro deipin
• I Microcontrollori sono fondamentalmente dei dispositivi digitali
dove l’informazione è ‘codificata’in due stati discreti:
• HIGH or LOW (stato logici: 1oppure 0)
Tensioni
• 5 V(per lo stato HIGH)
• 0 V(per lostatoLOW)
• 3.3 V(per lo stato HIGH)
• 0 V(per lostatoLOW)
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet.pdf
Valorimassimi
Schemaablocchi - Architettura internaATmega328
Perifericheinterne
• Memoria Flash (memoria
Programma)
• Memoria SRAM (memoria dati)
• Memoria EEPROM (memoria dati)
• WatchDog Timer
• Interfaccia Seriale
• Interfaccia SPI
• Interfaccia I2C
• Convertitore Analogico –Digitale
• Timers
• Porte/Pin
Memorieintegrate
Architettura Harvard
Flash-program memory
• 32kB
 SRAM-data memory
• 2KB
 EEPROM
• Per dati da
conservare anche in
caso di rimozione
dell’alimentazione.
• Presenza su I/O bus
Memorieintegrate
Flash memory (32KB) (indirizzi da 15bit)
• Utilizzata per la memoria programma-
sola lettura
• Non volatile
• Alloca i dati nella flash utilizzando l
l’attributo PROGMEM
 SRAM (2KB)
• Valori temporanei, stack,etc…
• Memoria volatile
• Dimensione limitata
 EEPROM (1KB)
• Dati a lungo termine
FLASH PROGRAM MEMORY
Visto che tutte le istruzioni AVR sono a 16bit o 32bit, la memoria flash per la
memorizzazione del programma è organizzato in 16K locazioni x 16 bit. Per motivi di
sicurezza del software la memora flash è divisa in due sezioni: la sezione destinata al
bootloader e la sezione destinata alla memoria del programma nel dispositivo. Il
program counter (PC) del ATmega328/P è largo 14bits, in modo da indirizzare le 16K
locazioni di memoria programma.
SRAM Data Memory
Ci sono 5 metodi di indirizzamento:
• Diretto;
• Indiretto con spostamento;
• Indiretto;
• Indiretto con pre-incremento;
• Indiretto con post-incremento
Le 2303 locazioni di memoria dati più basse indirizzano sia i Register File, la
memoria I/O, la memoria I/O estesa e i dati della SRAM. Le prime 32 locazioni
indirizzano i Register File, le successive 64 locazioni indirizzano la memoria I/O ,
dopo 160 locazioni della memoria I/O estesa, e i successivi 2K locazioni indirizzano i
dati della SRAM.
GeneralPurposeRegister
SRAM Data Memory
GeneralPurposeRegister
SRAM Data Memory
SRAM Data Memory
SRAM Data Memory
SRAM Data Memory
SRAM Data Memory
SRAM Data Memory
SRAM Data Memory
SRAM Data Memory
AVR CPU
• Caricamento istruzione
dalla memoria
programma (Fetch)
• Caricamento dati dalla
memoria dalla memoria
dai registri.
• Decodifica dell’istruzione
(Decode)
AVR CPU
• Esecuzione
istruzione (Execute)
AVR CPU
SRAM Data Memory
L’accesso alla memoria SRAM è eseguito in due cicli di clock come descritto nella
figura seguente:
Porte ePindelMicrocontrollore
Costituiscono il canale di
comunicazione del flusso di
informazioni da e per il
microcontrollore.
Pin Digitali della scheda Arduino (pin
microcontrollore):
• Pins 0 – 7: PORT D [0:7] (pin 2-6,11-13)
• Pins 8 – 13: PORT B [0:5] (pin 14-19)
• Pins 14 – 19: PORT C [0:5] (pin 1, 23-28)
(configurabili anche come pin analogici)
• I pin digitali 0 e 1 sono RX and TX per la
comunicazione seriale
• il pin digitale 13 è connesso anche ad un
LED integrato sulla scheda
Es. PORTB
• Pins PB0 – PB7 Possono non essere contigui
• spesso sono bidirezionali.
Un insieme di pin
definisce una porta del
microcontrollore
SchemaATmega328PDIP
http://forum.arduino.cc/index.php/topic,146315.0.html
Nome
Pin
Funzioni
Speciali
Numero
Pin
http://forum.arduino.cc/index.php/topic,146315.0.html
Schemaatmega328SMD

More Related Content

PPTX
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Sardegna Ricerche
 
PDF
Arduino 2- Slide descrizione Architettura
robertodefazio3
 
PDF
Introduzione ad Arduino del Maker DevLab
Biagio (Gino) Zingales Alì
 
PDF
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Ionela
 
PPTX
2 e1 arduino_nuovo artigianato
ITIS "Leonardo da Vinci" - Napoli
 
PDF
LinoLab - Laboratorio di Arduino
Matteo Troìa
 
PDF
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Mauro Alfieri
 
ODP
Anatomia di un'istruzione in Arduino Pt.1
µhack
 
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Sardegna Ricerche
 
Arduino 2- Slide descrizione Architettura
robertodefazio3
 
Introduzione ad Arduino del Maker DevLab
Biagio (Gino) Zingales Alì
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Ionela
 
2 e1 arduino_nuovo artigianato
ITIS "Leonardo da Vinci" - Napoli
 
LinoLab - Laboratorio di Arduino
Matteo Troìa
 
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Mauro Alfieri
 
Anatomia di un'istruzione in Arduino Pt.1
µhack
 

Similar to SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf (20)

PDF
Corso Arduino Base - MUST
OPS Italia
 
PPTX
Arduino ICT2016 [IT]
Francesco Pascale
 
PPTX
Arduino primo v1
Elisa Rubino
 
PDF
Csp@scuola uav corso1_lez2
CSP Scarl
 
PDF
Introduzione a Arduino
Pietro Aiuola
 
ODP
OpenHardware : Arduino
NaLUG
 
PDF
Lezione 2 arduino - corso 20 ore
Mirko Mancin
 
PDF
Electronics LAB [with Arduino] | DAY 1
Daniele Costarella
 
PDF
Electronics LAB [with Arduino] | DAY 1
Salvatore Carotenuto
 
PDF
Arduino prima spiegazione
Flaviano Fior
 
KEY
Introduzione ad Arduino
Simone Lusenti
 
PDF
Csp@scuola uav corso1_lez3
CSP Scarl
 
PDF
Lezione 1 arduino - corso 20 ore
Mirko Mancin
 
PDF
Modelli arduino
Demetrio Siragusa
 
PDF
Software libero nei sistemi embedded
Daniele Costarella
 
PDF
Arduino day 2017
Enrico La Sala
 
PDF
Lezione introduttiva su Arduino
Mirko Mancin
 
PPT
DHow2 - L4
Marco Santambrogio
 
PDF
Open Hardware: Arduino, un prodotto italiano
Riccardo Lemmi
 
PDF
Arduino lezione 01 - a.s 2010-2011
Michele Maffucci
 
Corso Arduino Base - MUST
OPS Italia
 
Arduino ICT2016 [IT]
Francesco Pascale
 
Arduino primo v1
Elisa Rubino
 
Csp@scuola uav corso1_lez2
CSP Scarl
 
Introduzione a Arduino
Pietro Aiuola
 
OpenHardware : Arduino
NaLUG
 
Lezione 2 arduino - corso 20 ore
Mirko Mancin
 
Electronics LAB [with Arduino] | DAY 1
Daniele Costarella
 
Electronics LAB [with Arduino] | DAY 1
Salvatore Carotenuto
 
Arduino prima spiegazione
Flaviano Fior
 
Introduzione ad Arduino
Simone Lusenti
 
Csp@scuola uav corso1_lez3
CSP Scarl
 
Lezione 1 arduino - corso 20 ore
Mirko Mancin
 
Modelli arduino
Demetrio Siragusa
 
Software libero nei sistemi embedded
Daniele Costarella
 
Arduino day 2017
Enrico La Sala
 
Lezione introduttiva su Arduino
Mirko Mancin
 
DHow2 - L4
Marco Santambrogio
 
Open Hardware: Arduino, un prodotto italiano
Riccardo Lemmi
 
Arduino lezione 01 - a.s 2010-2011
Michele Maffucci
 
Ad

SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf