You are on page 1of 42

08.05.

2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
1
ARDUNO
Arduino Eitimleri
Blm 3
Programlama Dili Temelleri
http://www.flickr.com/photos/collinmel/2317520331/
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
2
Arduino Dili
Neler Greceiz?

Arduino Programlama Dili
Veri Tipleri
Kontrol Yaplar
Dngler

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
3
Arduino Dili
Arduino temel olarak Processing programlama diline
dayanyor.

Sz dizimi (sentaks) olarak C / C++ / Java dillerine
benzer.

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
4
Arduino Dili
Satr sonlarnda noktal virgl (;) bulunuyor

Bloklar ssl parantezlerle { } tanmlanyor.

// veya /* */ karakterleri ile yorumlar
yazlabilir.
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
5
LK PROGRAMIMIZ
/*
Pin13e bal olan LED saniyede bir
Yaklp sndrlyor.
*/
void setup() {
// 13. pini k olarak ayarlyoruz
// 13. pine Arduino kartnda bir LED bal
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // LEDi yak
delay(1000); // Bir saniye bekle
digitalWrite(13, LOW); // LEDi sndr
delay(1000); // Bir saniye bekle
}
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
6
Arduino
Programlama
Setup bir kerelik, loop srekli alan ilemler iin.
main() fonksiyonu bulumuyor. Onun yerine setup() ve
loop() var.
delay() fonksiyonu ile gecikmeler oluturuluyor
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
7
Veri Tipleri
Btn ilemleri veri tipleri zerinde
gerekletiriyoruz.

Verileri tutan belleklere deiken isimleri
vererek kullanyoruz.




08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
8
Deikenler
Deiken isimleri

Trke karakter ieremez

Rakamlarla balayamaz

Byk kk harf duyarldr.

Programlama dilinin anahtar kelimeleri isim
olarak kullanlamaz




08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
9
Veri Tipleri
Tam say tipler: (unsigned /signed) char, int, long

Kayar Noktal Tipler: float, double

Karakter: char, string
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
10
Veri Tipleri
TP 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
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
11
Veri Tipleri
TP 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)
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
12
Veri Tipleri
Tam say tipler: (unsigned /signed) char, int, long, short

Kayar Noktal Tipler: float, double

Karakter: char, string
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
13
Veri Tipleri
Arduino 8 bitlik bir mikrodenetleyiciye sahip

Kstl bir bellee sahip olduundan veri tiplerini doru
kullanmak nemli

Noktal-saylar fazla ilem gc gerektiriyor!
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
14
Veri Tipleri
UYGULAMA
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
15
Veri Tipleri
Diziler
Ayn tipte birden fazla deiken gerekli olduunda
diziler kullanlabilir

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};
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
16
Veri Tipleri
2 boyutlu Diziler
int dizi[4][5]; // 4x5 elemanl bir int dizisi
Stun 0 Stun 1 Stun 2 Stun 3 Stun 4
Satr 0
dizi[0][0] dizi[0][1] dizi[0][2] dizi[0][3] dizi[0][4]
Satr 1
dizi[1][0] dizi[1][1] dizi[1][2] dizi[1][3] dizi[1][4]
Satr 2
dizi[2][0] dizi[2][1] dizi[2][2] dizi[2][3] dizi[2][4]
Satr 3
dizi[3][0] dizi[3][1] dizi[3][2] dizi[3][3] dizi[3][4]
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
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 }};

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
18
Diziler
UYGULAMA
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
19
Deikenlerin
Faaliyet Alanlar(scope)
Deikenler program ierisinde geerli olduklar
alanlara gre global veya lokal deikenler olarak
ikiye ayrlabilirler



08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
20
Deikenlerin
Faaliyet Alanlar(scope)

/* Global deikenlerin tanml olduu blge*/

void setup() {
/* Yerel deikenlerin tanml olduu blge*/
}
void loop() {
/* Yerel deikenlerin tanml olduu blge*/
}
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
21
Deikenlerin
mrleri
Deikenler program ierisinde belirli blgelerde
tanml olup daha sonra yok edilebilirler.

Global deikenler btn program boyunca
tanmldrlar, yok edilmezler.

Otomatik deikenler tanml olduklar blok
boyunca yaayp bloktan knca yok edilirler.


08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
22
Kontrol Yaplar
Programmzn akn deitirmek, belirli artlar
salandnda belirli ilemler yaptrmak iin kontrol
yaplar kullanlr.

Belirli artlar mantk nermelerle ifade ediyoruz

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
23
Mantk nermeleri
a == b
a eittir b
a != b
a eit deildir b
a > b
a kktr b
a < b
a byktr b
a <= b
a kk - eittir b
a >= b
a byk - eittir b
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
24
Mantk nermeleri
Mantk nermelerin sonucu DORU (TRUE / 1)
veya YANLI (FALSE / 0) olabilir.

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
25
Mantk Operatrleri
Temel mantk operatrleri AND (ve), OR (veya),
NOT (deil) dir.

AND &&
OR ||
NOT !

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
26
Mantk nermeleri
AND
FADE - 1 FADE - 2
FADE1 && FADE 2
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE
AND operatr uygulanan iki ifadeden her ikisinin de
sonucu TRUE ise sonu TRUE olur!
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
27
Mantk nermeleri
OR
FADE - 1 FADE - 2
FADE1 || FADE 2
TRUE TRUE TRUE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE
OR operatr uygulanan iki ifadeden EN AZ birisinin
sonucu TRUE ise sonu TRUE olur!
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
28
Mantk nermeleri
NOT
FADE - 1 !FADE-1
TRUE FALSE
FALSE TRUE
Bir ifadeye NOT operatr uygulanrsa sonuc ifadenin
sonucun DEL (tersi) olur!
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
29
Mantk nermeleri
NOT
FADE - 1 !FADE-1
TRUE FALSE
FALSE TRUE
Bir ifadeye NOT operatr uygulanrsa sonuc ifadenin
sonucun DEL (tersi) olur!
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
30
Dallanma
Belirli bir arta gre u ii yap durumlar:
Hava kararnca lambay yak!
Butona basldysa motoru hzlandr
En temel karar yaplar
Program aknn deitirilmesi
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
31
Dallanma
if ( degisken1 == 3)
{
// degisken1 3e eitse iletilecek blm
.
}
else
{
// degisken1 3e eit deilse iletilecek blm
.
}
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
32
Dallanma
if ( degisken1 == 3)
{
// degisken1 3e eitse iletilecek blm
.
}
else if ( degisken1 == 4)
{
// degisken1 4e eit deilse iletilecek blm
.
}
else
{

}

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
33
Dallanma
if ( degisken1 == 3)
{
// degisken1 3e eitse iletilecek blm
.
}
else
{
// degisken1 3e eit deilse iletilecek blm
.
}
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
34
Dngler
while / do while dngleri
for dngs
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
35
Dngler
for
for (balangc; admda dorulanacak nerme; adm)
{
// her bir admda gerekletirilecek ilemler
}

for (i = 0; i < 10; i++)
{
// her bir admda gerekletirilecek ilemler
Serial.println(Arduino);
}

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
36
for dngs
UYGULAMA
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
37
Dngler
while
while (mantksal nerme)
{
// her bir admda gerekletirilecek ilemler
}

while (i < 100)
{
// her bir admda gerekletirilecek ilemler
Serial.println(Arduino);
i++;
}

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
38
While dngs
UYGULAMA
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
39
Dngler
do while
do
{
// her bir admda gerekletirilecek ilemler
} while (mantksal nerme);

do
{
// her bir admda gerekletirilecek ilemler
Serial.println(Arduino);
i++;
} while(i < 100);

08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
40
Dngler
continue ifadesi
Dng ierisindeyken continue ifadesinden sonraki
ilemler atlanarak dng tekrar baa dndrlr.

continue ifadesini dngdeyken istisnai durumlar
oluturmak iin kullanabiliriz.
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
41
Dngler
break ifadesi
Dng ierisindeyken break ifadesi bulunuyorsa
dngden klr.

break ifadesini belirli bir art olutuunda dngy
sonlandrmak iin kullanabiliriz.
08.05.2014
Cokun TADEMR - izgi-Tagem
Arduino Eitimleri
42
Continue, break
ifadeleri
UYGULAMA

You might also like