Temel Arduino Eğitimi | Ders #2: İlk Program!

11 dk okuma süresi
4,364

Programlamaya Giriş

Programlama, insanların makineler ile konuşma şeklidir.Telefonumuzda Instagram’a girdiğimizde, bizim tek yapmamız gereken tıklamak iken işlemcinin yapması gereken yüzlerce komut vardır. Birazdan biz de mikroişlemcilerin arkasında dönen işlere bir adım atmış olacağız.

Çoğu programlama dilinde ilk program olarak ekrana “Merhaba Dünya” yazdırılır. Arduino’da da biz ilk olarak LED yakacağız. LED, İngilizce “Light Emitting Diode” kelimelerinin baş harflerinden oluşur ve ışık yayan diyot anlamına gelir. Üzerinden akım geçirdiğimiz zaman etrafına ışık yayan bir devre elemanıdır.

  • İlk Program!

Bu bilgilerden sonra Arduino’ya  ‘Blink’ kodunu yükleyip Arduino’nun çalışıp çalışmadığını test edeceğiz. Şimdi Arduino IDE’sini açıp adımları uygulamaya başlayalım.

Adım 1: Üstteki menüden Dosya’ya tıklıyoruz.

Adım 2: Örnekler > 01.Basics yolunu takip ediyoruz ve Blink’e tıklıyoruz.

Adım 3: Arduino’muzun bağlı olduğu portu seçmek için ‘Araçlar’ menüsünün port bölümünden Arduino’nun bağlı olduğu portu seçiyoruz. Genelde bilgisayarlarda COM-1 ve COM-X portları bulunur ama sizde bundan daha fazla COM portu varsa aygıt yöneticisinden Arduino’nun bağlı olduğu portu görebilirsiniz.

COM-1’den başka port yoksa (veya hiç port görünmüyorsa) https://sparks.gogo.co.nz/ch340.html sitesinden işletim sistemimize uygun olan driveri yükleyebilirsiniz.

Meraklısına: CH340 çipi Arduino ile bilgisayar arasındaki seri haberleşmeyi sağlayan çiptir.  İngilizce’yi Türkçe’ye çeviren hızlı bir tercüman olarak düşünebiliriz. Bu çip olmazsa Arduino ile bilgisayar haberleşemez ve kodlarımızı yükleyemeyiz.

Adım 4: Kodu yüklemek için Yükle butonuna tıklıyoruz.

Arduino’nun üzerindeki ışıklar yüklenirken garip şekilde yanabilir. Bu kodun yüklenmekte olduğunu gösterir. Kodlar yüklendikten sonra Arduino üzerindeki ‘L’ etiketli LED’in 1 saniye aralıklarla yanıp söndüğünü gözlemleyebiliriz.

 

  • Breadboard’ı Tanıyalım

Breadboard, devre elemanlarımızı yerleştireceğimiz bir prototipleme alanıdır. Devre kartı yapmadan devrelerimizi oluşturmamızı sağlar.

Breadboard kendi içerisinde bölümlere ayrılmıştır. A ve D bölümleri voltaj içindir. Elektrik kutupları Arduino’dan breadboarda buradan bağlanılır. İstenilirse farklı yerlere de bağlanabilir ama A ve D bölümlerinden bağlamak bize prototipleme aşamasında çok kolaylık sağlayacaktır. Kırmızı renkteki şerit artı kutbu, mavi veya siyah renkteki şerit ise eksi kutbu temsil etmektedir. Her bir pin boşluğu yatay olarak breadboardın altından birbirlerine bağlanmıştır. Şeritlerin arasında boşluk varsa bu sağ ve sol tarafın birbirinden bağımsız olduğunu belirtir.

B ve C bölümleri ise prototiplemelerimizi yapacağımız bölümdür. Devre elemanlarımızı buradan bağlarız. Jumper kablolar yardımıyla da breadboarddan Arduino’ya veya başka devre elemanlarına bağlantı yaparız. Ayrıca B ve C bölümleri birbirinden bağımsızdır ve A ile D bölümlerinden tek farkı dikey olarak birbirlerine bağlı olmalarıdır. Devremizi kurarken bu ayrıntılara dikkat etmemiz gerekmektedir.

 

  • Şimdi ilk devremizi hazırlayalım!

LED’ler yönlü devre elemanlarıdır. Yani (+) ve (–) kutupları vardır ters bağlanmaması gerekir. LED’in artı kutbu uzun olan bacağıdır. Diğer bacağı ise eksi kutbudur. LED’in artı kutbundan 330 ohmluk bir direnç ile Arduino’ya bağlantı yapıyoruz.

Direnç elektrik akımına karşı koyan yönsüz bir devre elemanıdır. Yani artı veya eksi kutupları yoktur. Arduino’nun giriş çıkış pinlerinden çıkan 5 voltu düşürmemizi sağlar. LED’ler 5 voltdan daha düşük voltajlarda çalıştığından bu direnç ile LED’i korumuş oluruz. Eğer dirençsiz bağlantı yaparsak LED patlayabilir.

Direncin 330 ohm olmasının sebebi Ohm kanunudur. Ohm kanunu    V = I x R formülü ile bilinir. LED’ler yaklaşık olarak 0,024 amper akım çekerler. Bizim vereceğimiz voltaj da 5 volt olacağı için kullanmamız gereken direnç aslında 208 ohmdur fakat bu direnç değerinin üstünde olması da sorun çıkarmayacaktır.

 

LED’in eksi kutbundan da Arduino üzerindeki GND etiketli pine bağlantı yapıyoruz. GND etiketli pinden Arduino’nun toprak hattı geçmektedir. Devre elemanlarının eksi kutbu bu pine bağlanır. Bu sayede devremiz tamamlanmış olur.

  • Programı İnceleyelim

Az önce yaptığımız gibi Örnekler > 01.Basics yolunu takip ediyoruz ve Blink’e tıklıyoruz. Daha sonra bu kodu yüklüyoruz.

NOT: Kodlarımızda her komutun sonunda noktalı virgül (;) koymak zorundayız. Bu C ve C++ türü diller için bir zorunluluktur. IDE komutun bittiğini sonundaki ‘;’ işareti ile anlar.

 int LED = 13;

 

Her programlama dilinde değişkenler bulunur. Değişkenler içerisinde veri saklayabildiğimiz birimlerdir. Bu değişkenlerden birisi de int değişkenidir. Bu değişken içerisinde -32768 ile 32767 arasındaki tam sayıları barındırabilir. Bu projede bize int değişkeni yeterli. Farklı değişken tipleri aşağıdaki tabloda bulunuyor. Buradan inceleyebilirsiniz.

Kullanın Şekli: int isim = değer;

   Değişkenin tipini belirledikten sonra buna bir isim vermeliyiz. Bu projede biz değişkene LED ismini verdik. Siz isterseniz “Ali” veya  “kirmizi” yazabilirsiniz. Tek dikkat etmeniz gereken şey değişken isminin içerisinde boşluk ve Türkçe karakter bulundurmaması.

Değişkenler isimlendirilirken genelde isim eğer iki kelimeden oluşuyorsa kelimeler arasına ‘_’ işareti konur (toplanacak_sayi gibi). Fonksiyon isimlendirilirken ise (Fonksiyonlara yazımın sonunda değineceğim) birden fazla kelime varsa ilk kelimenin baş harfi küçük, diğerlerinin ise büyük yazılır (sayiTopla gibi).

Bu komut ile Arduino’ya LED’in 13.pin’de bağlı olduğunu söyledik.

 void setup(){ } 

 

Bu fonksiyon Arduino kodlarımızın kurulum bölümüdür. Nasıl Arduino IDE’yi kullanmadan önce kuruyorsak Arduino’da da kodlarımızı yazmadan önce Arduino’ya bir takım bilgiler vermemiz gerekir. Bu bilgileri iki küme parantezi arasına ‘{ }’ yazıyoruz.

Not: Bu parantezler arasına yazılan tüm komutlar Arduino’nun başlangıcından itibaren sadece bir kere çalışır. Daha sonra altındaki loop fonksiyonu içerisindeki kodları uygular. Loop fonksiyonuna birazdan deyineceğiz.

pinMode(LED, OUTPUT);

 

LED’in yanması için üzerinden akım geçmesi gerektiğini biliyoruz. Bunu yapmak için Arduino’dan LED’e elektrik akımı göndermemiz gerekiyor. Eğer devre elemanını bağladığımız pinden akım alacaksak yani Arduino’dan bir elektrik çıkışı olacak ise bu pin ÇIKIŞ pini olarak ayarlanmalıdır. Bunun için LED’in yanına ÇIKIŞ anlamına gelen OUTPUT’u yazdım.  Giriş olarak ayarlandığı durumlar da var. Yazımın devamında buna değineceğim.

Kullanım Şekli: pinMode(pinNumarası, OUTPUT / INPUT);

 

void loop(){ }

 

Bu fonksiyonda aynı setup fonksiyonu gibi çalışır. Tek farkı setup gibi bir kere değil sürekli çalışmasıdır. Kodların kurulumunun tamamlanmasının hemen ardından bu fonksiyon devreye girer ve içine yazılan kodlar Arduino’ya güç verildiği sürece çalışmaya devam eder. Setup’ta olduğu gibi kodlarımızı yazarken iki küme parantezi arasına yazıyoruz.

 

digitalWrite(LED, HIGH);

 

Bu komutu anlatmadan önce dijital ile analog değerler arasındaki farkı anlayalım. Mesela evdeki lambanın düğmesine bastığımızda lamba yanar. Bu durumda lamba üzerinden bir elektrik akımı geçtiği, yani devre tamamlandığı için lamba yanar. Lambanın yandığı zaman lamba ‘1’ durumunu alır ve 1 kodlamada olumlu veya açık anlamına gelmektedir. Düğmeye tekrar bastığımızda ise lamba kapanır ve ’0’ durumuna gelir. 0 ise kodlamada olumsuz veya kapalı anlamına gelmektedir.

Analogda ise lambanın açık veya kapalı olma durumu dışında yarı açık veya %13 açık durumları ortaya çıkar. Yani dijital verilerle gösteremeyeceğimiz değerleri analog değerler ile gösteririz. Buna örnek olarak havanın az aydınlık olması, vantilatörün 2. Seviyede çalışması veya hoparlörümüzden gelen sesin %25 seviyesinde olmasını örnek olarak gösterebiliriz.

Biz bu kodda LED’i sadece yakacağımız yani 1 durumuna getireceğimiz için bu komutu kullandık.  LED değişkenini komutun içine yazdıktan sonra yanına akım vereceğimiz veya akımı keseceğimiz pinin durumunu yazıyoruz. HIGH kelimesi İngilizce’de yüksek anlamına gelmektedir.  Arduino’da ise 1 yani açık anlamına geldiğinden HIGH yazdık.

Kullanım Şekli: digitalWrite(pinNumarası, HIGH / LOW);

 

delay(1000);

 

Delay, İngilizce’de gecikme anlamına gelmektedir. Arduino’da  bu komut bize komutlar arasında Arduino’nun belirli bir süre beklemesini sağlıyor. Parantezler içerisine yazdığımız değer süre değeridir. Delay komutunda süre değerleri milisaniye cinsinden alınmaktadır ve 1 milisaniye 1 saniyenin binde biridir (1sn = 1000 ms). LED’i yaktıktan sonra 1 saniye bekleyeceğimiz için delay komutunun parantezleri arasına 1000 sayısını yazdık.

Kullanım Şekli: delay(beklemeSüresi);

digitalWrite(LED, LOW);

 

LED’i yaktıktan sonra 1 saniye bekledik ve şimdi sıra kapatmaya geldi. LED’i kapatmak için bu sefer HIGH yerine İngilizce’de alçak anlamına gelen LOW değişkenini kullandık.

Bu yaptığımız ilk proje ile Arduino’yu kodlarken çoğunlukla kullanacağımız kodları öğrendik. Bu komutları bilmeden Arduino’da kod yazmamız çok zor. Diğer projelerimizde de bu komutları kullanacağımızdan öğrenilmesi büyük önem taşımaktadır. Yarınki yazımda if ve else komutlarını işleyeceğim. Görüşmek üzere!

Yazar ile iletişim için: cagriserpin@muhendisarsivi.com

Daha Fazla İlgili Makale Yükleyin
Daha Fazla Yük Arduino

Bir yorum

  1. gökhan

    06/01/2020 at 16:26

    çok güzel bir anlatım teşekkürler 🙂

    cevap

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Kontrol Edin

Temel Elektronik ve Arduino için PDF

Bu paylaşacağımız PDF bize ait olmayıp tamamen takipçilerimizin faydalanması için siteye e…