Arduino Leonardo; Atmega32u4 temelli bir mikrodenetleyici kartıdır.
Üzerinde 20 adet dijital giriş/çıkış pini (7 tanesi PWM çıkışı, 12 tanesi analog
giriş olarak kullanılabilir), 16Mhz kristal, mikro usb soketi, güç soketi, ICSP
konektörü ve reset tuşu bulundurmaktadır. Kart üzerinde mikrodenetleyicinin çalışması
için gerekli olan her şey bulunmaktadır. Kolayca usb kablosu üzerinden bilgisayara
bağlanabilir, adaptör veya pil ile çalıştırılabilir.
Arduino"ya yabancıysanız, blog sitemizde bulunan Arduino Dersleri
serimize http://maker.robotistan.com/etiket/arduino-dersleri/ adresinden
ulaşabilirsiniz.
Leonardo"yu diğer bir çok Arduino modelinden ayıran en büyük özellik; Atmega32u4 üzerinde dahili USB haberleşme özelliğinin olmasıdır. Bu şekilde 16u2 gibi ikinci bir usb-seri dönüştürücü işlemcisine gerek yoktur. Bu sayede sanal COM portun (CDC) dışında Leonardo bilgisayara mouse, klavye gibi bağlanarak kullanılabilir.
-
Mikrodenetleyici ATmega32u4
- Çalışma Gerilimi 5V
- Giriş Gerilimi
(önerilen) 7-12V
- Giriş Gerilimi (limit) 6-20V
- Dijital I/O
Pinleri 20 (7 tanesi PWM çıkışı, 12 tanesi analog giriş)
- Analog Giriş
Pinleri 12
- Her I/O için Akım 40 mA
- 3.3V Çıkış için Akım 50
mA
- Flash Hafıza 32 KB (ATmega32u4) 4 KB kadarı bootloader tarafından
kullanılmaktadır
- SRAM 2.5 KB (ATmega32u4)
- EEPROM 1 KB
(ATmega32u4)
- Saat Hızı 16 MHz
- Uzunluk 68.6 mm
-
Genişlik 53.4 mm
- Ağırlık 20 g
Arduino Leonardo gücünü USB üzerinden veya harici güç kaynağından alabilir. Harici güç kaynağı AC-DC adaptör olabileceği gibi bataryada olabilir. Adaptör kart üzerindeki 2.1mm merkez-pozitif güç soketinden bağlanabilir. Batarya kart üzerindeki GND ve Vin pinleri üzerinden bağlanabilir.
Kartın çalışması için sürekli olarak usb"nin bağlı olması şart değildir. Kart sadece adaptör veya batarya ile çalıştırılabilir. Bu sayede kart bilgisayardan bağımsız olarak çalıştırılabilir.
Harici güç kaynağı olarak 6-20V arası kullanılabilir. Ancak bu değerler limit değerleridir. Kart için önerilen harici besleme 7-12V arasıdır. Çünkü kart üzerinde bulunan regülatör 7V altındaki değerlerde stabil çalışmayabilir. 12V üstündeki değerlerde de aşırı ısınabilir.
Leonardo kartının üzerindeki mikrodenetleyicinin çalışma gerilimi 5V"dur. Vin pini veya güç soketi üzerinden verilen 7-12V arası gerilim kart üzerinde bulunan voltaj regülatörü ile 5V"a düşürülerek karta dağılır.
Güç pinleri aşağıdaki gibidir:
-
VIN: Harici güç kaynağı kullanılırken 7-12V arası gerilim giriş
pini.
- 5V: Bu pin regülatörden çıkan 5V çıkışı
verir. Eğer kart sadece usb (5V) üzerinden çalışıyor ise usb üzerinden gelen 5V doğrudan
bu pin üzerinden çıkış olarak verilir. Eğer karta güç Vin (7-12V) veya güç soketi
(7-12V) üzerinden veriliyorsa regülatörden çıkan 5V doğrudan bu pin üzerinden çıkış
olarak verilir.
- 3V3: Kart üzerinde bulunan
3.3V regülatörü çıkış pinidir. Maks. 50mA çıkış verebilir.
-
GND: Toprak pinleridir.
Hafıza:
Atmega32u4 32 KB"lık flash belleğe sahiptir (4 KB kadarı bootloader tarafından kullanılmaktadır). 2.5 KB SRAM ve 1 KB EEPROM"u bulunmaktadır.
Giriş ve Çıkış:
Leonardo üzerindeki 20 adet dijital pinin hepsi giriş veya çıkış olarak kullanılabilir. Bu pinlerin tamamının lojik seviyesi 5V"dur. Her pin maks. 40mA giriş ve çıkış akımı ile çalışır. Ek olarak, bazı pinlerin farklı özellikleri bulunmaktadır. Özel pinler aşağıda belirtildiği gibidir.
- Seri Haberleşme, 0 (RX) ve 1
(TX): TTL Seri veri alıp (RX), vermek (TX)
için kullanılır. Dikkat edilmesi gereken nokta, Serial sınıfı leonardo üzerindeki USB
(CDC) haberleşmesinde kullanılır. Pin 0 ve 1 pinleri üzerindeki seri haberleşme için
Serial1 sınıfı kullanılmalıdır.
- Harici Kesme, 3 (interrupt
0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt
3), 7 (interrupt
4): Bu pinler yükselen
kenar, düşen kenar veya değişiklik kesmesi pinleri olarak kullanılabilir. Ayrıntılı
bilgi için attachInterrupt() fonksiyon sayfasını
inceleyebilirsiniz.
- PWM, 3,5,6,9,10,11 ve
13: 8-bit çözünürülükte PWM çıkış pinleri olarak kullanılabilir.
- SPI, ICSP Header"i üzerinde: Bu pinler SPI
haberleşmesi için kullanılır. Dikkat edilmesi gereken nokta ICSP header"ı üzerindeki SPI
pinleri kart üzerindeki başka hiç bir pine bağlı değildir. Yani uno"daki gibi bu pinler
10,11,12 ve 13. pinlere bağlı değildir. Eğer SPI haberleşmesi yapan bir shied
kullanacaksanız, bu shield üzerinde 3x2 pinlik ICSP header"ı olması gerekiyor. Yoksa bu
shield leonardo ile kullanılamaz.
- LED,
13: Leonardo üzerinden 13. pine bağlı olan dahili bir led bulunmaktadır.
Pin HIGH yapıldığında led yanacak, LOW yapıldığında led sönecektir.
- Analog, A0-A5 ve A6-A11(aynı zamanda 4,6,8,9,10 ve 12. dijital
pinler): Leonardo 12 tane 10-bit çözünürlüğünde analog giriş pinine
sahiptir. Bu pinlerden A0-A5 arasında olanlar uno"da olduğu gibi analog pin kısmındadır.
A6-A11 arasındakiler ise dijital pin kısmındadır ve sırasıyla dijital 4,6,8,9,10 ve 12.
pinlere bağlıdır. Bu pinler kartın altında belirtilmektedir. Tüm analog pinler dijital
giriş ve çıkış içinde kullanılabilir. Pinlerin ölçüm aralığı 0-5V"dur. AREF pini ve
analogReference() foksiyonu kullanılarak alt limit yükseltilip, üst limit
düşürülebilir.
- I2C, 2 veya SDA pini ve 3 veya SCL
pini: Bu pinler I2C haberleşmesi için kullanılır. Bu pinler uno üzerinde
A4 ve A5 pinlerine bağlıydı. Leonardo da ise pin 2 ve 3"e bağlıdır.
- AREF: Analog giriş için referans pini.
- Reset: Mikrodenetleyici resetlenmek istendiğinde bu
pin LOW yapılır. Reset işlemi kart üzerinde bulunan Reset Butonu ile de
yapılabilir.
Arduino Leonardo ile Atmega32u4
arasındaki pin
haritalaması sayfayını inceleyebilirsiniz.
Haberleşme:
Arduino Leonardo"nun bilgisayarla, başka bir arduino veya mikrodenetleyici ile haberleşmesi için birkaç farklı seçenek vardır. Atmega32u4, 0 (RX) ve 1 (TX) pinleri üzerinden UART TTL (5V) seri haberleşme imkanı sunar. 32u4 usb üzerinden bilgisayara bağlanarak sanal bir com port açar ve serial (CDC) haberleşme yapmaya imkan sağlar. Arduino bilgisayar programı içerisinde barındırdığı seri monitör ile arduino ile bilgisayar arasında text temelli bilgilerin gönderilip alınmasını sağlar. Leonardo ile bilgisayar arasında usb üzerinden haberleşme olduğu zaman kart üzerinde bulunan RX ve TX ledleri yanacaktır.
Leonardo üzerinde donanımsal olarak bir adet seri port bulunmaktadır. Ancak SoftwareSerial kütüphanesi ile bu sayı yazılımsal olarak arttırılabilir.
Atmega32u4 aynı şekilde I2C ve SPI portlarıda sağlamaktadır. Arduino bilgisayar programı ile gelen Wire kütüphanesi I2C kullanımını, SPI kütüphanesi de SPI haberleşmesini sağlamak için kullanılır.
Leonardo bilgisayara mouse, klavye gibi tanıtılabilir ve Keyboard and Mouse sınıfları ile kullanılabilir.
Programlama:
Arduino Leonardo kartı Arduino bilgisayar programı (Arduino IDE) ile programlanır. Programda Tools > Board sekmesi altında Arduino Leonardo"yu seçip programlamaya başlayabilirsiniz. Ayrıntılı bilgi için referans ve temel fonksiyonlar sayfasını inceleyebilirsiniz. Arduino Leonardo üzerindeki Atmega32u4 üzerine bootloader denilen özel bir yazılım yüklü gelir. Bu sayede kartı programlarken ekstra bir programlayıcı kullanmanıza gerek yoktur.Haberleşme orjinal AVR109 protokolü ile sağlanır.
Bootloader yazılımı bypass edilerek kart doğrudan mikrodenetleyicinin ICSP header"i üzerinden ISP programlayıcı ile programlanabilir (Referans).
Usb Aşırı Akım Koruması:
Arduino Leonardo üzerinde bulunan resetlenebilir sigorta, bilgisayarın usb portunu kısa devrelerden veya aşırı akım tüketimi durumlarından korumaktadır. Kart bilgisayar usb portu üzerinden 500mA"den fazla akım çektiğinde kart otomatik olarak usb"den aldığı gücü koruma amacıyla kesmektedir. Fazla akım durumu veya kısa devre ortadan kaldırıldığında sigorta normal konuma döner ve tekrar bağlantı kurulur.