SlideShare ist ein Scribd-Unternehmen logo
1 von 42
ARDUİNO


               http://www.flickr.com/photos/collinmel/2317520331/


               Arduino Eğitimleri
                    Bölüm 3
           Programlama Dili Temelleri
12/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üler




12/11/12             Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
                                                  2
Arduino Dili

Arduino temel olarak Processing programlama diline
dayanıyor.

Söz dizimi (sentaks) olarak C / C++ / Java dillerine
benzer.




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şturuluyor




12/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ılamaz
12/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, string




12/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, string




12/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



           UYGULAMA

12/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 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]




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



           UYGULAMA

12/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ılabilirler




12/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 ediyoruz




12/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 b


12/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                   FALSE

12/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                   FALSE

12/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                      TRUE




12/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                      TRUE




12/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ştirilmesi




12/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üleri




12/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ü



           UYGULAMA

12/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ü



           UYGULAMA

12/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



           UYGULAMA

12/11/12     Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri
                                          42

Weitere ähnliche Inhalte

Was ist angesagt?

IBM Cloud Object Storage: How it works and typical use cases
IBM Cloud Object Storage: How it works and typical use casesIBM Cloud Object Storage: How it works and typical use cases
IBM Cloud Object Storage: How it works and typical use casesTony Pearson
 
Micron Persistent Memory & NVDIMM
Micron Persistent Memory & NVDIMMMicron Persistent Memory & NVDIMM
Micron Persistent Memory & NVDIMMinside-BigData.com
 
Approach to floppy infant ppt
Approach to floppy infant pptApproach to floppy infant ppt
Approach to floppy infant pptmandar haval
 
Approach to floppy infant
Approach to floppy infantApproach to floppy infant
Approach to floppy infantgopan2596
 
Exadata troubleshooting
Exadata troubleshootingExadata troubleshooting
Exadata troubleshootingpat2001
 
Pediatric neurology emergencies dr abunada
Pediatric neurology emergencies dr abunadaPediatric neurology emergencies dr abunada
Pediatric neurology emergencies dr abunadaMohamed Abunada
 
Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи.
Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи. Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи.
Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи. Cisco Russia
 
Custom Widgets Tutorial InduSoft Web Studio (IWS)
Custom Widgets Tutorial InduSoft Web Studio (IWS)Custom Widgets Tutorial InduSoft Web Studio (IWS)
Custom Widgets Tutorial InduSoft Web Studio (IWS)AVEVA
 
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...BGA Cyber Security
 
non-epileptic paroxysmal events in childern
non-epileptic paroxysmal events in childernnon-epileptic paroxysmal events in childern
non-epileptic paroxysmal events in childernAmr Hassan
 
iSCSI Protocol and Functionality
iSCSI Protocol and FunctionalityiSCSI Protocol and Functionality
iSCSI Protocol and FunctionalityLexumo
 
Best Practices for Migrating Previous Versions of Cisco Unified Communications
Best Practices for Migrating Previous Versions of Cisco Unified CommunicationsBest Practices for Migrating Previous Versions of Cisco Unified Communications
Best Practices for Migrating Previous Versions of Cisco Unified CommunicationsCisco Canada
 
palo-alto-networks-sase-overview-deck.pptx
palo-alto-networks-sase-overview-deck.pptxpalo-alto-networks-sase-overview-deck.pptx
palo-alto-networks-sase-overview-deck.pptxinfoeliechahine
 
Alcatel lucent pt telkom turn-up guide v1
Alcatel lucent pt telkom turn-up guide v1Alcatel lucent pt telkom turn-up guide v1
Alcatel lucent pt telkom turn-up guide v1Wahyu Nasution
 
IoT Attack Surfaces -- DEFCON 2015
IoT Attack Surfaces -- DEFCON 2015IoT Attack Surfaces -- DEFCON 2015
IoT Attack Surfaces -- DEFCON 2015Daniel Miessler
 
Huawei Switch S5700 How To - Configuring single-tag vlan mapping
Huawei Switch S5700  How To - Configuring single-tag vlan mappingHuawei Switch S5700  How To - Configuring single-tag vlan mapping
Huawei Switch S5700 How To - Configuring single-tag vlan mappingIPMAX s.r.l.
 
802.11r Explained.
802.11r Explained. 802.11r Explained.
802.11r Explained. Ajay Gupta
 
Bcd 7 Segment Kod Cozucu proteus
Bcd 7 Segment Kod Cozucu proteusBcd 7 Segment Kod Cozucu proteus
Bcd 7 Segment Kod Cozucu proteusyeniceliyim
 
The Modern Telco Network: Defining The Telco Cloud
The Modern Telco Network: Defining The Telco CloudThe Modern Telco Network: Defining The Telco Cloud
The Modern Telco Network: Defining The Telco CloudMarco Rodrigues
 

Was ist angesagt? (20)

IBM Cloud Object Storage: How it works and typical use cases
IBM Cloud Object Storage: How it works and typical use casesIBM Cloud Object Storage: How it works and typical use cases
IBM Cloud Object Storage: How it works and typical use cases
 
Micron Persistent Memory & NVDIMM
Micron Persistent Memory & NVDIMMMicron Persistent Memory & NVDIMM
Micron Persistent Memory & NVDIMM
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
Approach to floppy infant ppt
Approach to floppy infant pptApproach to floppy infant ppt
Approach to floppy infant ppt
 
Approach to floppy infant
Approach to floppy infantApproach to floppy infant
Approach to floppy infant
 
Exadata troubleshooting
Exadata troubleshootingExadata troubleshooting
Exadata troubleshooting
 
Pediatric neurology emergencies dr abunada
Pediatric neurology emergencies dr abunadaPediatric neurology emergencies dr abunada
Pediatric neurology emergencies dr abunada
 
Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи.
Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи. Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи.
Архитектура маршрутизатора ASR1k и его применение в сетях операторов связи.
 
Custom Widgets Tutorial InduSoft Web Studio (IWS)
Custom Widgets Tutorial InduSoft Web Studio (IWS)Custom Widgets Tutorial InduSoft Web Studio (IWS)
Custom Widgets Tutorial InduSoft Web Studio (IWS)
 
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
 
non-epileptic paroxysmal events in childern
non-epileptic paroxysmal events in childernnon-epileptic paroxysmal events in childern
non-epileptic paroxysmal events in childern
 
iSCSI Protocol and Functionality
iSCSI Protocol and FunctionalityiSCSI Protocol and Functionality
iSCSI Protocol and Functionality
 
Best Practices for Migrating Previous Versions of Cisco Unified Communications
Best Practices for Migrating Previous Versions of Cisco Unified CommunicationsBest Practices for Migrating Previous Versions of Cisco Unified Communications
Best Practices for Migrating Previous Versions of Cisco Unified Communications
 
palo-alto-networks-sase-overview-deck.pptx
palo-alto-networks-sase-overview-deck.pptxpalo-alto-networks-sase-overview-deck.pptx
palo-alto-networks-sase-overview-deck.pptx
 
Alcatel lucent pt telkom turn-up guide v1
Alcatel lucent pt telkom turn-up guide v1Alcatel lucent pt telkom turn-up guide v1
Alcatel lucent pt telkom turn-up guide v1
 
IoT Attack Surfaces -- DEFCON 2015
IoT Attack Surfaces -- DEFCON 2015IoT Attack Surfaces -- DEFCON 2015
IoT Attack Surfaces -- DEFCON 2015
 
Huawei Switch S5700 How To - Configuring single-tag vlan mapping
Huawei Switch S5700  How To - Configuring single-tag vlan mappingHuawei Switch S5700  How To - Configuring single-tag vlan mapping
Huawei Switch S5700 How To - Configuring single-tag vlan mapping
 
802.11r Explained.
802.11r Explained. 802.11r Explained.
802.11r Explained.
 
Bcd 7 Segment Kod Cozucu proteus
Bcd 7 Segment Kod Cozucu proteusBcd 7 Segment Kod Cozucu proteus
Bcd 7 Segment Kod Cozucu proteus
 
The Modern Telco Network: Defining The Telco Cloud
The Modern Telco Network: Defining The Telco CloudThe Modern Telco Network: Defining The Telco Cloud
The Modern Telco Network: Defining The Telco Cloud
 

Andere mochten auch

Arduino eğitimleri 4 - arduino programlama dili - 2
Arduino eğitimleri   4 - arduino programlama dili - 2Arduino eğitimleri   4 - arduino programlama dili - 2
Arduino eğitimleri 4 - arduino programlama dili - 2Coşkun Taşdemir
 
Arduino eğitimleri 2 - arduino platformuna giriş
Arduino eğitimleri   2 - arduino platformuna girişArduino eğitimleri   2 - arduino platformuna giriş
Arduino eğitimleri 2 - arduino platformuna girişCoşkun Taşdemir
 
Gömülü Sistemler Eğitimi - Meşhur Yazılım Hataları
Gömülü Sistemler Eğitimi - Meşhur Yazılım HatalarıGömülü Sistemler Eğitimi - Meşhur Yazılım Hataları
Gömülü Sistemler Eğitimi - Meşhur Yazılım HatalarıCoşkun Taşdemir
 
Arduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriArduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriResul Rıza Dolaner
 
BİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİ
BİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİBİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİ
BİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİEnformatik Seminerleri
 
MIT Yaratıcı Kompütasyon Rehberi-pdf
MIT Yaratıcı Kompütasyon Rehberi-pdfMIT Yaratıcı Kompütasyon Rehberi-pdf
MIT Yaratıcı Kompütasyon Rehberi-pdfOgrenenOkullar
 
Arduino Türkiye - Arduino Hakkında
Arduino Türkiye - Arduino HakkındaArduino Türkiye - Arduino Hakkında
Arduino Türkiye - Arduino HakkındaCoşkun Taşdemir
 
Processing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriProcessing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriFatih Erikli
 
Nesne tabanlı programlama 1
Nesne tabanlı programlama 1Nesne tabanlı programlama 1
Nesne tabanlı programlama 1Erol Dizdar
 
Makeblock mDrawbot User Manual (from @Makeblock)
Makeblock mDrawbot User Manual (from @Makeblock)Makeblock mDrawbot User Manual (from @Makeblock)
Makeblock mDrawbot User Manual (from @Makeblock)Una Tao
 

Andere mochten auch (20)

Arduino eğitimleri 4 - arduino programlama dili - 2
Arduino eğitimleri   4 - arduino programlama dili - 2Arduino eğitimleri   4 - arduino programlama dili - 2
Arduino eğitimleri 4 - arduino programlama dili - 2
 
Arduino eğitimleri 2 - arduino platformuna giriş
Arduino eğitimleri   2 - arduino platformuna girişArduino eğitimleri   2 - arduino platformuna giriş
Arduino eğitimleri 2 - arduino platformuna giriş
 
10 soruda Arduino
10 soruda Arduino10 soruda Arduino
10 soruda Arduino
 
Arduino hakkında
Arduino hakkındaArduino hakkında
Arduino hakkında
 
PIC Programlama, Assembly ve Komutlar
PIC Programlama, Assembly ve KomutlarPIC Programlama, Assembly ve Komutlar
PIC Programlama, Assembly ve Komutlar
 
Gömülü Sistemler Eğitimi - Meşhur Yazılım Hataları
Gömülü Sistemler Eğitimi - Meşhur Yazılım HatalarıGömülü Sistemler Eğitimi - Meşhur Yazılım Hataları
Gömülü Sistemler Eğitimi - Meşhur Yazılım Hataları
 
Arduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriArduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme Modülleri
 
PROGRAMLAMA PROJE
PROGRAMLAMA PROJEPROGRAMLAMA PROJE
PROGRAMLAMA PROJE
 
BİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİ
BİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİBİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİ
BİLGİSAYARLA PROGRAMLAMA DERSİ PROCESSING ÖĞRENCİ PROJELERİ
 
ARM Programlama
ARM ProgramlamaARM Programlama
ARM Programlama
 
Scratch Kavramları
Scratch KavramlarıScratch Kavramları
Scratch Kavramları
 
Scratch Kartları
Scratch KartlarıScratch Kartları
Scratch Kartları
 
MIT Yaratıcı Kompütasyon Rehberi-pdf
MIT Yaratıcı Kompütasyon Rehberi-pdfMIT Yaratıcı Kompütasyon Rehberi-pdf
MIT Yaratıcı Kompütasyon Rehberi-pdf
 
Arduino Türkiye - Arduino Hakkında
Arduino Türkiye - Arduino HakkındaArduino Türkiye - Arduino Hakkında
Arduino Türkiye - Arduino Hakkında
 
Processing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteriProcessing - Programcılar için eskiz defteri
Processing - Programcılar için eskiz defteri
 
Tools to teach kids to code
Tools to teach kids to codeTools to teach kids to code
Tools to teach kids to code
 
Kids Can Code
Kids Can CodeKids Can Code
Kids Can Code
 
Nesne tabanlı programlama 1
Nesne tabanlı programlama 1Nesne tabanlı programlama 1
Nesne tabanlı programlama 1
 
İnsansız Hava Araçları
İnsansız Hava Araçlarıİnsansız Hava Araçları
İnsansız Hava Araçları
 
Makeblock mDrawbot User Manual (from @Makeblock)
Makeblock mDrawbot User Manual (from @Makeblock)Makeblock mDrawbot User Manual (from @Makeblock)
Makeblock mDrawbot User Manual (from @Makeblock)
 

Mehr von Coşkun Taşdemir

Biz aslında çok şey yaptık
Biz aslında çok şey yaptıkBiz aslında çok şey yaptık
Biz aslında çok şey yaptıkCoşkun Taşdemir
 
Sensörler, Nesnelerin İnterneti, Veri ve Pazarlama
Sensörler, Nesnelerin İnterneti, Veri ve PazarlamaSensörler, Nesnelerin İnterneti, Veri ve Pazarlama
Sensörler, Nesnelerin İnterneti, Veri ve PazarlamaCoşkun Taşdemir
 
AR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji Günleri
AR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji GünleriAR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji Günleri
AR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji GünleriCoşkun Taşdemir
 
Kabataş Erkek Lisesi - Cumhur Işın Fizik Laboratuarında Yapılan Çalışmalar
Kabataş Erkek Lisesi -  Cumhur Işın Fizik Laboratuarında Yapılan ÇalışmalarKabataş Erkek Lisesi -  Cumhur Işın Fizik Laboratuarında Yapılan Çalışmalar
Kabataş Erkek Lisesi - Cumhur Işın Fizik Laboratuarında Yapılan ÇalışmalarCoşkun Taşdemir
 
Elektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerim
Elektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerimElektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerim
Elektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerimCoşkun Taşdemir
 
Arduino türkiye tanıtımı
Arduino türkiye tanıtımıArduino türkiye tanıtımı
Arduino türkiye tanıtımıCoşkun Taşdemir
 

Mehr von Coşkun Taşdemir (6)

Biz aslında çok şey yaptık
Biz aslında çok şey yaptıkBiz aslında çok şey yaptık
Biz aslında çok şey yaptık
 
Sensörler, Nesnelerin İnterneti, Veri ve Pazarlama
Sensörler, Nesnelerin İnterneti, Veri ve PazarlamaSensörler, Nesnelerin İnterneti, Veri ve Pazarlama
Sensörler, Nesnelerin İnterneti, Veri ve Pazarlama
 
AR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji Günleri
AR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji GünleriAR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji Günleri
AR-GE Inovasyon - Nişantaşı Üniversitesi Teknoloji Günleri
 
Kabataş Erkek Lisesi - Cumhur Işın Fizik Laboratuarında Yapılan Çalışmalar
Kabataş Erkek Lisesi -  Cumhur Işın Fizik Laboratuarında Yapılan ÇalışmalarKabataş Erkek Lisesi -  Cumhur Işın Fizik Laboratuarında Yapılan Çalışmalar
Kabataş Erkek Lisesi - Cumhur Işın Fizik Laboratuarında Yapılan Çalışmalar
 
Elektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerim
Elektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerimElektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerim
Elektrik - Elektronik Mühendisliği Öğrencisi arkadaşlara tavsiyelerim
 
Arduino türkiye tanıtımı
Arduino türkiye tanıtımıArduino türkiye tanıtımı
Arduino türkiye tanıtımı
 

Arduino eğitimleri 3 - arduino programlama dili

  • 1. ARDUİNO http://www.flickr.com/photos/collinmel/2317520331/ Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 1
  • 2. Arduino Dili Neler Göreceğiz?  Arduino Programlama Dili  Veri Tipleri  Kontrol Yapıları  Döngüler 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 2
  • 3. Arduino Dili Arduino temel olarak Processing programlama diline dayanıyor. Söz dizimi (sentaks) olarak C / C++ / Java dillerine benzer. 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 3
  • 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. İ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. 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 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 6
  • 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. 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 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 8
  • 9. Veri Tipleri  Tam sayı tipler: (unsigned /signed) char, int, long  Kayar Noktalı Tipler: float, double  Karakter: char, string 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 9
  • 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. 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. Veri Tipleri  Tam sayı tipler: (unsigned /signed) char, int, long, short  Kayar Noktalı Tipler: float, double  Karakter: char, string 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 12
  • 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. Veri Tipleri UYGULAMA 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 14
  • 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. 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] 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 16
  • 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. Diziler UYGULAMA 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 18
  • 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ılabilirler 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 19
  • 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. 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. 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 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 22
  • 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 b 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 23
  • 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. 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. 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 FALSE 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 26
  • 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 FALSE 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 27
  • 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 TRUE 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 28
  • 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 TRUE 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 29
  • 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ştirilmesi 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 30
  • 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. 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. 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. Döngüler  for döngüsü  while / do – while döngüleri 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 34
  • 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. for döngüsü UYGULAMA 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 36
  • 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. While döngüsü UYGULAMA 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 38
  • 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. 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. 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. Continue, break ifadeleri UYGULAMA 12/11/12 Coşkun TAŞDEMİR - Çizgi-Tagem Arduino Eğitimleri 42