Mühendis Bilim / Eğitimler / Arduino Dersleri / Arduino’da Kütüphaneler ve Kullanımları

Arduino’da Kütüphaneler ve Kullanımları

Hasan Eren EMİR | 14 Temmuz 2016, 15:44 | Arduino Dersleri | 11276 görüntülenme

Kütüphaneler belirli görevleri yerine getirecek bileşen bilgilerini içerirler ve bu yapıları sayesinde yapacağımız işleme daha kısa yoldan ve komut karmaşasını ortadan kaldırarak erişmemizi sağlarlar.

Arduino Üzerinde Kütüphaneler

Arduino üzerinde kullanılan kütüphaneler ise ayrıca bir öneme daha sahiptirler. Bilindiği üzere arduino projeleri sadece programlama  ile gerçekleştirilmiyor. Programlamanın yanında elektronik bileşenler, çeşitli sensörler, butonlar vesaire bir sürü ek elemana da ihtiyaç duyuluyor. Bu elemanlardan bir çoğu ise kendi içerisinde başlı başına bir yapıya, çalışma örgüsüne sahip oluyor. Kısacası bu elemanlar ile arduino programlamasını birleştirecek ve köprü görevi görecek yapıları kütüphaneler oluşturuyor.

Arduino ve LCD

Örnek verecek olursak LCD ekranlar, adının uzun hali olan Liquid Cyristal Display yani Sıvı Kristal Ekran, başlı başına farklı bir yapıya sahiptir. Arduino üzerinden herhangi bir bilgiyi bu ekranlara doğru bir şekilde iletebilmek,  bu ekranların bu bilgileri doğru bir şekilde yorumlayabilmesi ve bilgilerin kullanılabilir hale gelmesi için mutlaka bu iki farklı yapı(arduino ve lcd) arasında köprü görevi görecek bileşenlere yani kütüphanelere ihtiyaç duyulur.

Kütüphanelerin Temin Edilmesi

Kütüphaneleri kendiniz oluşturabileceğiniz gibi, genellikle kullanılan cihaz firmaları tarafından hazırlanılırlar veya Arduino IDE ile birlikte hali hazırda yüklü olarak gelirler. Kullanacağınız elemanın ihtiyaç duyduğu kütüphaneyi, programınıza küçük bir komut vasıtasıyla ekleyerek bu elemanı kolayca kullanıma hazır hale getirebilirsiniz.

Kütüphanenin Programa Eklenmesi

IDE Üzerinden Kütüphane Yükleme

Belli başlı kütüphaneler Arduino IDE ile yüklü halde gelirler. IDE penceresinden Taslak>Library Ekle veya Taslak>Include Library sekmelerine tıklayarak IDE üzerinde bulunan kütüphaneleri kolayca programınıza ekleyebilirsiniz.

IDE de Yüklü Olan Kütüphaneler

Ancak kullanacağınız kütüphaneyi farklı bir kaynaktan temin ettiyseniz yukarıdaki görselde göreceğiniz üzere kütüphane dosyasını, Arduino’ nun kurulu olduğu dosya konumu altında libraries klasörü içerisine kopyalamanız gerekecektir. Ayrıca bu dosya konumunda IDE ile yüklü gelen tüm kütüphaneleri de görebilirsiniz.

Kütüphaneler Programın En Başına Eklenir

Tüm bu işlemler tamamsa programlamada kullanılacak tüm kütüphaneler, yukarıdaki örnek görseldeki gibi, programın her alanından erişilebilmeleri için genellikle programın en baş kısmına

gibi kısa bir komutla eklenirler.

Kütüphane Kullanımı

Kütüphaneler, içeriğinde belli başlı ek komutları ve değişkenleri içerirler. Programa eklenen bir kütüphane ile bu kütüphane içeriğinde bulunan komutları ve değişkenleri programınız üzerinde kullanıma hazır hale getirmiş olursunuz.

Bu komutlar ve değişkenler kullanılan elemana ve kütüphaneye göre farklı kullanım şekillerine sahip olacaktırlar, ancak Arduino IDE nin kendi komutları ile benzer yapıdadırlar. Arduino üzerinde program yazmışsanız veya IDE komutlarına aşinalığınız varsa kütüphane komutları hakkında pek yabancılık çekmezsiniz.

Kütüphane Komutları

Arduino da kullanıma hazır onlarca kütüphane mevcuttur. Her bir kütüphane kendi içerisinde farklı bir yapıya, kullanım metoduna sahip olduğundan bu komutları ve kullanım şekillerini sadece Arduino Resmi Sayfası üzerinden veya kütüphane üreticilerinden temin edebilirsiniz.

Her bir kütüphaneyi burada anlatmam bu sebeple malesef mümkün olmayacaktır. Ancak bundan sonraki eğitim yazılarımda ve projelerimde kullandığım kütüphanelerin ve komutlarının ne olduğunu anlatarak ilerleyeceğim.

Arduino programlama hakkında şimdiye kadar anlattığımız tüm eğitimler ve projeler başlangıç seviyesinde idi. Şimdi ise kütüphane kullanımı ile ikinci seviyeye geçmiş olduk. Umarım faydalı bir yazı olmuştur 🙂

YAZAR BİLGİSİ
Hasan Eren EMİR
Yönetici
Biyografi

Merhabalar. Ben MühendisBilim’ in yöneticisiyim. Çocukluğumdan beri elektik-elektronik ve yazılım alanlarına duyduğum büyük ilgi sebebiyle üniversite eğitimimde bu alana yöneldim. Halen Atatürk Üniversitesi Elektrik-Elektronik Mühendisliği Bölümü’ nde eğitim görmekteyim. Bunun yanında kendi projelerim üzerinde çalışmalarımı sürdürüyorum. Bilim, teknoloji, mühendislik alanlarından gelişmeleri duyuracağım ve diğer projelerimi de yayınlayacağım bir platform ihtiyacından doğan bir diğer projem; MühendisBilim için desteklerinizi bekliyor, iyi okumalar diliyorum.

BENZER GÖNDERİLER

FACEBOOK İLE YORUM YAP

YORUM YAP
  1. Avatar
    merve, 23 Nisan 2019 - 17:09 'de demiş ki:
    merve

    Merhabalar
    Kodları yazıp derleme yaptığımda hata olarak kütüphanenin birden fazla bulunduğunu söylüyor ne yapmalıyım bilgilendirirseniz sevinirim teşekkürler iyi çalışmalar..

    • Hasan Eren EMİR
      Hasan Eren EMİR, 25 Haziran 2019 - 11:28 'de demiş ki:
      Hasan Eren EMİR

      Merhaba en basit çözümü iki kütüphaneden birini silmeniz olacaktır. Bunun için gönderi içerisinde de belirttiğim Arduino/Libraries/ klasörü altında ilgili kütüphanenin dosyasını silmelisiniz. Eğer yine hata alırsanız her iki kütüphaneyide silip tekrar yüklemeyi deneyin.

  2. Avatar
    hüseyin, 23 Kasım 2018 - 23:14 'de demiş ki:
    hüseyin

    Selamlar. Öncelikle bir çok yorum ile ilgilendiğinizi ve cevapladığınızı gözlemledim. Sorunuma yardımcı olabilirsiniz diye umuyorum. Sıkıntım ingilizce bilgim zayıf. Bu yüzden kod açıklamalarını tam olarak anlayamıyorum. Arduino’da nrf modülünü multi fonksiyonlu bir şekilde kullanamıyorum çünkü kodların işlevlerini anlamakta çok güçlük çekiyorum. Basit örnekleri kullanabiliyorum fakat üzerilerine bir şeyler ekleyemiyorum. Çeşitli videolar izliyorum ama kaynak çok zayıf. Bu konuda öneriniz varsa paylaşıp yardımcı olur musunuz ?

    • Hasan Eren EMİR
      Hasan Eren EMİR, 7 Aralık 2018 - 19:54 'de demiş ki:
      Hasan Eren EMİR

      Merhaba. Sanırım ingilizcenizi geliştirmekten başka önerebileceğim bir yöntem bulunmuyor. Ya da ilgilendiğiniz konu hakkında Türkçe kaynak çıkmasını bekleyeceksiniz. Malesef elektronik ve yazılım alanında ortaya çıkan çoğu kaynak İngilizce oluyor. Bu da mecburen İngilizce öğrenmeye itiyor bizleri.

  3. Avatar
    tarık, 12 Mart 2018 - 14:34 'de demiş ki:
    tarık

    kolay gelsin merhaba
    ben dijital giriş olarak belirli bir pine 3 defa sinyal gelince bir role çektirip bırakmak istiyorum. döngü tekrarlanması ancak tekrardan 3 defa plus gelecek 3. plustan sonra role tekrar çekip bırakacak.
    yardımcı olurmusunuz acaba.

    • Hasan Eren EMİR
      Hasan Eren EMİR, 12 Mart 2018 - 22:46 'de demiş ki:
      Hasan Eren EMİR

      Pulsları vermek için pini HIGH yapıp kapatabilirsiniz. Eğer bu süre zarfında çıkış almanız yeterli olmazsa, pini kısa bir süreliğine mesela 10ms HIGH yapıp kapatabilirsiniz. Bir nevi puls işareti üretmiş olursunuz. 3 defa olması işlemi için bir adet sayıcı kullanarak kontrol edebilirsiniz.

      • Avatar
        tarık, 13 Mart 2018 - 13:44 'de demiş ki:
        tarık

        Merhaba;
        aslında her 1 ila 1,5 dk arasında 1 defa tetik gelicek. digitalread pini 3. kez tetik alınca digitalWrite pini HIGH olucak. 1,5 sn bekleyip LOW olucak. ve tekrar 3. tetik sinyalini bekliycek, ama sayıcı işlemini arduinoya nasıl yazıcaz yol gösteririmisiniz.

        • Hasan Eren EMİR
          Hasan Eren EMİR, 19 Mart 2018 - 23:11 'de demiş ki:
          Hasan Eren EMİR

          Bildiğiniz gibi void loop döngüyü ifade ediyor. void loop altında belirlediğiniz bir değişkeni her döngü esnasında 1 artırarak basitçe bir sayıcı yapabilirsiniz. Belirttiğiniz işlemleri yapmak için ise if koşulu ile sayıcı değerini kontrol ettirmeniz ve istediğiniz değere gelince tekrar saymasını istiyorsanız sayıcı değişkenini 0 lamanız gerekiyor. İstediğiniz 1-1.5dk gibi süreleri ise delay fonksiyonu ile yaptırabilirsiniz. İşin kolayına kaçılmaması ve emek verilmesi açısından doğrudan kod paylaşımı yapmıyorum. Umarım verdiğim bilgiler doğrultusunda işleminizi halledebilirsiniz.

          • Avatar
            tarık, 20 Mart 2018 - 09:26 'de demiş ki:
            tarık

            Tabi ne demek bir kod yazarım hataları cozemessem o zaman yardım ısterim kolay gelsın sagolun

  4. Avatar
    mustafa, 25 Ocak 2018 - 11:21 'de demiş ki:
    mustafa

    Merhaba;
    Arduino display saat yapıyordum. Devrenin orjinali ds1307 li. Fakat entegrede problem çıktığı için ds3231 kullanmak istiyorum.
    Sorum şu. 7segment displayi 74hc595 ile sürdüğüm için bana saat ve tarih bilgisini ayrı ayrı ve 2 basamaklı okumam gerekiyor
    Mesala saat 23, dakika 35 gibi.
    Fakat incelediğim örneklerde, hep tek komutla serial ekran veya lcd de tek komutla yazdırmış. (23:35 gibi)
    Kütüphaneler mevcut fakat detaylı anlatıma ulaşamadım. Ben saat bilgisini çektikten sonra, saat isimli bir değişkene saati, dakika isimli bir değişkene ise dakikayı iki basamaklı olarak kaydederek gerekli işlemleri yapmak istiyorum.
    kütüphaneler ile ilgili geniş kulanım kılavuzu nerden bulabilirim.
    Teşekkürler…

    • Hasan Eren EMİR
      Hasan Eren EMİR, 29 Ocak 2018 - 23:12 'de demiş ki:
      Hasan Eren EMİR

      Kütüphaneler ile ilgili bilgileri yalnızca kütüphaneyi yayınlayan kişi/kuruluş tarafından edinebilirsiniz. Aksi halde kütüphaneyi kendiniz inceleyip çıkarımlarda bulunabilirsiniz. Belirttiğiniz işlemde aynı anda veri çekmeyi düşünüyorsunuz. Ancak arduino gibi kartlarda paralel işlem yapmak oldukça zor oluyor. Bunun yerine veriler art arda çekilip kullanılmalı. Veriler aynı anda değilde küçük zaman farklarıyla çekilebilir. Dakika ve saat değerleri anında değişen değerler olmadığı için sıkıntı olmayacaktır. İşlemin bu kısmında size fikir vermeye çalıştım. Daha önceden belirttiğiniz entegrelerle ve belirttiğiniz bir projede çalışmadığım için malesef detaylı bilgi veremiyorum. Fakat saat bilgisini (23:35 gibi) çekebildiğinize göre belirttiğim noktaya dikkat ederek kendi istediğiniz şekilde çekmeniz çok zor olmasa gerek. Belirttiklerim umarım işinize yarar. İyi çalışmalar…

  5. Avatar
    Mesut Yiğit, 27 Kasım 2017 - 02:10 'de demiş ki:
    Mesut Yiğit

    merhaba hasan bey arduino ile iki adet ır kızılötesi sensörü naasıl çalıştırırız acaba bendekş kodlar ile sadecebir sensör çalışıyor diğeri çalışmıyor yardımcı olursanız sevinirim

    • Hasan Eren EMİR
      Hasan Eren EMİR, 27 Kasım 2017 - 23:23 'de demiş ki:
      Hasan Eren EMİR

      Merhaba. Belirttiğiniz işlem multitasking e giriyor, yani aynı anda birkaç işlemi/cihazı/sensörü kullanmak. Sizin için kolay ve arduinoya uygun olanı ilk önce bir IR den veri alışverişinde bulunmak, ardından bu IR yi durdurup diğerinden veri almaya çalışmak. Kodlarınız ve işlemleriniz uzun değilse void loop un içerisinde belirttiğim bu işlemi gerçekleştirebilirsiniz. Böylelikle çok kısa aralıklarla her iki IR yi de kullanıyor olursunuz. Eğer bu işlem gecikme veya sorun oluşturuyorsa arduino ile multitasking veya multiprocessing üzerine araştırmalarınızı yoğunlaştırabilirsiniz. Bu konu üzerinde malesef bir çalışma yapmadım. Dolayısıyla ancak bu kadar yardımcı olabiliyorum. İyi çalışmalar dilerim…

  6. Avatar
    Fatih, 25 Eylül 2017 - 22:10 'de demiş ki:
    Fatih

    Arduino ile p10 led tabelaya yazı gönderiyorum. Her yerde 16 punto yazılar var. Bana 32 veya daha üstü puntolar lazım.Bu konuda yardımcı olabilir misiniz?

    • Hasan Eren EMİR
      Hasan Eren EMİR, 17 Ekim 2017 - 16:48 'de demiş ki:
      Hasan Eren EMİR

      Geç dönüşüm için kusura bakmayın. Malesef daha önceden led tabelalar ile ilgili bir çalışma yapmadım. Bu yüzden pek yardımcı olamayacağım.

  7. Avatar
    MUSTAFA ORCAN, 22 Aralık 2016 - 18:35 'de demiş ki:
    MUSTAFA ORCAN

    selamlar
    energia.h kütüphanesi eksik bende bana bulup linkini atabilir misiniz
    şimdiden saolun
    acil

    • Hasan Eren EMİR
      Hasan Eren EMİR, 14 Ocak 2017 - 08:07 'de demiş ki:
      Hasan Eren EMİR

      Energia, Arduino IDE tabanlı bir yazılım. MSP kartlar için üretilmiş ve anladığım kadarıyla arduino kartlar için desteği yok. Ayrıntılı bilgiye buradan (http://energia.nu/) ulaşabilirsiniz.

  8. Avatar
    Hüseyin B., 9 Aralık 2016 - 12:42 'de demiş ki:
    Hüseyin B.

    mrb arduino ile strafor kesim makinası yapmak istiyorum yapılacak tezgah belirleyeceğimiz ölçülerde hazırlanacak bunun için grekli elektronik kısmı ve pc den tezgaha aktarımı hakkında yardımcı olabilirseniz seviniz
    saygılarımla.

    • Hasan Eren EMİR
      Hasan Eren EMİR, 14 Ocak 2017 - 08:12 'de demiş ki:
      Hasan Eren EMİR

      Bahsettiğiniz proje cnc şeklindemi çalışacak yoksa ısıtılan testere ile siz manuel olarak mı kesim yapacaksınız?


PAYLAŞ