ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri 03.12.2018 ARDUİNO http://www.flickr.com/photos/collinmel/2317520331/ Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Arduino Dili Neler Göreceğiz? 03.12.2018 Arduino Dili Neler Göreceğiz? Arduino Programlama Dili Veri Tipleri Kontrol Yapıları Döngüler Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Arduino Dili Arduino temel olarak Processing programlama diline dayanıyor. Söz dizimi (sentaks) olarak C / C++ / Java dillerine benzer. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Arduino Dili Satır sonlarında noktalı virgül (;) bulunuyor Bloklar süslü parantezlerle { } tanımlanıyor. // veya /* */ karakterleri ile yorumlar yazılabilir. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri İLK PROGRAMIMIZ /* Pin13’e bağlı olan LED saniyede bir Yakı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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Arduino Programlama main() fonksiyonu bulumuyor. Onun yerine setup() ve loop() var. Setup bir kerelik, loop sürekli çalışan işlemler için. delay() fonksiyonu ile gecikmeler oluşturuluyor Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri Bütün işlemleri veri tipleri üzerinde gerçekleştiriyoruz. Verileri tutan belleklere “değişken” isimleri vererek kullanıyoruz. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri Tam sayı tipler: (unsigned /signed) char, int, long Kayar Noktalı Tipler: float, double Karakter: char, string Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri TİP BOYUT ARALIK int 2 bayt -32768 ile 32767 arası unsigned int 0 ile 65535 arası long 4 bayt -2147483648 ile 2147483647 unsigned long 0 ile 4294967295 arası char 1 bayt -128 ile 127 arası byte 0 ile 255 arası Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri TİP BOYUT ARALIK float 4 bayt -3.4028235E+38 ile 3.4028235E+38 double -3.4028235E+38 ile 3.4028235E+38 boolean 1 bayt TRUE(1) veya FALSE(0) Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri Tam sayı tipler: (unsigned /signed) char, int, long, short Kayar Noktalı Tipler: float, double Karakter: char, string Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri Arduino 8 bitlik bir mikrodenetleyiciye sahip Kısıtlı bir belleğe sahip olduğundan veri tiplerini doğru kullanmak önemli Noktalı-sayılar fazla işlem gücü gerektiriyor! Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri UYGULAMA Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri Diziler Aynı tipte birden fazla değişken gerekli olduğunda diziler kullanılabilir int dizi[10]; // 10 elemanlı bir int dizisi float ondalikDizi[5]; // 5 elemanlı bir float dizisi char karDizi[] = {'A','R','D','U','I','N','O'}; int sayiDizisi[] = {1,2,3,4,5,6,7}; Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Veri Tipleri 2 boyutlu Diziler 03.12.2018 Veri Tipleri 2 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] Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Veri Tipleri Diziler 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 }}; Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Diziler UYGULAMA Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Değişkenlerin Faaliyet Alanları(scope) 03.12.2018 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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Değişkenlerin Faaliyet Alanları(scope) 03.12.2018 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() { Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Değişkenlerin Ömürleri 03.12.2018 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. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Önermeleri a == 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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Önermeleri Mantık önermelerin sonucu DOĞRU (TRUE / 1) veya YANLIŞ (FALSE / 0) olabilir. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Operatörleri Temel mantık operatörleri AND (ve), OR (veya), NOT (değil) ‘dir. AND && OR || NOT ! Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Önermeleri AND AND operatörü uygulanan iki ifadeden her ikisinin de sonucu TRUE ise sonuç TRUE olur! İFADE - 1 İFADE - 2 İFADE1 && İFADE 2 TRUE FALSE Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Önermeleri OR OR operatörü uygulanan iki ifadeden EN AZ birisinin sonucu TRUE ise sonuç TRUE olur! İFADE - 1 İFADE - 2 İFADE1 || İFADE 2 TRUE FALSE Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Önermeleri NOT Bir ifadeye NOT operatörü uygulanırsa sonuc ifadenin sonucun DEĞİLİ (tersi) olur! İFADE - 1 !İFADE-1 TRUE FALSE Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Mantık Önermeleri NOT Bir ifadeye NOT operatörü uygulanırsa sonuc ifadenin sonucun DEĞİLİ (tersi) olur! İFADE - 1 !İFADE-1 TRUE FALSE Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 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 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 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 … Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Dallanma switch - case switch(degisken) { case 1: ……….. break; case 2: case n: ……. default: …… } Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Döngüler for döngüsü while / do – while döngüleri Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Döngüler for 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”); } Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 for döngüsü UYGULAMA Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Döngüler while 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++; } Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 While döngüsü UYGULAMA Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Döngüler do 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); Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Döngüler continue ifadesi 03.12.2018 Döngüler continue 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. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Döngüler break ifadesi 03.12.2018 Döngüler break 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. Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri
Continue, break ifadeleri 03.12.2018 Continue, break ifadeleri UYGULAMA Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 03.12.2018 Coşkun Taşdemir - Arduino Eğitimleri