Top Banner
11.03.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 http://www.flickr.com/photos/collinmel/23175203 31/
42

Arduino eğitimleri 3 - arduino programlama dili

Jun 28, 2015

Download

Technology

Arduino Web Seminerleri - 3
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Arduino eğitimleri   3 - arduino programlama dili

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

http://www.flickr.com/photos/collinmel/2317520331/

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

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

2

Arduino DiliNeler Göreceğiz?

Arduino Programlama Dili

Veri Tipleri

Kontrol Yapıları

Döngüler

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

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

3

Arduino Dili

Arduino temel olarak Processing programlama dilinedayanıyor.

Söz dizimi (sentaks) olarak C / C++ / Java dillerine benzer.

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

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

4

Arduino Dili

Satır sonlarında noktalı virgül (;) bulunuyor

Bloklar süslü parantezlerle { } tanımlanıyor.

// veya /* */ karakterleri ile yorumlar yazılabilir.

Page 5: Arduino eğitimleri   3 - arduino programlama dili

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

5

İLK PROGRAMIMIZ/* Pin13’e bağlı olan LED saniyede birYakılıp söndürülüyor. */void setup() { // 13. pini çıkış olarak ayarlıyoruz // 13. pine Arduino kartında bir LED bağlı pinMode(13, OUTPUT); }void loop() { digitalWrite(13, HIGH); // LED’i yak delay(1000); // Bir saniye bekle digitalWrite(13, LOW); // LED’i söndür delay(1000); // Bir saniye bekle}

Page 6: Arduino eğitimleri   3 - arduino programlama dili

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

6

Arduino Programlama

Setup bir kerelik, loop sürekli çalışan işlemler için.

main() fonksiyonu bulumuyor. Onun yerine setup() ve loop() var.

delay() fonksiyonu ile gecikmeler oluşturuluyor

Page 7: Arduino eğitimleri   3 - arduino programlama dili

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

7

Veri Tipleri

Bütün işlemleri veri tipleri üzerinde gerçekleştiriyoruz.

Verileri tutan belleklere “değişken” isimleri vererek kullanıyoruz.

Page 8: Arduino eğitimleri   3 - arduino programlama dili

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

8

Değişkenler

Değişken isimleri

Türkçe karakter içeremez

Rakamlarla başlayamaz

Büyük – küçük harf duyarlıdır.

Programlama dilinin anahtar kelimeleri isim olarak kullanılamaz

Page 9: Arduino eğitimleri   3 - arduino programlama dili

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

9

Veri Tipleri

Tam sayı tipler: (unsigned /signed) char, int, long

Kayar Noktalı Tipler: float, double

Karakter: char, string

Page 10: Arduino eğitimleri   3 - arduino programlama dili

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

10

Veri Tipleri TİP BOYUT ARALIK

int 2 bayt -32768 ile 32767 arası

unsigned int 2 bayt 0 ile 65535 arası

long 4 bayt -2147483648 ile 2147483647

unsigned long 4 bayt 0 ile 4294967295 arası

char 1 bayt -128 ile 127 arası

byte 1 bayt 0 ile 255 arası

Page 11: Arduino eğitimleri   3 - arduino programlama dili

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

11

Veri Tipleri

TİP BOYUT ARALIK

float 4 bayt -3.4028235E+38 ile

3.4028235E+38

double 4 bayt -3.4028235E+38 ile

3.4028235E+38

boolean 1 bayt TRUE(1) veya FALSE(0)

Page 12: Arduino eğitimleri   3 - arduino programlama dili

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

12

Veri Tipleri

Tam sayı tipler: (unsigned /signed) char, int, long, short

Kayar Noktalı Tipler: float, double

Karakter: char, string

Page 13: Arduino eğitimleri   3 - arduino programlama dili

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

13

Veri Tipleri

Arduino 8 bitlik bir mikrodenetleyiciye sahip

Kısıtlı bir belleğe sahip olduğundan veri tiplerini doğrukullanmak önemli

Noktalı-sayılar fazla işlem gücü gerektiriyor!

Page 14: Arduino eğitimleri   3 - arduino programlama dili

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

14

Veri Tipleri

UYGULAMA

Page 15: Arduino eğitimleri   3 - arduino programlama dili

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

15

Veri TipleriDiziler

Aynı tipte birden fazla değişken gerekli olduğunda diziler kullanılabilir

int dizi[10]; // 10 elemanlı bir int dizisifloat ondalikDizi[5]; // 5 elemanlı bir float dizisichar karDizi[] = {'A','R','D','U','I','N','O'};int sayiDizisi[] = {1,2,3,4,5,6,7};

Page 16: Arduino eğitimleri   3 - arduino programlama dili

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

16

Veri Tipleri2 boyutlu Diziler

int dizi[4][5]; // 4x5 elemanlı bir int dizisi

Sütun 0 Sütun 1 Sütun 2 Sütun 3 Sütun 4

Satır 0 dizi[0][0] dizi[0][1] dizi[0][2] dizi[0][3] dizi[0][4]

Satır 1 dizi[1][0] dizi[1][1] dizi[1][2] dizi[1][3] dizi[1][4]

Satır 2 dizi[2][0] dizi[2][1] dizi[2][2] dizi[2][3] dizi[2][4]

Satır 3 dizi[3][0] dizi[3][1] dizi[3][2] dizi[3][3] dizi[3][4]

Page 17: Arduino eğitimleri   3 - arduino programlama dili

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

17

Veri TipleriDiziler

int ikiBoyutluDizi[4][5]; // 4x5 elemanlı bir int dizisi

int ikiBoyutluDizi[4][5]= { {1, 2, 3, 4, 5},{11, 12, 13, 14, 15},{10, 20, 30, 40, 50},{-1, -2, -3, -4, 890 }};

Page 18: Arduino eğitimleri   3 - arduino programlama dili

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

18

Diziler

UYGULAMA

Page 19: Arduino eğitimleri   3 - arduino programlama dili

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

19

Değişkenlerin Faaliyet Alanları(scope)

Değişkenler program içerisinde geçerli oldukları alanlara göre global veya lokal değişkenler olarak ikiye ayrılabilirler

Page 20: Arduino eğitimleri   3 - arduino programlama dili

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

20

Değişkenlerin Faaliyet Alanları(scope)

/* Global değişkenlerin tanımlı olduğu bölge*/

void setup() { /* Yerel değişkenlerin tanımlı olduğu bölge*/}void loop() { /* Yerel değişkenlerin tanımlı olduğu bölge*/}

Page 21: Arduino eğitimleri   3 - arduino programlama dili

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

21

Değişkenlerin Ömürleri

Değişkenler program içerisinde belirli bölgelerde tanımlı olup daha sonra yok edilebilirler.

Global değişkenler bütün program boyunca tanımlıdırlar, yok edilmezler.

Otomatik değişkenler tanımlı oldukları blok boyunca yaşayıp bloktan çıkınca yok edilirler.

Page 22: Arduino eğitimleri   3 - arduino programlama dili

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

22

Kontrol Yapıları

Programımızın akışını değiştirmek, belirli şartlar sağlandığında belirli işlemler yaptırmak için kontrol yapıları kullanılır.

“Belirli şartları” mantık önermelerle ifade ediyoruz

Page 23: Arduino eğitimleri   3 - arduino programlama dili

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

23

Mantık Önermeleria == b a eşittir b

a != b a eşit değildir b

a > b a küçüktür b

a < b a büyüktür b

a <= b a küçük - eşittir b

a >= b a büyük - eşittir b

Page 24: Arduino eğitimleri   3 - arduino programlama dili

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

24

Mantık Önermeleri

Mantık önermelerin sonucu DOĞRU (TRUE / 1) veya YANLIŞ (FALSE / 0) olabilir.

Page 25: Arduino eğitimleri   3 - arduino programlama dili

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

25

Mantık Operatörleri

Temel mantık operatörleri AND (ve), OR (veya), NOT (değil) ‘dir.

AND && OR || NOT !

Page 26: Arduino eğitimleri   3 - arduino programlama dili

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

26

Mantık ÖnermeleriAND

İFADE - 1 İFADE - 2 İFADE1 && İFADE 2

TRUE TRUE TRUE

TRUE FALSE FALSE

FALSE TRUE FALSE

FALSE FALSE FALSE

AND operatörü uygulanan iki ifadeden her ikisinin de sonucu TRUE ise sonuç TRUE olur!

Page 27: Arduino eğitimleri   3 - arduino programlama dili

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

27

Mantık ÖnermeleriOR

İFADE - 1 İFADE - 2 İFADE1 || İFADE 2

TRUE TRUE TRUE

TRUE FALSE TRUE

FALSE TRUE TRUE

FALSE FALSE FALSE

OR operatörü uygulanan iki ifadeden EN AZ birisinin sonucu TRUE ise sonuç TRUE olur!

Page 28: Arduino eğitimleri   3 - arduino programlama dili

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

28

Mantık ÖnermeleriNOT

İFADE - 1 !İFADE-1

TRUE FALSE

FALSE TRUE

Bir ifadeye NOT operatörü uygulanırsa sonuc ifadenin sonucun DEĞİLİ (tersi) olur!

Page 29: Arduino eğitimleri   3 - arduino programlama dili

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

29

Mantık ÖnermeleriNOT

İFADE - 1 !İFADE-1

TRUE FALSE

FALSE TRUE

Bir ifadeye NOT operatörü uygulanırsa sonuc ifadenin sonucun DEĞİLİ (tersi) olur!

Page 30: Arduino eğitimleri   3 - arduino programlama dili

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

30

Dallanma

“Belirli bir şarta göre şu işi yap” durumları: “Hava kararınca lambayı yak!” “Butona basıldıysa motoru hızlandır” En temel karar yapıları Program akışının değiştirilmesi

Page 31: Arduino eğitimleri   3 - arduino programlama dili

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

31

Dallanma

if ( degisken1 == 3){// degisken1 3’e eşitse işletilecek bölüm….}else{// degisken1 3’e eşit değilse işletilecek bölüm….}

Page 32: Arduino eğitimleri   3 - arduino programlama dili

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

32

Dallanma

if ( degisken1 == 3){// degisken1 3’e eşitse işletilecek bölüm….}else if ( degisken1 == 4){// degisken1 4’e eşit değilse işletilecek bölüm….}else{…}

Page 33: Arduino eğitimleri   3 - arduino programlama dili

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

33

Dallanma

if ( degisken1 == 3){// degisken1 3’e eşitse işletilecek bölüm….}else{// degisken1 3’e eşit değilse işletilecek bölüm….}

Page 34: Arduino eğitimleri   3 - arduino programlama dili

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

34

Döngüler

while / do – while döngüleri

for döngüsü

Page 35: Arduino eğitimleri   3 - arduino programlama dili

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

35

Döngülerfor

for (başlangıc; adımda doğrulanacak önerme; adım){ // her bir adımda gerçekleştirilecek işlemler}

for (i = 0; i < 10; i++){ // her bir adımda gerçekleştirilecek işlemler Serial.println(“Arduino”);}

Page 36: Arduino eğitimleri   3 - arduino programlama dili

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

36

for döngüsü

UYGULAMA

Page 37: Arduino eğitimleri   3 - arduino programlama dili

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

37

Döngülerwhile

while (mantıksal önerme){ // her bir adımda gerçekleştirilecek işlemler}

while (i < 100){ // her bir adımda gerçekleştirilecek işlemler Serial.println(“Arduino”); i++;}

Page 38: Arduino eğitimleri   3 - arduino programlama dili

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

38

While döngüsü

UYGULAMA

Page 39: Arduino eğitimleri   3 - arduino programlama dili

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

39

Döngülerdo while

do{ // her bir adımda gerçekleştirilecek işlemler} while (mantıksal önerme);

do{ // her bir adımda gerçekleştirilecek işlemler Serial.println(“Arduino”); i++;} while(i < 100);

Page 40: Arduino eğitimleri   3 - arduino programlama dili

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

40

Döngülercontinue ifadesi

Döngü içerisindeyken continue ifadesinden sonraki işlemler atlanarak döngü tekrar başa döndürülür. continue ifadesini döngüdeyken istisnai durumlar oluşturmak için kullanabiliriz.

Page 41: Arduino eğitimleri   3 - arduino programlama dili

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

41

Döngülerbreak ifadesi

Döngü içerisindeyken break ifadesi bulunuyorsa döngüden çıkılır.

break ifadesini belirli bir şart oluştuğunda döngüyü sonlandırmak için kullanabiliriz.

Page 42: Arduino eğitimleri   3 - arduino programlama dili

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

42

Continue, break ifadeleri

UYGULAMA