Arduino Leonardo

Güncelleme 17/03/2022

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.
Arduino Leonardo

Arduino Leonardo Teknik Özellikler:

  • 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

tumblr mjchqtIR6M1s5t695o1 1280 1

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.

Arduino Leonardo pinleri

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 3×2 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 bir kaç 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 üzerinden 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.

Leonardo’nun klasik Arduino kartlarına göre ne gibi avantajları ve farkları

1. DAHA FAZLA DIJITAL PIN

4 tane fazldan dijital pin var 🙂 Uno 14 dijital pine sahip (D0-D13). Leonardo bu 14 pinin üzerine dişi girişlerin olduğu bölgenin dışında 4 pine daha sahip. Bu pinlere ulaşmak için ICSP pinlerini kullanmanız gerekecek.(D14-D17)
Untitled 1
D14 – MISO – PB3
D15 – SCK – PB1
D16 – MOSI – PB2
D17 – SS – PB0

 

D17 pin attachment points
D17 pini fotoğrafta gösterilen yerden yapılacak lehimle kullanılabilir.

2. DAHA FAZLA VE DAHA İYI PWM PIN

Leonarda 1 tane fazla PWM pinine sahipmiş gibi görünse de (Leonardo 7, Uno 6 PWM’e sahip) , ATmega32U4 çok güçlü zamanlayıcılara (timer) sahip. Uno’dakile ek olarak timer4 zamanlayıcısı fark yaratmaktadır. 1×8-bit, 2×16-bit ve 1×10-bit yüksek hızlı (64MHz) zamanlayıcı. Toplamda 9 adet bağımsız zamanlayıcılı çıkış pini olan Leonardo’da, bu pinlerden 2 tanesi paylaşımlı olduğu için kalan 7 tanesi PWM olarak kullanılabilir.

  • D3:  8-bit timer0
  • D5:  16-bit timer1&3
  • D6:  10-bit timer4
  • D9:  16-bit timer1&3
  • D10:  16-bit timer1&3
  • D11:  8-bit timer0
  • D13:  10-bit timer4

3. DAHA FAZLA ANALOG PIN

Uno gibi ATmegaxx8 tabanlı Arduino’larda dijital olarak kullanılabilen 6 adet analog giriş pini bulunur. Leonardo’da ise 12 adet analog giriş pini var ki dijital olarak ta kullanabilirsiniz 🙂 Arduino Shiled’lerindeki uyumu bozmamak için Leonardo’nun A6-A11 pinleri dijital pinlere bağlanmıştır.

F3SKBOUH3XN9KVD.LARGE 1
Analog pinleri dijital olarak kullanabilmek için pin numaraları
  • A6 – D4
  • A7 – D6
  • A8 – D8
  • A9 – D9
  • A10 – D10
  • A11 – D12

———–

  • A0 – D18
  • A1 – D19
  • A2 – D20
  • A3 – D21
  • A4 – D22
  • A5 – D23

4. SDA/SCL PINLERI

Uno’da I2C/TWI iletişimini sağlayan pinler A4 & A5 iken Leonardo’da D2 ve D3.
Pin dizilimini bozmamak için SDA ve SDL pinleri aynı yerinde.
FKGSUDYH3XN8LEG.LARGE2 1

5. SERI PORT

Artık ikinci bir seri portumuz var  İlk seri portumuz dahili USB arayüzüne sahip ve Tx/Rx LEDleri bu pinlere bağlı. İkinci seri port ise D0/D1 pinlerine bağlı, bu pinlere bağlı LED yok.
Tabi ki seri iletişim hızı da arttı

6. KLAVYE VE FARE OLARAK KULLANIM

Leonardo’nun en heyecan verci özelliği direkt USB desteği. Bu da kalvye ve ya fare ya da her ikisi birden olarak çalışabilir anlamına geliyor. Arduino’daki kütüphaneler sayesinde çok kolay oluyor bu işlem
Dikkat : void setup() bölümüne delay(5000); gibi uzun bir bekleme verin, yoksa tekrar programlamaya çalışırken klavye ve fare fonksiyonlarını çalıştırırken programlama konusunda sorun yaşayabilirsiniz.

7. USB UYARISI

Leonardonun çalışması için Ardunino IDE 1.0 ve üzerine güncelleyin, hala güncellemediyseniz  ayıp zaten

8. SONUÇ

Leonardo Arduino ailesine çok şey kattı. Daha fazla pin, daha hızlı PWM, bir sürü analog giriş pini daha da önemlisi gerçek bir USB sunması. Belki de daha da önemlisi ucuz olması (Ülkemizde Uno’dan bir kaç lira pahalı ama maliyeti daha ucuz). Bir Arduino’ya ihtiyacınız varsa hemen bir Leonardo alın.

Yazar: Ali Celal

5f59ca35fd9ac7f00cde62f0b0cd0d07?s=90&d=blank&r=g- Elektronik Mühendisi
- E.Ü. Tıp Fakültesi Kalibrasyon Sorumlusu Test kontrol ve kalibrasyon sorumlu müdürü (Sağ.Bak. ÜTS)
- X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.)
- Usta Öğretici (MEB)
- Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin