Arduino eğitimleri 3 - arduino programlama dili

19,506 views
18,928 views

Published on

Arduino Web Seminerleri - 3

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
19,506
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
524
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

×