Power
L’Arduino Leonardo può essere alimentato tramite la connessione micro USB o con un alimentatore esterno. La fonte di alimentazione viene selezionata automaticamente.
L’alimentazione esterna (non USB) può provenire da un adattatore AC-to-DC (wall-wart) o da una batteria. L’adattatore può essere collegato inserendo una spina centro-positiva da 2,1 mm nel jack di alimentazione della scheda. I cavi di una batteria possono essere inseriti nelle intestazioni dei pin Gnd e Vin del connettore POWER.
I pin di alimentazione sono i seguenti:
- VIN. La tensione di ingresso alla scheda Arduino quando sta usando una fonte di alimentazione esterna (in contrasto con i 5 volt dalla connessione USB o da un’altra fonte di alimentazione regolata). È possibile fornire tensione attraverso questo pin, o, se si fornisce tensione attraverso il jack di alimentazione, accedere attraverso questo pin.
- 5V. L’alimentazione regolata usata per alimentare il microcontrollore e altri componenti sulla scheda. Questo può provenire sia da VIN tramite un regolatore a bordo, o essere fornito da USB o un’altra alimentazione regolata 5V.
- 3V3. Un’alimentazione a 3,3 volt generata dal regolatore di bordo. L’assorbimento massimo di corrente è di 50 mA.
- GND. Pin di terra.
- IOREF. La tensione alla quale i pin di i/o della scheda sono operativi (cioè VCC per la scheda). Questo è 5V sulla Leonardo.
Memoria
L’ATmega32u4 ha 32 KB (con 4 KB usati per il bootloader). Ha anche 2,5 KB di SRAM e 1 KB di EEPROM (che può essere letto e scritto con la libreria EEPROM).
Input e Output
Ognuno dei 20 pin digitali i/o del Leonardo può essere usato come input o output, usando le funzioni pinMode(), digitalWrite(), e digitalRead(). Essi operano a 5 volt. Ogni pin può fornire o ricevere un massimo di 40 mA e ha una resistenza di pull-up interna (scollegata per default) di 20-50 kOhms. Inoltre, alcuni pin hanno funzioni specializzate:
- Seriale: 0 (RX) e 1 (TX). Utilizzato per ricevere (RX) e trasmettere (TX) dati seriali TTL utilizzando la capacità seriale hardware diATmega32U4. Nota che sul Leonardo, la classe Serial si riferisce alla comunicazione USB (CDC); per la seriale TTL sui pin 0 e 1, usa la classe Serial1.
- TWI: 2 (SDA) e 3 (SCL). Supporta la comunicazione TWI usando la libreria Wire.
- Interrupt esterni: 3 (interrupt 0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt 3) e 7 (interrupt 4). Questi pin possono essere configurati per innescare un interrupt su un valore basso, un bordo ascendente o discendente, o un cambiamento di valore. Vedere la funzione attachInterrupt() per i dettagli.
- PWM: 3, 5, 6, 9, 10, 11 e 13. Forniscono un’uscita PWM a 8 bit con la funzione analogWrite().
- SPI: sull’intestazione ICSP. Questi pin supportano la comunicazione SPI usando la libreria SPI. Notate che i pin SPI non sono collegati a nessuno dei pin di I/O digitali come sono sull’Uno, sono disponibili solo sul connettore ICSP. Questo significa che se avete uno shield che usa SPI, ma NON ha un connettore ICSP a 6 pin che si collega all’header ICSP a 6 pin del Leonardo, lo shield non funzionerà.
- LED: 13. C’è un LED integrato collegato al pin digitale 13. Quando il pin è di valore HIGH, il LED è acceso, quando il pin è LOW, è spento.
- Ingressi analogici: A0-A5, A6 – A11 (sui pin digitali 4, 6, 8, 9, 10 e 12). Il Leonardo ha 12 ingressi analogici, etichettati da A0 a A11, che possono essere utilizzati anche come i/o digitale. I pin A0-A5 appaiono nelle stesse posizioni come sull’Uno; gli ingressi A6-A11 sono sui pin di i/o digitale 4, 6, 8, 9, 10 e 12 rispettivamente. Ogni ingresso analogico fornisce 10 bit di risoluzione (cioè 1024 valori diversi). Per impostazione predefinita gli ingressi analogici misurano da terra a 5 volt, anche se è possibile cambiare l’estremità superiore della loro gamma utilizzando il pin AREF e la funzione analogReference().
Ci sono un paio di altri pin sulla scheda:
- AREF. Tensione di riferimento per gli ingressi analogici. Usato con analogReference().
- Reset. Porta questa linea a BASSO per resettare il microcontrollore. Tipicamente usato per aggiungere un pulsante di reset agli shield che bloccano quello sulla scheda.
Vedi anche la mappatura tra i pin Arduino e le porte ATmega32u4.
Comunicazione
La Leonardo ha una serie di strutture per comunicare con un computer, un altro Arduino, o altri microcontrollori. L’ATmega32U4 fornisce una comunicazione seriale UART TTL (5V), che è disponibile sui pin digitali 0 (RX) e 1 (TX). Il 32U4 permette anche la comunicazione seriale (CDC) su USB e appare come una porta com virtuale al software sul computer. Il chip agisce anche come un dispositivo USB 2.0 a piena velocità, utilizzando i driver standard USB COM. Su Windows, è richiesto un file .inf. Il software Arduino include un monitor seriale che permette di inviare semplici dati testuali da e verso la scheda Arduino. I LED RX e TX sulla scheda lampeggiano quando i dati vengono trasmessi attraverso la connessione USB al computer (ma non per la comunicazione seriale sui pin 0 e 1). Una libreria SoftwareSerial permette la comunicazione seriale su qualsiasi pin digitale di Leonardo. L’ATmega32U4 supporta anche la comunicazione I2C (TWI) e SPI. Il software Arduino include una libreria Wire per semplificare l’uso del bus I2C; vedi la documentazione per i dettagli. Per la comunicazione SPI, usa la libreria SPI. Leonardo appare come una tastiera e un mouse generici, e può essere programmato per controllare questi dispositivi di input usando le classi Keyboard e Mouse.
Programmazione
Il Leonardo può essere programmato con il software Arduino (download). Seleziona “Arduino Leonardo dal menu Tools > Board (a seconda del microcontrollore sulla tua scheda). Per i dettagli, vedi il riferimento e i tutorial. L’ATmega32U4 sull’Arduino Leonardo è precaricato con un bootloader che ti permette di caricare nuovo codice senza l’uso di un programmatore hardware esterno. Comunica utilizzando il protocollo AVR109. Puoi anche bypassare il bootloader e programmare il microcontrollore attraverso l’header ICSP (In-Circuit Serial Programming) usando Arduino ISP o simili; vedi queste istruzioni per i dettagli.
Reset automatico (software) e avvio del bootloader
Piuttosto che richiedere una pressione fisica del pulsante di reset prima di un caricamento, Leonardo è stato progettato in modo da poter essere resettato dal software in esecuzione su un computer collegato. Il reset viene innescato quando la porta virtuale (CDC) seriale / COM di Leonardo viene aperta a 1200 baud e poi chiusa. Quando questo accade, il processore si resetta, rompendo la connessione USB al computer (il che significa che la porta virtuale seriale / COM scomparirà). Dopo il reset del processore, il bootloader si avvia, rimanendo attivo per circa 8 secondi. Il bootloader può anche essere avviato premendo il pulsante di reset sulla Leonardo. Si noti che quando la scheda si accende per la prima volta, salterà direttamente allo sketch utente, se presente, piuttosto che avviare il bootloader.
A causa del modo in cui la Leonardo gestisce il reset, è meglio lasciare che il software Arduino provi ad avviare il reset prima di caricare, specialmente se hai l’abitudine di premere il pulsante di reset prima di caricare su altre schede. Se il software non riesce a resettare la scheda puoi sempre avviare il bootloader premendo il pulsante di reset sulla scheda.
Protezione da sovracorrente USB
La Leonardo ha un polifusibile ripristinabile che protegge le porte USB del vostro computer da cortocircuiti e sovracorrenti. Anche se la maggior parte dei computer fornisce la propria protezione interna, il fusibile fornisce un ulteriore livello di protezione. Se alla porta USB vengono applicati più di 500 mA, il fusibile interrompe automaticamente la connessione finché il corto o il sovraccarico non viene rimosso.
Caratteristiche fisiche
La lunghezza e la larghezza massima del PCB Leonardo sono rispettivamente 2.7 e 2.1 pollici, con il connettore USB e il jack di alimentazione che si estendono oltre la prima dimensione. Quattro fori per le viti permettono di fissare la scheda a una superficie o a un case. Si noti che la distanza tra i pin digitali 7 e 8 è di 160 mil (0,16″), non un multiplo pari della distanza di 100 mil degli altri pin.