Merhaba Teknoloji Haberleri – Teknoloji Rehberi ailesi, bugün sizlere Arduino fonksiyonlar konusundan bahsedeceğiz.
Arduino fonksiyonlar, bir programın çalışmasında büyük kolaylıklar sağlar. Tam olarak işlevini söylemek gerekirse bir işlemi defalarca yapmak yerine bir kerede yapma gibi bir kolaylık sağlar. Bu fonksiyonların da bir sınıflandırılış şekli vardır. Fonksiyonlar parametre alan veya alamayan, geriye değer döndüren veya döndüremeyen şeklinde sınıflara ayrılır. Arduino fonksiyon oluşturma yapabilmek için yazımızı okuyabilirsiniz.
Aşağıda bu sınıflandırılmış fonksiyonları göreceğiz.
-
Paramametre Almayan Fonksiyonlar (Geriye Değer Döndürmeyen)
Bu tip fonksiyonlar herhangi bir değeri geriye döndürmez. Geriye değer döndürmediği için de “void” komutu ile başlangıç yapılır. Aşağıda Arduino fonksiyon tanımlama ve çağırma örneği bulunmaktadır.
Örneğin;
Arduino fonksiyon tanımlama: void FonksiyonAdi(){ }
Arduino fonksiyon çağırma: FonksiyonAdi()
Burada gördüğünüz gibi void komutu, fonksiyonun geri değer döndürmediğini belirtir. Örnekte de gösterildiği gibi void kelimesinden sonra fonksiyonun adı yazılır ve devamında parantez açıp kapatılır. Bu kodlamayı yaptıktan sonra da küme parantez içerisinde fonksiyon çağırmanız gerekecektir. Yani küme parantez içerisinde kodlar yazarak fonksiyon çağırabileceksiniz.
Aşağıda sizler için hazırlanmış örnek bir fonksiyon bulunmaktadır. Bu fonksiyonda 2 numaralı pine basıldığında fonksiyon sürekli çağrılacaktır. Fonksiyon çağrıldığında da 12 ve 13 sayılarını toplama işlemi yapılacak. Toplanan değerlerde seri porta gönderilecek. Örnek kodlar aşağıda verilmiştir.
void setup() {
pinMode(2, INPUT); // 2 numaralı dijital pini giriş olarak ayarladık
Serial.begin(9600); // seri haberleşme hızı 9600 BaudRate
}
void toplama(){ // toplama adında fonksiyon tanımladık
int toplam = 12+13; // toplam adında tamsayı türü değişken tanımladık ve
// 12 ile 13 sayısının toplamını değişkene atadık
Serial.print(toplam); // değişken değerini seri porta yazdırdık
}
void loop() { // sonsuz döngümüze girdik
if(digitalRead(2)){ // eğer 2 numaralı pindeki butona basılı ise
toplama(); // toplama fonksiyonunu çağır
}
İlginizi Çekebilir: Arduino While Döngüsü |
-
Parametre Alan Fonksiyonlar (Geriye Değer Döndürmeyen)
Bu fonksiyonda değerler işleme tabi tutulur ancak fonksiyon bu değerleri geriye döndürmez. Arduino programlama yapılırken bu fonksiyondan sıklıkla faydalanılır. Hatta digitalWrite() fonksiyonu buna örnek oluşturur.
Bu fonksiyonun tanımı ve çağrışımı aşağıdaki gibidir.
Fonksiyon tanımlama: vois fonksiyonadi(int birinciParametre, int ikinci parametre, string n’inciParametre){}
Fonksiyon çağırma: fonksiyonAdi(birinciDeger, ikinciDeger, n’inciDeger);
Aşağıda örnek bir toplama fonksiyonu yer almaktadır. 2 yazan pine bir buton bağladık ve butona basıldığında fonksiyona iki adet sayı gönderdik. Bunun sonucunda fonksiyon sayıları toplayıp sonucu seri porta gönderir. Daha iyi anlamanız için aşağıda kodlar yazmaktadır.
void setup() {
pinMode(2, INPUT); // 2 numaralı dijital pini giriş olarak ayarladık
Serial.begin(9600); // seri haberleşme hızı 9600 BaudRate
}
void topla(int sayi1, int sayi2){ // toplama adında fonksiyon tanımladık
int sonuc = sayi1 + sayi2; // toplam adında tamsayı türü değişken tanımladık ve
// fonksiyona gönderdiğimiz 2 ve 3 sayısının toplamını değişkene atadık
Serial.print(sonuc); // sonuc değişkeni değerini seri porta yazdırdık
}
void loop() { // sonsuz döngümüze girdik
if(digitalRead(2)){ // eğer 2 numaralı pindeki butona basılı ise
topla(2,3); // toplama fonksiyonuna 2 ve 3 değerini gönder
}
İlginizi Çekebilir: Arduino Değişkenler |
-
Parametre Almayan Fonksiyonlar(Geriye Değer Döndüren)
Adından da anlaşıldığı gibi bu tür fonksiyonlara parametre gönderemezsiniz. Parametre gönderilmemesine karşın fonksiyon deriye değer döndürebilir. Bu fonksiyonlar int, string, bool gibi komutlarla başlar ve sonunda return komutu yer alır.
Örnek;
Fonksiyon tanımlama: int fonksiyonAdi(){}
Fonksiyon çağırma: int gelen = fonksiyonAdi();
Aşağıda toplamları geri dönen sayı döngüsü yapıldı. 13 ve 13 sayıları toplanıp geri dönecek ve seri porta yazdırılacak. Kodlar aşağıdaki gibidir.
void setup() {
pinMode(2, INPUT); // 2 numaralı dijital pini giriş olarak ayarladık
Serial.begin(9600); // seri haberleşme hızı 9600 BaudRate
}
int toplama(){ // toplama adında fonksiyon tanımladık
int toplam = 12+13; // toplam adında tamsayı türü değişken tanımladık ve
// 12 ile 13 sayısının toplamını değişkene atadık
return toplam;
}
void loop() { // sonsuz döngümüze girdik
if(digitalRead(2)){ // eğer 2 numaralı pindeki butona basılı ise
Serial.print(toplama()); // toplama fonksiyonunu çağır ve dönen değeri seri porta yaz
}
}
-
Parametre Alan Fonksiyonlar (Geriye Değer Döndüren)
Bu türdeki fonksiyonlara değer gönderilir. Bu değerler fonksiyon tarafından işleme tabi tutularak geriye döndürülür.
Örnek;
Fonksiyon tanımlama: int fonksiyonAdi(int birinciParametre, int ikinciParametre, string n’inciParametre){}
Fonksiyon çağırma: int gelen = fonksiyonAdi(birinciDeğer, ikinciDeğer, n’inciDeğer);
Aşağıda örnek kod dizilimi bulunmaktadır.
void setup() {
pinMode(2, INPUT); // 2 numaralı dijital pini giriş olarak ayarladık
Serial.begin(9600); // seri haberleşme hızı 9600 BaudRate
}
int toplama(int sayi1, int sayi2){ // toplama adında fonksiyon tanımladık
int toplam = sayi1 + sayi2; // toplam adında tamsayı türü değişken tanımladık ve
// 12 ile 13 sayısının toplamını değişkene atadık
return toplam;
}
void loop() { // sonsuz döngümüze girdik
if(digitalRead(2)){ // eğer 2 numaralı pindeki butona basılı ise
Serial.println(toplama(14, 18)); // toplama fonksiyonunu çağır ve dönen değeri seri porta yaz
}