Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Arduino eğitimleri 3 - arduino programlama dili

24,923 views

Published on

Arduino Web Seminerleri - 3

Published in: Technology
  • Be the first to comment

Arduino eğitimleri 3 - arduino programlama dili

  1. 1. ARDUİNO http://www.flickr.com/photos/collinmel/2317520331/ Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 1
  2. 2. Arduino Dili Neler Göreceğiz?  Arduino Programlama Dili  Veri Tipleri  Kontrol Yapıları  Döngüler12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 2
  3. 3. Arduino DiliArduino temel olarak Processing programlama dilinedayanıyor.Söz dizimi (sentaks) olarak C / C++ / Java dillerinebenzer.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 3
  4. 4. Arduino Dili  Satır sonlarında noktalı virgül (;) bulunuyor  Bloklar süslü parantezlerle { } tanımlanıyor.  // veya /* */ karakterleri ile yorumlar yazılabilir.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 4
  5. 5. İ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 delay(1000); // Bir saniye bekle }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 5
  6. 6. 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şturuluyor12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 6
  7. 7. Veri Tipleri  Bütün işlemleri veri tipleri üzerinde gerçekleştiriyoruz.  Verileri tutan belleklere “değişken” isimleri vererek kullanıyoruz.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 7
  8. 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ılamaz12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 8
  9. 9. Veri Tipleri  Tam sayı tipler: (unsigned /signed) char, int, long  Kayar Noktalı Tipler: float, double  Karakter: char, string12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 9
  10. 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ı12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 10
  11. 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)12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 11
  12. 12. Veri Tipleri  Tam sayı tipler: (unsigned /signed) char, int, long, short  Kayar Noktalı Tipler: float, double  Karakter: char, string12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 12
  13. 13. 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!12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 13
  14. 14. Veri Tipleri UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 14
  15. 15. 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};12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 15
  16. 16. Veri Tipleri 2 boyutlu Dizilerint 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]12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 16
  17. 17. 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 }};12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 17
  18. 18. Diziler UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 18
  19. 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ılabilirler12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 19
  20. 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*/ }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 20
  21. 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.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 21
  22. 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 ediyoruz12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 22
  23. 23. 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 b12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 23
  24. 24. Mantık Önermeleri  Mantık önermelerin sonucu DOĞRU (TRUE / 1) veya YANLIŞ (FALSE / 0) olabilir.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 24
  25. 25. Mantık Operatörleri  Temel mantık operatörleri AND (ve), OR (veya), NOT (değil) ‘dir.  AND &&  OR ||  NOT !12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 25
  26. 26. 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 TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 26
  27. 27. 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 TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 27
  28. 28. Mantık Önermeleri NOT Bir ifadeye NOT operatörü uygulanırsa sonuc ifadenin sonucun DEĞİLİ (tersi) olur! İFADE - 1 !İFADE-1 TRUE FALSE FALSE TRUE12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 28
  29. 29. Mantık Önermeleri NOT Bir ifadeye NOT operatörü uygulanırsa sonuc ifadenin sonucun DEĞİLİ (tersi) olur! İFADE - 1 !İFADE-1 TRUE FALSE FALSE TRUE12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 29
  30. 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ştirilmesi12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 30
  31. 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 …. }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 31
  32. 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 { … }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 32
  33. 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 …. }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 33
  34. 34. Döngüler  for döngüsü  while / do – while döngüleri12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 34
  35. 35. 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”); }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 35
  36. 36. for döngüsü UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 36
  37. 37. 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++; }12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 37
  38. 38. While döngüsü UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 38
  39. 39. 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);12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 39
  40. 40. 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.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 40
  41. 41. 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.12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 41
  42. 42. Continue, break ifadeleri UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 42

×