Upload
coskun-tasdemir
View
6.777
Download
13
Embed Size (px)
DESCRIPTION
Çizgi Tagem Arduino Web Seminerleri 4
Citation preview
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
1
ARDUİNO
Arduino Eğitimleri Bölüm 3
Programlama Dili Temelleri - II
http://www.flickr.com/photos/collinmel/2317520331/
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
2
Arduino Dili - IINeler Göreceğiz?
Fonksiyonlar
Matematik İşlemler
Gecikme / Zaman Fonksiyonları
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
3
Arduino DiliFonksiyonlar
ƒ(x)ÇıktılarFonksiyonFonksiyonGirişler
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
4
Arduino DiliFonksiyonlar
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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
5
Arduino DiliFonksiyonlar
loop()loop()
Fonksiyon_A()Fonksiyon_A() Fonksiyon_B()Fonksiyon_B() Fonksiyon_C()Fonksiyon_C()
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
6
Arduino DiliFonksiyonlar
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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
7
Arduino DiliFonksiyonlar
Fonksiyonlar parametre alıp almadıklarına veya değer döndürüp döndürmemelerine göre gruplanabilir:
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
8
Arduino DiliFonksiyonlar
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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
9
Arduino DiliFonksiyonlar
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
Dönüş değeri tipi
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
10
Arduino DiliFonksiyonlar
void ArduinoYazdir() { /* Seri çıkış üzerinden “Arduino” yazdıran fonksiyon */ Serial.println(“Arduino”);}
Dönüş değeri yok (void)
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
11
Arduino DiliFonksiyonlar
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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
12
Fonksiyon Çağırma
/* Seri haberleşme üzerinden “Arduino” yazdıranfonksiyon saniyede 1 çağırılıyor. */void setup() { Serial.begin(9600); }void loop() { ArduinoYazdir(); // Fonksiyon çağrısı delay(1000); // Bir saniye bekle }
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
13
Arduino DiliFonksiyonlar
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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
14
Arduino DiliFonksiyonlarda Değerle Çağırma
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
Dönüş değeri tipi
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
15
Arduino DiliFonksiyonlar
Referansla çağırmada fonksiyona iletilen parametrelerin bellek adresleri(referans) fonksiyona iletilir ve parametrelerin orijinal değerleri üzerinde işlem yapılır.
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
16
Arduino DiliFonksiyonlarda Referansla
Çağırma
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
referans
Dönüş değeri tipi void
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
17
Arduino DiliGecikme 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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
18
Arduino DiliGecikme 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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
19
Arduino DiliMatematik 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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
20
Arduino DiliMatematik Operatörler
Operatör İşlem
+ TOPLAMA
- ÇIKARMA
* ÇARPMA
/ BÖLME
% KALAN
= ATAMA
13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
21
Arduino DiliMatematik Fonksiyonlar
Fonksiyon Parametre İşlem
Pow(x,n) x: Sayın: Üs değeri
Üs alma
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.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
22
Arduino DiliMatematik Fonksiyonlar
Fonksiyon Parametre Sonuç
a = min(x,y) x: Sayi-1y: Sayi-2
İki sayının en küçüğü
a = max(x,y) x: Sayi-1y: Sayi-2
İki sayının en büyüğü
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