Arduino eğitimleri   3 - arduino programlama dili
Upcoming SlideShare
Loading in...5
×
 

Arduino eğitimleri 3 - arduino programlama dili

on

  • 8,913 views

Arduino Web Seminerleri - 3

Arduino Web Seminerleri - 3

Statistics

Views

Total Views
8,913
Views on SlideShare
8,913
Embed Views
0

Actions

Likes
1
Downloads
214
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Arduino eğitimleri   3 - arduino programlama dili Arduino eğitimleri 3 - arduino programlama dili Presentation Transcript

  • 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
  • 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
  • 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
  • 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
  • İ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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Veri Tipleri UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 14
  • 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
  • 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
  • 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
  • Diziler UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 18
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • for döngüsü UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 36
  • 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
  • While döngüsü UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 38
  • 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
  • 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
  • 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
  • Continue, break ifadeleri UYGULAMA12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 42