Robot Programlama – Arduino Tümleşik Geliştirme Ortamının “Program” Yapısı

10. Arduino Tümleşik Geliştirme Ortamının “Program” Yapısı

Temel Yapı

void setup()

void setup() fonksiyonu program yüklenip enerji verildikten veya tekrar başlatıldıktan sonra 1 defa çalışan fonksiyondur. “void setup()” ile başlayan satır, takip eden tırnak içindeki bölümde temel ayarların yapılacağını belirtmektedir. Bu fonksiyon içine pin modları, kütüphaneyi başlatma ve değişkenler yazılmaktadır. Burada yapılan ayarlamalarda hangi mikrodenetleyici pininin (veri bacağının) giriş (input-veri çekilen port-) ya da çıkış (output-veri gönderilen port-) olduğu belirtilmektedir. Örnekte (Resim 7.15) “void setup” içinde seri haberleşme başlatılmış ve pin modu tanımlanmıştır.

void setup fonksiyonu örneği

void loop()

Void loop() fonksiyonuna setup işleminden sonra eklenen ve mikrodenetleyici ya da Arduino’nun beslemesi devam ettiği sürece tekrarlanan komutlar yazılmaktadır. Buraya yazılan komutlar ile Arduino pinleri arasından karşılaştırma, ilişkilendirme, matematiksel işlemler vs. yapılmaktadır. Yazılan program burada sonsuz döngü içinde çalışmaktadır. Aşağıdaki örnekte tanımlanmış olan butuna basıldıysa seri ekrana “Basıldı”, basılmadıysa “Basılmadı” yazan küçük bir program “void loop” içine yazılmıştır.

void loop fonksiyonu örneği

Kontrol Yapıları

#if

#if deyimi koşullu ifadeleri yürütmek için kullanılır. Örneğin belirlenen butona basıldıysa LED’i yak gibi durumlarda veya bir karşılaştırma operatörüyle birlikte karşılaştırmalarda kullanılır. Parantez içinde verilen sayı veya ifade ile belirlenen koşula ulaşılıp ulaşılamadığını test eder. Parantez içindeki ifadeler karşılanıyorsa, parantez içindeki ifadeler çalıştırılır. Değilse, program kod üzerinde atlanır. Aşağıda verilen örnekte (Resim 7.78) Arduino UNO’nun 4 numaralı dijital pinine bağlı bir butona basılmasıyla, 10 numaralı pine bağlı LED’in yanmasını sağlayan #if deyimi uygulaması yer almaktadır. İnceleyerek uygulayınız. Aşağıda verilen ikinci örnekte Arduino UNO’nun 4 numaralı dijital pinine bağlı bir LED’in yanık kalma süresini kontrol eden #if deyimi uygulaması yer almaktadır. Arduino UNO’ya LED bağlantılarını yaptıktan sonra örneği dersin sitesinden (7.10.2.1 numaralı uygulama) kopyalayarak Arduino IDE’de test ediniz.

if örneği breadboard çizim

if else örneği

kinci if örneği breadboard çizimi

ifelse

#if/else



#if/else deyimi koşullu ifadeleri yürütmek için kullanılır. Temel kod akışı üzerinde daha fazla denetim sağlar. “if” eğer, “else” ise değil demektir. “if” ve “else” birlikte kullanılır. “else” tek başına kullanılamaz. Parantez içinde verilen sayı veya ifade ile belirlenen koşula ulaşılıyorsa bir eylem, ulaşılamıyorsa başka bir eylem yapılır. Aşağıda verilen örnekte Arduino UNO’nun 4 numaralı dijital pinine bağlı bir LED’in yanık kalma süresini kontrol eden if/else deyimi uygulaması yer almaktadır. #if için yapılan örneğe #else eklenerek oluşturulmuştur. Arduino UNO’ya LED bağlantılarını yaptıktan sonra örneği dersin sitesinden (7.10.2.2 numaralı uygulama) kopyalayarak Arduino IDE’de test ediniz. İlk örnekle aralarındaki benzerlik ve farklılıkları inceleyiniz.

if else örneği2

if else örneği3

#for

#for deyimi küme parantezi içine alınmış bir deyim bloğunu tekrarlamak için kullanılır. Döngüyü artırmak ve sonlandırmak için genellikle bir artış sayacı kullanılır. For ifadesi tekrar eden işlemler için yararlıdır ve genellikle veri / pin topluluğu üzerinde çalışmak için dizilerle birlikte kullanılır. For döngüsü üst bilgisinde başlatma, koşul ve artırma olmak üzere üç bölüm bulunmaktadır. İlk başlatma tam olarak bir kez olur. Döngüde her defasında koşul test edilir; eğer doğruysa, ifade bloğu ve artım yürütülür, koşul tekrar test edilir. Koşul yanlış olduğunda ise döngü sona erer. Yandaki örneği inceleyiniz (Resim 7.82). Aşağıda verilen diğer örnekte Arduino UNO’nun 4 numaralı dijital pinine bağlı bir LED’in birer saniye aralıklarla 10 defa yandıktan sonra döngüye tekrar başlayan #for deyimi uygulaması yer almaktadır. Arduino UNO’ya LED bağlantılarını yaptıktan sonra örneği dersin sitesinden (7.10.2.3 numaralı uygulama) kopyalayarak Arduino IDE’de test ediniz.

for yapısı

for örneği

for örneği2

#switch/case



#switch/case bir ifadenin sabit değerlerinden birisiyle eşleşip eşleşmediğini test eden çok yönlü bir karar verme yapısıdır. Bir programda çok sayıda koşul kontrolü ve bunların sonucuna göre gerçekleştirilmesi gereken işlemler varsa kullanılır. Bir “switch” deyimi bir değişkenin değerini “case” ifadelerinde belirtilen değerlerle karşılaştırır. Değişkenin değeriyle eşleşen bir “case” ifadesi bulunursa, bu “case” ifadesinin kodu çalıştırılır. Bir switch/case yapısından çıkışı sağlamak ya da sonlandırmak için “break” kullanılmalıdır. “switch” ifadesinden hemen sonra gelen ifade parantez içinde yer almalı ve bir tamsayı veya değişken olmalıdır. “case” ifadesini izleyen ifadeler tamsayı türünde ifadeler olmalıdır, yani değişken içermemelidir. Aşağıdaki örneği inceleyiniz.

switchcase örneği breadboard çizimi

switchcase örneği

#while

#while döngüsü başlamadan önce koşul kontrol edilir. Belirtilen koşul doğru olduğu sürece, döngü içindeki işlemler gerçekleştirilir. Örnekte while döngüsü; LED’i yakacak, 1 saniye bekleyip LED’i söndürecek ve işlemi 1 arttıracaktır. While döngüsünde 10 kere aynı işlem yapıldıktan sonra döngüden çıkılacaktır. Aşağıda verilen örnekte Arduino UNO’nun 4 numaralı dijital pinine bağlı bir LED’in yanık kalma süresini kontrol eden #while deyimi uygulaması yer almaktadır. Arduino UNO’ya LED bağlantılarını yaptıktan sonra örneği dersin sitesinden (7.10.2.4 numaralı uygulama) kopyalayarak Arduino IDE’de test ediniz. #if örneğindeki uygulama ile aralarındaki benzerlik ve farklılıkları inceleyiniz.

while örneği

while örneği2

#do/while

#do/while operatörü karşılaştırmalarda koşul içeriyorsa parantez içinde belirtilen “do” ifadesine göndererek tekrar hesaplama yaptırarak yeni değeri karşılaştırır. Örnekteki program “do” döngüsüne girecek sayıyı 2 arttıracak, seri ekranına yazdıracak “while” ile durumu kontrol edecektir. Sayı 10’dan büyük olduğu zaman döngüden çıkacaktır.

dowhile örneği

#break

#break do, for ve while döngülerinde döngü çalışması bittiğinde döngü dışına çıkmak için kullanılmaktadır. Switch/case yapısında da kullanılır. Örnekte sensör değeri 200’den büyük olursa döngü dışına çıkılacaktır.

break örneği

#continue

#continue do, for ve while döngülerinde bir satırın, işlem yapılmadan geçilmesini istediğimiz durumlarda kullanılmaktadır. Döngünün geri kalan kısmını kontrol etmeye devam eder.

continue örneği

#return



#return bir fonksiyon sonlandırılmak istenirse “return” ile döndürülecek değer belirtilmelidir. Return komutunun ikinci bir kullanım şekli de belli bir yerden sonra kodların çalışmasının istendiği durumlarda kullanılmasıdır. Yandaki örnekte okunan algılayıcı değeri 100’den büyük ise 1 değerine, 100’den küçük ise sıfır değerine döndürülmektedir. Aşağıda ise çalışması istenmeyen kodların nasıl yazılacağı gösterilmiştir.

return örneği

return kullanım örneği

#goto

#goto program akışını istenilen yöne yönlendirmek için kullanılmaktadır. Derin iç içe geçmiş döngülerde veya “if” mantık bloklarından belirli bir şartla ayrılma durumunda kullanışlı olmakta ve kodlamayı basitleştirmek için tercih edilmektedir.

goto örneği

Bir cevap yazın

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