Arduino Leonardo dizajnovo nadväzuje na Arduino Uno. Líši sa však použitým čipom a tým je ATmega32u4.
Mikrokontrolér ATmega32u4 má vstavané USB rozhranie, takže pre komunikáciu s počítačom už nie je potrebné používať ďalšie špeciálne obvody. Leonardo sa k pripojenému počítaču môže javiť buď ako myš alebo klávesnica.
Špecifikácia
Mikroprocesor | ATmega32u4 |
Max. napätie I/O pinov | 5V |
Napájanie dosky (doporučené) | 7-12V |
Napájanie dosky (min/max) | 6-20V |
Digitálne I/O piny | 20 (z toho je 7 PWM výstupov) |
PWM piny (8-bit) | 7 (D3, D5, D6, D9, D10, D11, D13) |
Analogové piny (10-bit) | 12 (A0~A5 + A6~A11 = D4 D6 D8 D9 D10 D12) |
DC prúd na I/O pin | 40 mA |
DC prúd z 3.3V pin | 50 mA |
Flash pamäť | 32 KB z toho 4 KB pre bootloader |
SRAM | 2,5 KB |
EEPROM | 1 KB |
Frekvencia mikroprocesora | 16 MHz |
LED_BUILTIN | 13 (integrovaná LED na pine) |
Dĺžka | 68.6 mm |
Šírka | 53.4 mm |
Váha | 25 g |
Napájanie
Doska Arduino Leonardo môže byť napájaná cez micro USB konektor z počítača alebo z externého napájacieho zdroja. Spôsob napájania sa volí automaticky. Pre externé napájanie (nie z portu USB) môžeme použiť zásuvkový sieťový adaptér alebo akumulátor (batériu) vhodného napätia. Adaptér (aj batérie) sa pripája k doske pomocou súosého napájacieho konektora s priemerom stredného kolíka 2,1 mm. Kladný pól napájania sa pripojí na tento kolík. Vodiče batérie môžeme pripojiť tiež do pinov radového konektora, ktoré sú označené GND a Vin.
Doska Arduino Leonardo môže pracovať s externým napájacím napätím v rozsahu 6 až 20 voltov. Pokiaľ však bude vstupné napätie menšie ako 7V, nemusí už spoľahlivo pracovať vnútorný 5V stabilizátor a doska môže byť nestabilná. Pri použití napätia väčšieho ako 12V sa môže stabilizátor napätia prehriať a môže dôjsť k poškodeniu dosky. Odporúčaný rozsah napájacieho napätia je teda 7 až 12 voltov. Napájacie piny sú nasledovné:
- Vin: napájací pin, na ktorý sa pripája vstupné nestabilizované napätie pri použití externého napájacieho zdroja. Napájacie napätie môžete priviesť na tento pin alebo (ak má zdroj napájania zodpovedajúci konektor) na súosý konektor 5,5 / 2,1mm. Kladný pól napájania sa vždy pripája na stredný kolík tohto konektora.
- 5V: výstup stabilizovaného napájacieho napätia, ktoré slúži na napájanie mikrokontroléra a ďalších súčiastok na doske. Toto napätie je doske dodávané stabilizátorom namontovaným na doske alebo môže byť privedené z konektora USB alebo iného stabilizovaného zdroja.
- 3V3: výstup napätia 3,3 V, ktoré je dodávané stabilizátorom, namontovaným na doske. Prúdový odber z tohto pinu môže byť maximálne 50 mA.
- GND: uzemnenie (0V).
- IOREF: pracovné napätie I/O pinov na doske (t.j. Vcc na doske). Pre Arduino Leonardo je to 5 V.
Pamäť
Mikrokontrolér ATmega32u4 má k dispozícii 32 kB vnútornej FLASH pamäte, z ktorej sú 4 kB použité pre zavádzač (bootloader). Mikrokontrolér tiež má k dispozícii 2,5 kB SRAM a 1 kB EEPROM, ktoré môžu byť programovo čítané a zapisované, ak použijeme zodpovedajúce programové knižnice (EEPROM).
Vstupy a výstupy
Každý z 20 pinov na doske Arduino Leonardo je možné použiť ako vstupné alebo výstupné. Ich funkcie sa nastavujú pomocou príkazov pinMode(), digitalWrite() a digitalRead(). Pracovné napätie týchto pinov je 5 voltov. Každý z pinov môže dodávať alebo odoberať prúd o maximálnej veľkosti 40 mA a môže na neho byť programovo pripojený pull-up rezistor o veľkosti 20 až 50kΩ, ktorý je obsiahnutý v internej štruktúre mikrokontroléru. V predvolenom nastavení mikrokontroléra sú tieto pull-up rezistory odpojené. Niektoré z pinov na doske majú ešte ďalšie špecializované funkcie:
Sériová linka
pin 0 (RX) a pin 1 (TX). Používa sa pre príjem (RX) a vysielanie (TX) sériových dát v úrovniach TTL pomocou hardvérového sériového rozhrania mikrokontroléru ATmega32u4. Dajte pozor, pretože trieda Serial, určená pre sériovú komunikáciu Arduino Leonardo, odkazuje na USB (CDC) komunikáciu. Pre sériovú komunikáciu v úrovniach TTL na pinoch 0 a 1 použite triedu Serial1.
Externé prerušenie
pin 2 a 3. Tieto piny môžu byť konfigurované tak, aby spustili prerušenie pri nízkej hodnote 0V (low) alebo pri nábežnej hrane z 0V na 5V (rising) alebo pri klesajúcej hrane z 5V na 0V (falling) alebo pri zmene hodnoty (change). Viac informácií nájdete vo funkcii attachInterrupt().
PWM
piny 3, 5, 6, 9, 10, 11 a 13 poskytujú 8-bitový PWM výstup funkciou analogWrite().
SPI
toto rozhranie je vyvedené na samostatný ICSP konektor. Komunikácia týmto rozhraním je podporovaná knižnicou SPI. Všimnite si, že piny SPI rozhrania nie sú pripojené na žiadne I/O piny a sú k dispozícii iba na samostatnom konektore ICSP. To znamená, že ak máte shield, ktorý používa SPI, ale nemá 6-pinový ICSP konektor, ktorým by sa pripájal na 6-pinový ICSP konektor na doske Arduino Leonardo, nebude shield fungovať.
LED
pin 13. Na doske je zabudovaná LED dióda do série s rezistorom a je pripojená k digitálnemu pinu 13. Keď je na pine hodnota high, tak LED svieti, keď je na pine hodnota low, tak LED nesvieti.
I2C/TWI
pin SDA a pin SCL. Podpora i2C/TWI komunikácie pomocou knižnice Wire.
Analógové vstupy
A0 - A5 a A6 - A11 (na digitálnych pinoch 4, 6, 8, 9, 10 a 12). Arduino Leonardo má k dispozícii 12 analógových vstupov, označených ako A0 až A11. Všetky je možné použiť tiež ako digitálny I/O pin. Piny A0 - A5 sú umiestnené na rovnakých pozíciách ako u Arduino Uno, analógové vstupy A6 - A11 sú na digitálnych I/O pinoch 4, 6, 8, 9, 10 a 12. Všetky analógové vstupy majú 10-bitové rozlíšenie (môžu nadobúdať 1024 hodnôt). Referenčné napätie pre analógové vstupy je v základnom nastavení pripojené na 5 voltov, ale je možné jeho veľkosť zmeniť privedením externého napätia na pin Aref a použitím funkcie analogReference().
Aref
referenčné napätie pre analógové vstupy. Používa sa s funkciou analogReference().
Reset
privedením nízkej logickej úrovne na tento pin dôjde k resetovanie mikrokontroléru. Obvykle sa tento pin používa pre pridanie resetovacieho tlačidla na SHIELD, ktoré blokujú resetovacie tlačidlo na základnej doske.
Komunikačné rozhranie
Arduino Leonardo má množstvo prostriedkov pre komunikáciu s počítačom, iným Arduinom alebo s inými mikrokontrolérmi. Čip ATmega32u4 ponúka UART TTL (5V) pre sériovú komunikáciu, ktorá je dostupná na digitálnych pinoch 0 (RX) a 1 (TX). ATmega32u4 tiež umožňuje sériovú (CDC) komunikáciu cez USB, ktorý sa pre softvér v počítači javí ako virtuálny COM port. ATmega32u4 sa tiež chová ako plnohodnotné zariadenie štandardu USB 2.0, ktoré môže používať štandardné USB COM ovládače.
Softvér Arduino IDE obsahuje monitor sériovej linky, ktorý umožňuje jednoduché odosielanie dát v textovom formáte do a z dosky Arduino Leonardo. LED označené RX a TX na doske budú blikať len ak sú dáta prenášané cez USB rozhranie smerom do počítača, ale nie pri sériovej komunikácii na pinoch 0 a 1.
Knižnica SoftwareSerial umožňuje sériovú komunikáciu na niektorom z digitálnych pinov.
Mikrokontrolér ATmega32u4 tiež podporuje I2C (TWI) a SPI komunikáciu. Softvér Arduino IDE obsahuje knižnicu Wire pre zjednodušenie použitia zbernice I2C - podrobnosti nájdete v dokumentácii. Pre SPI komunikáciu používajte knižnicu SPI.
Arduino Leonardo môže byť naprogramované pomocou tried Keyboard a Mouse a pripojené k nadradenému počítaču cez rozhranie USB tak, že sa chová ako klávesnica alebo myš štandardu HID.
Programovanie
Doska Arduino Leonardo môže byť naprogramovaná softvérom Arduino IDE. Pri výbere typu pripojenej dosky vyberte “Arduino Leonardo” z ponuky Tools > Board.
V mikrokontroléry ATmega32u4 na doske Leonardo je už naprogramovaný zavádzač, ktorý vám umožní nahrať nový programový kód do mikrokontroléra bez použitia externého programátora. Komunikuje pomocou protokolu AVR109.
Zavádzač v mikrokontroléry však môžete tiež obísť a program doň vložiť cez rozhranie ICSP (In-Circuit Serial Programming).
Automatický (programový) reset a inicializácia zavádzača
Aby nebolo nutné pred každým vkladaním nového programu stlačiť tlačidlo reset, je Arduino Leonardo navrhnuté tak, že umožňuje diaľkový programový reset softvérom bežiacim na pripojenom počítači. Reset je aktivovaný, keď je Leonardov virtuálny (CDC) sériový COM port otvorený pre komunikačnú rýchlosť 1200 baud a následne uzavretý. Keď sa to stane, procesor sa resetuje a preruší sa pripojenie USB k počítaču (čo znamená, že virtuálny sériový COM port zmizne). Potom procesor znova resetuje, spustí sa zavádzač, ktorý zostane aktívny po dobu asi 8 sekúnd.
Zavádzač môže byť aktivovaný tiež stlačením tlačidla reset. V prípade, keď sa na dosku Arduino Leonardo pripojí napájacie napätie, nespustí sa zavádzač, ale Arduino Leonardo sa najprv pokúsi spustiť v pamäti procesora nahraný užívateľský program. Zavádzač sa spustí až v prípade, že v pamäti žiadny užívateľský program nie je nájdený.Pri nahrávaní programu do dosky Arduino Leonardo je najjednoduchšie nechať softvér Arduino IDE mikrokontrolér programovo resetovať. Ak sa zavádzač napriek tomu nespustí, inicializujte ho ručne stlačením tlačidla reset.
Nadprúdová ochrana rozhrania USB
Na originál doske Arduino Leonardo sú inštalované vratné polovodičové poistky, ktoré chránia USB porty nadradeného počítača proti skratu a preťaženiu. Aj keď väčšina počítačov má svoju vlastnú vnútornú ochranu, poistka na doske poskytuje ďalšiu úroveň ochrany. Ak je prúd, odoberaný z portu USB väčší ako 500mA, poistka automaticky preruší obvod až do doby odstránenia poruchy.
Rozmery
Maximálna dĺžka a šírka plošného spoja Leonardo je 68,5 mm a 53,5 mm, ale USB konektor a napájací konektor tento obrys presahujú. Štyri otvory v plošnom spoji umožňujú jeho ľahkú montáž do zariadení alebo krabičky. Dajte pozor na vzdialenosť medzi digitálnymi piny 7 a 8, ktorá je 4 mm (160 mil) a nie 2,54 mm (100 mil) ako u ostatných pinov.
Dokumentácia Arduino Leonardo
Arduino Leonardo je open-source hardvér. Môžete si vytvoriť vlastnú dosku pomocou nasledujúcich súborov: