Arduino ile Mikrodenetleyici Programlamaya Giriş

In Haber by Victor Cuiumju2 Comments

Merhabalar! Bugün Arduino kullanarak basit bir uygulama yapacağız. Bu rehberin, size elektronik ve programlama konusunda iyi örnekler verip sizi geliştireceğini düşünüyorum. Aynı anda mikro denetleyici programlamak için bana göre en basit yöntemlerden biri. Arduino ile ilgili daha detaylı bilgi almak için http://tr.wikipedia.org/wiki/Arduino adresini ziyaret edebilir ya da konuyla ilgili sorularınız bana Technopat Forum’dan iletebilirsiniz. İlk uygulamada en basiti yapacağız, LED’leri denetleyen program.

Gerekenler :

1)      Arduino platformu

Arduino Bileşenler

Arduino’yu İstanbul’da Karaköy’de ve Perpa’da bulabilirsiniz veya interneten  araştırabilirsiniz. Fiyatı yaklaşık 60 lira.

2)      Arduino için bir adaptör (5 Volt yeterli) ve  USB kablo gerekiyor.

3)       LED.

İlerde Breadboard (fiyatı 6 lira), direçler (220 om, 10kom), kondansatör (1mf), sensörler (ışık sensörü), birkaç tane düğüme, küçük hoparlör ve kablolara da ihtiyacımız olacak.

Programlama ortamını yüklemek için  http://arduino.cc/en/Main/Software adresine girip Windows  veya başka işletim sistemi seçip Arduino 1.0.3 sürümünü indirmeniz gerek.

İndirin: Arduino 1.0.3

Dosya ZIP formatında inecek. Mesela WinRAR’la dosyayı  unzip yapabiliriz. İçinde bize lazım olanlar Drivers ve Arduino.exe. Arduino bilgisayara ilk kez bağlandığı zaman  driverları yükleyeceğiz. Sürücüleri interneten indirdiğimiz dosyada bulabiliriz.  Arduino.exe’yi çalıştırdıktan sonra karşımıza böyle bir pencere gelecek .

Arduino Arabirimi

Sizdeki sürüm daha yeni olacağı için pencere biraz farklı olabilir. İlk buton, Compile (Verify) butonu, programı yazdıktan sonra eğer hatalar varsa onları Text Console’da görmemizi sağlıyor.

Sonraki düğme, Upload,  yazdığımız programı Arduino’ya aktarıyor.

New butonu yeni projeyi açıyor

Save kaydediyor

Open ise bizim daha önce yazdığımız programı seçip açamamıza yarıyor.

O zaman program yazmaya başlayalım.

Programımız LED’i bir saniye yakacak, sonra bir saniye söndürecek ve bunu sonsuza kadar devam ettirecek.

/*

Blink

Turns on an LED on for one second, then off for one second, repeatedly.

 

This example code is in the public domain.

*/

 

// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;

 

// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output.

pinMode(led, OUTPUT);

}

 

// the loop routine runs over and over again forever:

void loop() {

digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)

delay(1000);               // wait for a second

digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW

delay(1000);               // wait for a second

}

Bizim yazdığımz kod C tabanlı Processing programlama dili.

Şimdi adım adım kodları açıklayalım:

/* ve */ arasına birden fazla satır ekleyip açıklama yazabiliyoruz.

//  karakterlerini ise sadece bir satır yazacağımız zaman kullanıyoruz.

Bu karakterler programda yazdığımız kodları açıklamak için kullanıyor.

İlk satırda  değişkeni belirliyoruz:

int led = 13;

int = integer(tamsayı) demek bizim değişken bellekte 2 byte yer alabilecek. Bir byte 8 Bit’e eşit. O zaman biz de 16 Bit bellekte yeri ayarlayacağız. Ondalık sisteme (2 üzeri 16 = 65536) çevirdiğimiz zaman -32768 den 32767 kadar rakamı alabilir.

led değişkenin ismi. Bu değişken, içinde 13 rakamı tutacak. Neden 13 atadığımızı açıklamaya çalışayım. Aruduino’da iki tür portalar vardır: birincisi anlog, ikincisi dijitaldır. Bu portlar çevreden sinyaleri alıp işledikten sonra size cevabı verebilirler. Kısaca bu portlara birşeyler yazabiliriz ve onlardan veri okuyabiliriz (giriş-çıkış modunda çalışabiliyorlar). Örneğimizde  biz 13. portu kullanacağız. Bunun için değişkene 13 rakamı verdik.

;

Komutun sonunu belirliyor.

void setup()

 {               

}

void loop()

{

}

Tüm Arduino programlarda mutlaka iki tane metod (fonksiyon) vardır. Void setup metodu programda bir kez yapılacak işleri belirliyor. Mesela hangi portu çıkış, hangi portu giriş için kullanacağımızı… İkinci ise void loop (loop, döngü demek) tekrarlayan işleri belirliyor.

pinMode(led, OUTPUT);    

PinModel  metodu  bizim 13. pini çıkış olarak kullanacağımızı programa söylüyor. Led, bizim daha önce belirtiğimiz değişken. Output ise çıktıyı temsil ediyor.

digitalWrite(led, HIGH);  

digitalWrite metodu 13. pine  bir şeyler yazacak. Bizim örneğimizde LED’i yakacak. HIGH lojik 1 gönderiyor. LOW olsaydı 0 gönderecekti.

delay(1000);

delay metodu  geciktirme görevi üstleniyor. Programda 1000 milisaniye bir saniyeye eşit. Ve sonraki komuta geçiyor.

Yine LED’i yakıyor ve bekliyor ve bunu sonsuza kadar tekrarlıyor.

Programı yazdıktan sonra birinci düğmeye basacağız (Verify, Compile). Sonra tools düğmesindeki serial portu kısmından Arduino’yu bağladığımız portu seçiyoruz.  Bunu öğrenmek için Denetim Masası > System > Aygıt Yöneticisi > Ports COM&LPT içinden Arduino’nun hangi portta olduğunuz öğrenebiliriz. Aynı yerde (Tools menüsünde) Board seçeneği var. Orda hangi Arduino modelini kullanıyorsak onu seçmemiz gerekiyor. Bunları yaptıktan sonra ikinci düğmeye (Upload) basıyoruz ve programımızı mikrodenetleyiciye flashlıyoruz. Arduino üzerinde küçük LED mevcut (sarı olan, Arduino’da L ifade altında bulunuyor) . Bu LED yanıp sönecektir. İsterseniz şimdi 13. pine LED’i takabilirsiniz. Kısa bacak toprağa (GND),  uzun ise 13. dijital pine girecek. Program kodunu  biraz değiştirip birkaç tane LED’i birden de takabilirsiniz.

Açık ve anlaşılır bir anlatım yaptığımı düşünüyorum.  Rehberi daha önce bu tür çalışmalarla uğraşmayan ama meraklı olup bir yerden başlamak isteyen kullanıcılar için yazdım. Umarım sizde de bu uygulama sorunsuz çalışacaktır. Herhangi bir problemde Technopat Forumda Elektronik Devreler başlığı altında konu açabilirsiniz. Seve seve cevaplayacağımdan emin olabilirsiniz.