4. Arduino Dili
Fonksiyonlar
Arduino programlarımızı tek bir fonksiyon (loop())
içerisinde yazabileceğimiz gibi onları küçük birimlere
de ayırabiliriz.
Daha önce kullandığımız Delay() fonksiyonu parametre
alan ama değer döndürmeyen bir fonksiyondur.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
4
6. Arduino Dili
Fonksiyonlar
Fonksiyonlar parametre almaları ve değer
döndürmeleri zorunlu değildir.
Değer döndürmeyen fonksiyonların dönüş
değer tipi “void” dir.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
6
7. Arduino Dili
Fonksiyonlar
Fonksiyonlar parametre alıp almadıklarına veya
değer döndürüp döndürmemelerine göre
gruplanabilir:
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
7
8. Arduino Dili
Fonksiyonlar
Parametre almayan ve dönüş değeri olmayan
Parametre alan ve dönüş değeri olmayan
Parametre almayan ve dönüş değeri olan
Parametre alan ve dönüş değeri olan
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
8
9. Arduino Dili
Fonksiyonlar
Dönüş değeri tipi
int ornekBirFonksiyon(int sayi1, int sayi2) {
/* Parametre olarak verilen iki tam sayının
toplamını döndüren fonksiyon */
int sonuc;
sonuc = sayi1 + sayi2;
return sonuc;
}
1. Parametre 2. Parametre
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
9
10. Arduino Dili
Fonksiyonlar
Dönüş değeri yok (void)
void ArduinoYazdir() {
/* Seri çıkış üzerinden “Arduino” yazdıran
fonksiyon
*/
Serial.println(“Arduino”);
}
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
10
11. Arduino Dili
Fonksiyonlar
Fonksiyonları tekrar edilen işlemler için
kullanabiliriz.
Fonksiyonlara verdiğimiz girişlere
“parametre” denilir.
Fonksiyonlar tanımlanırken hangi tip
parametre alacakları belirtilir.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
11
13. Arduino Dili
Fonksiyonlar
Fonksiyonlara parametre iletmenin iki yolu vardır:
Değerle çağırma ve Referansla çağırma
Değerle çağırmada fonksiyona iletilen
parametrelerle yapılan işlemler sonucu
verilen parametrelerin değerlerinde değişim
olmaz.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
13
14. Arduino Dili
Fonksiyonlarda Değerle Çağırma
Dönüş değeri tipi
int ornekBirFonksiyon(int sayi1, int sayi2) {
/* Parametre olarak verilen iki tam sayının
toplamını döndüren fonksiyon */
int sonuc;
sonuc = sayi1 + sayi2;
return sonuc;
}
1. Parametre 2. Parametre
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
14
15. Arduino Dili
Fonksiyonlar
Referansla çağırmada fonksiyona iletilen
parametrelerin bellek adresleri(referans)
fonksiyona iletilir ve parametrelerin orijinal
değerleri üzerinde işlem yapılır.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
15
16. Arduino Dili
Fonksiyonlarda Referansla
Çağırma referans
Dönüş değeri tipi void
void degerleriTopla(int sayi1, int sayi2, int &toplam) {
/* Parametre olarak verilen iki tam sayının
toplamını döndüren fonksiyon */
toplam = sayi1 + sayi2;
}
1. Parametre
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
16
17. Arduino Dili
Gecikme ve Zaman
Fonksiyonları
Gecikme fonksiyonu delay()’i daha önce görmüştük.
delay(ms_gecikme) ms gecikme
delayMicroseconds(us_gecikme) us
gecikme gibi
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
17
18. Arduino Dili
Gecikme ve Zaman
Fonksiyonları
millis() fonksiyonu Arduino’nun çalışmasından
itibaren geçen süreyi ms cinsinden döndürür.
Ortalama 50 günde bir sıfırlanır.
Dönüş değeri yüksek bir değer olabileceğinden
“unsigned long” tipi kullanılmalıdır.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
18
19. Arduino Dili
Matematik Fonksiyonlar
Temel matematik işlemleri matematik
operatörleriyle gerçekleştirebiliyoruz.
Karekök alma, trigonometrik hesaplamalar
gibi işlemler için matematik kütüphanesi
fonksiyonlarını kullanabiliriz.
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
19
20. Arduino Dili
Matematik Operatörler
Operatör İşlem
+ TOPLAMA
- ÇIKARMA
* ÇARPMA
/ BÖLME
% KALAN
= ATAMA
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
20
21. Arduino Dili
Matematik Fonksiyonlar
Fonksiyon Parametre İşlem
Pow(x,n) x: Sayı Üs alma
n: Üs değeri
Sqrt(x) x: sayi Karekök alma
Abs(x) x: sayi Mutlak Değer
sin(x) x: açı (radyan) Sinüs
cos(x) x: açı (radyan) Kosinüs
tan(x) x: açı (radyan) Tanjant
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
21
22. Arduino Dili
Matematik Fonksiyonlar
Fonksiyon Parametre Sonuç
a = min(x,y) x: Sayi-1 İki sayının en küçüğü
y: Sayi-2
a = max(x,y) x: Sayi-1 İki sayının en büyüğü
y: Sayi-2
a = constrain(x,min,max) x: sayı İki değer arasına sınırlama
a = floor(x) x: ondalık sayı En küçük tam sayıya
yuvarlama
a = ceil(x) x: ondalık sayı En büyük tam sayıya
yuvarlama
13/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
22