arduino eğitimleri - 3 - arduino programlama dili

Upload: kenan-caglayan

Post on 16-Oct-2015

156 views

Category:

Documents


2 download

TRANSCRIPT

  • ARDUNOArduino Eitimleri Blm 3Programlama Dili Temellerihttp://www.flickr.com/photos/collinmel/2317520331/

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Arduino DiliNeler Greceiz? Arduino Programlama Dili Veri Tipleri Kontrol Yaplar Dngler

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Arduino DiliArduino temel olarak Processing programlama dilinedayanyor.

    Sz dizimi (sentaks) olarak C / C++ / Java dillerine benzer.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Arduino Dili Satr sonlarnda noktal virgl (;) bulunuyor Bloklar ssl parantezlerle { } tanmlanyor. // veya /* */ karakterleri ile yorumlar yazlabilir.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • LK PROGRAMIMIZ/* Pin13e bal olan LED saniyede birYaklp sndrlyor. */void setup() { // 13. pini k olarak ayarlyoruz // 13. pine Arduino kartnda bir LED bal pinMode(13, OUTPUT); }void loop() { digitalWrite(13, HIGH); // LEDi yak delay(1000); // Bir saniye bekle digitalWrite(13, LOW); // LEDi sndr delay(1000); // Bir saniye bekle}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Arduino Programlama Setup bir kerelik, loop srekli alan ilemler iin. main() fonksiyonu bulumuyor. Onun yerine setup() ve loop() var. delay() fonksiyonu ile gecikmeler oluturuluyor

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri Btn ilemleri veri tipleri zerinde gerekletiriyoruz. Verileri tutan belleklere deiken isimleri vererek kullanyoruz.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • DeikenlerDeiken isimleri

    Trke karakter ieremez Rakamlarla balayamaz Byk kk harf duyarldr. Programlama dilinin anahtar kelimeleri isim olarak kullanlamaz

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri Tam say tipler: (unsigned /signed) char, int, long

    Kayar Noktal Tipler: float, double Karakter: char, string

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri Tam say tipler: (unsigned /signed) char, int, long, short Kayar Noktal Tipler: float, double Karakter: char, string

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri Arduino 8 bitlik bir mikrodenetleyiciye sahip Kstl bir bellee sahip olduundan veri tiplerini dorukullanmak nemli

    Noktal-saylar fazla ilem gc gerektiriyor!

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri TipleriUYGULAMA

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri TipleriDizilerAyn tipte birden fazla deiken gerekli olduunda diziler kullanlabilir

    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};

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri Tipleri2 boyutlu Dizilerint dizi[4][5]; // 4x5 elemanl bir int dizisi

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Veri TipleriDizilerint ikiBoyutluDizi[4][5]; // 4x5 elemanl bir int dizisiint ikiBoyutluDizi[4][5]= { {1, 2, 3, 4, 5},{11, 12, 13, 14, 15},{10, 20, 30, 40, 50},{-1, -2, -3, -4, 890 }};

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • DizilerUYGULAMA

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Deikenlerin Faaliyet Alanlar(scope) Deikenler program ierisinde geerli olduklar alanlara gre global veya lokal deikenler olarak ikiye ayrlabilirler

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Deikenlerin Faaliyet Alanlar(scope)

    /* Global deikenlerin tanml olduu blge*/

    void setup() { /* Yerel deikenlerin tanml olduu blge*/}void loop() { /* Yerel deikenlerin tanml olduu blge*/}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Deikenlerin mrleri Deikenler program ierisinde belirli blgelerde tanml olup daha sonra yok edilebilirler.

    Global deikenler btn program boyunca tanmldrlar, yok edilmezler.

    Otomatik deikenler tanml olduklar blok boyunca yaayp bloktan knca yok edilirler.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Kontrol YaplarProgrammzn akn deitirmek, belirli artlar salandnda belirli ilemler yaptrmak iin kontrol yaplar kullanlr.

    Belirli artlar mantk nermelerle ifade ediyoruz

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk nermeleri

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk nermeleri Mantk nermelerin sonucu DORU (TRUE / 1) veya YANLI (FALSE / 0) olabilir.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk Operatrleri Temel mantk operatrleri AND (ve), OR (veya), NOT (deil) dir.

    AND && OR || NOT !

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk nermeleriANDAND operatr uygulanan iki ifadeden her ikisinin de sonucu TRUE ise sonu TRUE olur!

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk nermeleriOROR operatr uygulanan iki ifadeden EN AZ birisinin sonucu TRUE ise sonu TRUE olur!

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk nermeleriNOTBir ifadeye NOT operatr uygulanrsa sonuc ifadenin sonucun DEL (tersi) olur!

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Mantk nermeleriNOTBir ifadeye NOT operatr uygulanrsa sonuc ifadenin sonucun DEL (tersi) olur!

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dallanma Belirli bir arta gre u ii yap durumlar: Hava kararnca lambay yak! Butona basldysa motoru hzlandr En temel karar yaplar Program aknn deitirilmesi

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dallanmaif ( degisken1 == 3){// degisken1 3e eitse iletilecek blm.}else{// degisken1 3e eit deilse iletilecek blm.}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dallanmaif ( degisken1 == 3){// degisken1 3e eitse iletilecek blm.}else if ( degisken1 == 4){// degisken1 4e eit deilse iletilecek blm.}else{}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dallanmaif ( degisken1 == 3){// degisken1 3e eitse iletilecek blm.}else{// degisken1 3e eit deilse iletilecek blm.}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dngler while / do while dngleri for dngs

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dnglerforfor (balangc; admda dorulanacak nerme; adm){ // her bir admda gerekletirilecek ilemler}

    for (i = 0; i < 10; i++){ // her bir admda gerekletirilecek ilemler Serial.println(Arduino);}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • for dngsUYGULAMA

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dnglerwhilewhile (mantksal nerme){ // her bir admda gerekletirilecek ilemler}

    while (i < 100){ // her bir admda gerekletirilecek ilemler Serial.println(Arduino); i++;}

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • While dngsUYGULAMA

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dnglerdo whiledo{ // her bir admda gerekletirilecek ilemler} while (mantksal nerme);

    do{ // her bir admda gerekletirilecek ilemler Serial.println(Arduino); i++;} while(i < 100);

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dnglercontinue ifadesi Dng ierisindeyken continue ifadesinden sonraki ilemler atlanarak dng tekrar baa dndrlr. continue ifadesini dngdeyken istisnai durumlar oluturmak iin kullanabiliriz.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Dnglerbreak ifadesi Dng ierisindeyken break ifadesi bulunuyorsa dngden klr.

    break ifadesini belirli bir art olutuunda dngy sonlandrmak iin kullanabiliriz.

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

  • Continue, break ifadeleriUYGULAMA

    Cokun TADEMR - izgi-Tagem Arduino Eitimleri

    Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri Cokun Tademir - Arduino Eitimleri