22
08.06.22 Coşkun TAŞDEMİR - Çizgi-T agem Arduino Eğitimleri 1 ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri - II http://www.flickr.com/photos/collinmel/23175203 31/

Arduino eğitimleri 4 - arduino programlama dili - 2

Embed Size (px)

DESCRIPTION

Çizgi Tagem Arduino Web Seminerleri 4

Citation preview

Page 1: Arduino eğitimleri   4 - arduino programlama dili - 2

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/

Page 2: Arduino eğitimleri   4 - arduino programlama dili - 2

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ı

Page 3: Arduino eğitimleri   4 - arduino programlama dili - 2

13.04.23 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri

3

Arduino DiliFonksiyonlar

ƒ(x)ÇıktılarFonksiyonFonksiyonGirişler

Page 4: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 5: Arduino eğitimleri   4 - arduino programlama dili - 2

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()

Page 6: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 7: Arduino eğitimleri   4 - arduino programlama dili - 2

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:

Page 8: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 9: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 10: Arduino eğitimleri   4 - arduino programlama dili - 2

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)

Page 11: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 12: Arduino eğitimleri   4 - arduino programlama dili - 2

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 }

Page 13: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 14: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 15: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 16: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 17: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 18: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 19: Arduino eğitimleri   4 - arduino programlama dili - 2

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.

Page 20: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 21: Arduino eğitimleri   4 - arduino programlama dili - 2

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

Page 22: Arduino eğitimleri   4 - arduino programlama dili - 2

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