You are on page 1of 98

ARDUINO

PROGRAMLAMA KTABI
Bir para kod!

Uur DEMR
Seri Port
13. Pin ledi Dijital Giri/klar
Rx/Tx ledi

USB Port

G ledi

Reset Butonu

Voltaj Reglatr

Mikrokontroller

G Girii 7-12V

G Pinleri Analog Giriler

if / else
switch / case random
analogRead
digitalWrite
interrupt I2C / SPI
int
Kapak Fotoraf: Arduino Uno

Copyright 2016 Uur DEMR.

Bu kitabn yazm Arduino resmi sitesindeki Reference blm


referans alnarak yazar tarafndan derlenerek yazlmtr.

Her hakk sakldr.


Arduino Programlama Kitab: Bir parka kod!
Copyright 2016 Uur DEMR
Her hakk sakldr.

Yazarla irtibat
xl2pfu@gmail.com
cretsiz PDF
http://www.ugrdmr.wordpress.com

ISBN: -
Uur Demir

1992 ylnda Eskiehir de dodum. Lise renimimi Trk


Telekom Anadolu Teknik Lisesi Elektrik Elektronik Blm,
lisans eitimimi Sakarya niversitesi Elektrik Elektronik
Mhendisliini baaryla bitirdim. Yaklak bir senedir Sakarya
niversitesi Teknokentde zel bir firmada Ar-Ge R & D
Mhendisi olarak altm. Bir senedir de Gml Sistemler
Uzman olarak almaktaym. Yaklak be senedir Arduino,
Beaglebone ve Raspberry Pi ile eitli projeler hayata
geirdim. Blog sitemde yaptm baz projeleri ak kaynak kod
olarak paylayorum. Open Source ak kaynak kod olarak
olarak paylatm ilk kitabmdr. Biraz da olsa ak kaynak
kodlu platforma faydamz olabilirse ne mutlu.

Teekkr

Bu kitabn yazmnda bana destek olan Mekatronik


Mhendislii okuyan kardeim Okan KOOLUna, bana ilham
veren sevdiim, hayat yoldam Sakine KKL ye ve bana bu
fikri alayan Elektronik Mhendisi, Genel Mdrm Sayn
Orhan NERGZe teekkrlerimi sunarm.
indekiler

1. Giri ....................................................................................................... 1
1.1. Microkontroller nedir? ............................................................... 2
1.2. Arduino zellikleri ...................................................................... 4
1.3. Arduino Yazlmnn Yklenmesi.................................................. 6
1.4. lk Program ................................................................................. 9
2. Program Yaps .................................................................................... 10
2.1. void setup()............................................................................... 10
2.2. void loop() ................................................................................ 10
2.3. #define...................................................................................... 12
2.4. #include .................................................................................... 12
3. Kontrol Yaps ...................................................................................... 13
3.1. if................................................................................................ 13
3.2. if/else ........................................................................................ 15
3.3. switch/case ............................................................................... 16
3.4. while ......................................................................................... 18
3.5. do/while ................................................................................... 20
3.6. break......................................................................................... 21
3.7. continue.................................................................................... 22
3.8. return ....................................................................................... 22
3.9. go to ......................................................................................... 24
4. Sz Dizimi ..................................................................................... 24
4.1. Noktal Virgl (;) ........................................................................ 24
4.2. Ssl Parantez ({})..................................................................... 25
4.3. ift Slash(//).............................................................................. 26
4.4. Yldzl Slash(/**/) ..................................................................... 26
5. Aritmetik Operatrler ......................................................................... 26
5.1. Toplama, karma, arpma, Blme .......................................... 26
6. Karlatrma Operatrleri .................................................................. 27
6.1. ==(eit eit) , != (eit deil), < (kk), > (byk), <= (kk eit),
>= (byk eit) ......................................................................... 27
7. Boolean Operatrleri .......................................................................... 28
7.1. && (and) ................................................................................... 28
7.2. || (or) ....................................................................................... 30
7.3. ! (not) ........................................................................................ 30
8. Birleik Operatrler ............................................................................ 31
8.1. ++ (arttrma), -- (azaltma) ........................................................ 31
8.2. += , -= , *= , /= , %= ................................................................... 31
8.3. &= (Bitsel Lojik Ve) ................................................................. 32
8.4. |= (Bitsel Lojik Veya) ................................................................ 33
9. Sabitler ................................................................................................ 34
9.1. HIGH | LOW .............................................................................. 34
9.2. INPUT | OUTPUT ...................................................................... 34
9.3. true | false ................................................................................ 35
9.4. integer constants ...................................................................... 36
9.5. U & L ........................................................................................ 37
9.6. floating point constants ............................................................ 37
10. Dnmler ........................................................................................ 37
10.1. char ........................................................................................... 37
10.2. byte........................................................................................... 37
10.3. int ............................................................................................. 37
10.4. unsigned int .............................................................................. 38
10.5. long .......................................................................................... 38
10.6. float .......................................................................................... 38
10.7. string......................................................................................... 38
10.8. substring() ............................................................................... 38
11. Deiken kapsamlar ........................................................................... 40
11.1. static ........................................................................................ 40
11.2. volatile ..................................................................................... 40
11.3. const ........................................................................................ 40
11.4. PROGMEM ............................................................................... 40
11.5. sizeof() ..................................................................................... 42
12. Dijital Giri klar .............................................................................. 43
12.1. pinMode(pin,mod) .................................................................. 43
12.2. digitalWrite(pin,deer) ............................................................ 43
12.3. digitalRead(pin) ....................................................................... 43
13. Analog Giri klar ............................................................................ 45
13.1. analogRead(pin,mod) .............................................................. 45
13.2. analogWrite(pin,deer) ........................................................... 47
13.3. analogReference(tip) ............................................................... 48
14. Gecikmeler .......................................................................................... 49
14.1. delay(milisaniye) ...................................................................... 49
14.2. unsigned long millis() ............................................................... 49
14.3. delayMicroseconds(mikrosaniye) ............................................. 51
15. Matematiksel levler ......................................................................... 51
15.1. min(x,y) .................................................................................... 51
15.2. max(x,y) ................................................................................... 52
15.3. abs(x) ....................................................................................... 52
15.4. constrain(x,a,b) ........................................................................ 52
15.5. map() ....................................................................................... 53
15.6. pow(a,b) .................................................................................. 53
15.7. sqrt(a,b) ................................................................................... 53
16. Trigonometri ...................................................................................... 54
16.1. sin(rad) ..................................................................................... 54
16.2. cos(rad) .................................................................................... 54
16.3. tan(rad) .................................................................................... 54
17. Karakterler ......................................................................................... 54
17.1. isAlphaNumeric() ..................................................................... 55
17.2. isAlpha() ................................................................................... 55
17.3. isAscii()...................................................................................... 55
17.4. isWhiteSpace() .......................................................................... 55
17.5. isControl() ................................................................................. 55
17.6. isDigit() ..................................................................................... 55
17.7. isGraph() ................................................................................... 55
17.8. isPrintable() .............................................................................. 55
17.9. isPunct() .................................................................................... 55
17.10. isSpace() ................................................................................. 55
17.11. isUpperCase() ......................................................................... 55
17.12. isHexaDecimalDigit() ............................................................... 55
18. Seri Haberleme .................................................................................. 58
18.1. Serial.begin(hz) ....................................................................... 58
18.2. int Serial.available() .................................................................. 59
18.3. int Serial.read()) ........................................................................ 59
18.4. Serial.flush() .............................................................................. 60
18.5. Serial.print(data)....................................................................... 62
18.6. Serial.println(data).................................................................... 62
19. nterruptlar (Kesmeler) ....................................................................... 62
19.1. interrupts() .............................................................................. 62
19.2. noInterrupts() .......................................................................... 64
20. Random Saylar ................................................................................... 67
20.1. randomSeed() .......................................................................... 67
20.2. random(min,max) .................................................................... 68
21. Gelimi Giri klar .......................................................................... 68
21.1. tone() ....................................................................................... 68
21.2. noTone() .................................................................................. 69
21.3. shiftOut() ................................................................................. 69
22. Ktphaneler ...................................................................................... 72
22.1. EEPROM ................................................................................... 72
23. Haberleme Protokolleri..................................................................... 77
23.1. I2C Veri Yolu ............................................................................ 77
23.2. SPI Veri Yolu ............................................................................. 81
24. Arduino Detayl Pin Yaps .................................................................. 85
25. ASCII Kodlar........................................................................................ 86
Kodlar Listesi ....................................................................................... 88
ekiller ve Tablolar Listesi .................................................................. 89
Uur DEMR - Bir para kod!

1. Giri

Arduino Programlama Kitab Bir para kod!

Bu kitabn amac Arduino Atmel Atmega 328P Mikrodenetleyici


kullanarak zellikle Arduino iin C programlama dilini renmek
iin yazlmtr. C genel amal bir programlama dilidir.
Gelitirildii ortam olan UNX sistemi ile yakndan ilgilidir.
Derleyici ve iletim sistemleri yazmak iin olduka kullanl
olmas nedeni ile sistem programlama dili olarak adlandrlr.

C iyi dzenlenmi programlarn gelitirilebilmesi iin gerekli


temel ak kontrol sunar. Bunlar gruplama, karar verme(if-
else), olas durumlarndan biri dallanma(switch), dnglerde
koul snamann bata (for,while) ve dnglerden ani kma
(break) olarak saylabilir.

Arduino programlanrken C dilinin yan sra asl beslendii yer


ktphanelerimizinde yazld C++ dilidir. Bizim kullandmz
fonksiyonlar arkada alan ve programmza en bata
eklediimiz ktphanelerden gelmektedir.

Bu kitapta Arduino iin yazlm zel ktphanelerde


kullanacamz hazr fonksiyonlar ve C nin temeli anlatlmtr.

Arduino projelerimizde ister uzaya gndereceimiz ara yapalm


ister akll saat ister led yakp sndrelim programlama
yaparken nceliimiz her zaman basitlik olmaldr. Paralar
birletirerek, basitten balayarak btne varmak bir para kod
ile balayacaktr.

Bir para kod ile harikalar yaratabiliriz.

Hadi balayalm.

1
Uur DEMR - Bir para kod!

1.1. Microkontroller nedir?

Mikro kontroller adndan da anlalaca zere mikro kontroller,


mikro dzeyde denetleyici olarak tabir edilen programlayarak
kontrol edilebildiimiz aslnda dijital bir bilgisayardr.

Bir mikro denetleyici, komple bir bilgisayarn (Merkezi ilem


birimi, hafza ve giri - klar) tek bir entegre devre zerinde
retilmi halidir. Kstl miktarda olmakla birlikte yeterince hafza
birimlerine ve giri k ularna sahip olmalar sayesinde tek
balarna alabildikleri gibi donanm oluturan dier elektronik
devrelerle irtibat kurabilir, uygulamann gerektirdii fonksiyonlar
gerekletirebilirler. zerinde analog-dijital evirici gibi entegre
devreler barndrmalar sayesinde alglayclardan her trl
verinin toplanmas ve ilenmesinde kullanlabilmektedirler. Ufak
ve dk maliyetli olmalar gml uygulamalarda tercih
edilmelerini salamaktadr.

Gnmzde mikro ilemci ve mikro denetleyiciler reten irili


ufakl pekok firma bulunmaktadr. Bunlara rnek olarak INTEL,
MOTOROLA, AMD, PHILIPS, SIEMENS,TEXAS INS., DALLAS,
ATMEL, MICROCHIP, HITACHI, MITSUBISHI,
SGSTHOMSON,ANALOG DEVICES, NATIONAL gibi firmalar
saylabilir.

Arduino gnmzde en ok tercih edilen bir mikro denetleyicidir.


Yksek seviyeli C dili ile gelitirilen AVR mimarisi ile
tasarlanmtr. Ak kaynak kodlu olmas, donanm ve
yazlmna kolay bir ekilde ulalabilmesi ve pic dier mikro
kontroller gibi plak olmay programlanabilmesinin bir para
kod ile salanmas bunun nedenlerindendir.

2
Uur DEMR - Bir para kod!

Bir mikro denetleyicide bulunmas gereken zellikler unlardr:

Programlanabilir dijital paralel giri/k.


Programlanabilir analog giri/k.
Seri giri/k (senkron, asenkron ve cihaz denetimi).
Motor veya servo kontrol iin pals sinyali k.
Harici giri vastasyla kesme.
Timer vastas ile kesme.
Harici bellek ara birimi.
Harici bus arabirimi(PC ISA gibi).
Dhili bellek tipi (ROM, EPROM, EEPROM).
Dhili RAM seenei.
Kayan nokta hesaplamas.

Bir mikro denetleyicide bir komutun ilenme sreci 4 aamada


gerekletirilir.

1.Alma (Fetch)

Hafzaya yklenmi olan program komutlarn alr.

2.Kod zme (Decode)

Yazmataki komutlar kod zc(decoder) yardmyla zer.

3.Uygulama (Execution)

zlen komutlar uygular ve bu ilemi srekli tekrar eder.

4.lemi tamamlama (Comlete Process)

lemi tamamlama srecidir. Baz komutlarda ilem sonucunu W


yada file registera yazma sreci olarak dnlmtr, baz
komutlarda ise bu sre ierisinde ilem yaplmaz.

3
Uur DEMR - Bir para kod!

1.2. Arduino zellikleri

Arduino Uno Atmel Atmega 328P mikro denetleyicisine sahip bir


borddur. USB balant giriine, g jak giriine, reset butonuna
sahiptir. Bir mikro denetleyicide bulunmas gereken her eye
sahiptir.

Mikro denetleyici Atmega328P

alma gerilimi 5V

Giri gerilimi (nerilen) 7-12V

Giri gerilimi (limit) 6-20V

Dijital giri/k pini 14 adet

PWM giri/k pini 6 adet

Analog giri pini 6 adet

Giri/k pin bana dc akm 20mA

3.3V iin DC akm 50mA

Flash bellek 32 KB

Sram 2KB

EEPROM 1 KB

Saat Hz 16 MHz

Uzunluk 68.6 mm

Genilik 53.4 mm

Arlk 25 g

ekil- 1.1 Arduino Uno zellikleri

4
Uur DEMR - Bir para kod!

ekil - 1.2 Atmega 328P Pin isimleri

ekil - 1.3 Arduino Uno kart

5
Uur DEMR - Bir para kod!

1.3. Arduino Yazlmnn Yklenmesi

Arduino yazlmnn yklenmesi iin ncelikle internet


taraycmza https://www.arduino.cc/en/Main/Software linki
girilir. Hangi iletim sistemine sahipsek Windows, Mac OS X,
Linux dan birini seerek indirme ilemini gerekletiririz.

ndirilen arduino-1.6.7-windows.exe ye sa tklayp ynetici


olarak altr diyelim.

ekil - 1.4 Yazlm Yklenmesi (I Agree)

ekil - 1.5 Yazlm Yklenmesi2 (Next)

6
Uur DEMR - Bir para kod!

ekil - 1.6 Yazlm Yklenmesi3 (Install)

Kurulum gerekletikten sonra alan ekran:

ekil - 1.7 - Arduino IDE

7
Uur DEMR - Bir para kod!

1.Derleme: Yazdmz program derler hatalar bulur.

2.Ykleme: Yazdmz kodu derler, Arduino iine atar.

3.Yeni: Yeni alma sayfas aar.

4.Ama: Kaytl bir program aar.

5.Kaydetme: Yazdmz program kaydeder.

6.Seri Monitr: Arduino ile seri iletiim yaparak ekran aar.

7.Sketch: Yazdmz programn dosya ismi.

8.Bo alan: Yazacamz program alan.

9.Gsterge: Yapt ilemin ilerleme durumunu gsterir.

10.Rapor: Derleme sonucu yaplan hatalarn veya


programmzn ykleme sonras mikro denetleyicide kaplad
alan gsterir.

11.Gsterge: Bilgisayarmza usb ile baladmz Arduinonun


baland portu ve hangi Arduino modeli ile alyorsak onu
gsterir.

Arduino Programn Trke yapmak


-File / Preferences / Editor language / Trk (Turkish)
Arduino Programnda ekran numaralarn aktif etme
-File / Preferences den Display line numbers aktif edin.
Arduino Programnda Arduino modelini deitirme
-Aralar/ Kart / altnz Arduino modeli sein.
Arduino Programnda port deitirme
-Aralar / Port / altnz portu sein.
Arduino Programnda ktphane ekleme
-Taslak / Include Library / eklemek istediiniz ktphaneyi seiniz.

8
Uur DEMR - Bir para kod!

1.4. lk Program

Arduino programmz ykleyip, usb balantlarmz yaptktan


sonra ilk uygulamamz olan blink, led yakp sndrme rneini
hi kod yazmadan yapalm. ncelikle Arduino programndan;

Dosya/ rnekler/ Basics/ Blink i seelim derleyerek program


Arduino iine atalm. Led balants aadaki gibi olacaktr.

void setup() { //ana kurulumlar


pinMode(13, OUTPUT); //13. dijital pin cks
}

void loop() { // sonsuz dongu


digitalWrite(13, HIGH); // led 5v seviyesinde
delay(1000); // 1 saniye bekle
digitalWrite(13, LOW); // led 0v seviyesinde
delay(1000); // 1 saniye bekle
}

Kod - 1 Blink

ekil - 1.8 - Blink Led Devre emas

9
Uur DEMR - Bir para kod!

2. Program Yaps
2.1. void setup()

Setup() fonksiyonu program yklenilip enerji verildikten veya


reset atldktan sonra 1 defa alr. Bu fonksiyon iine
yazdklarmz pin modlar, ktphaneyi balatma ve
deikenlerdir.

rnek

int buton = 3; // butonu 3. pine tanmladk

void setup () {

Serial.begin (9600); // Seri haberleme

pinMode (buton, INPUT);// Pin modu


tanmladk

void loop () {

Kod - 2 - Setup

2.2. void loop()

Setup() fonksiyonumuz tamamlandktan sonra loop


fonksiyonumuza geer ve burada sonsuz dng iinde
yazdmz program altrr.

10
Uur DEMR - Bir para kod!

rnek

ekildeki devreyi kurup program mantn anlamaya alalm.

ekil - 2.1 - Loop

int buton = 3; // butonu 3. pine tanmladk

void setup() { Serial.begin(9600); // seri haberleme

pinMode(buton, INPUT); } // 3. pin giri oldu

void loop(){

if (digitalRead(buttonPin) == HIGH)

Serial.write('Basld); // Seri ekrana yaz

else

Serial.write('Basld');

delay(1000);

Kod - 3 - Loop

11
Uur DEMR - Bir para kod!

Program akn srayla aklamak gerekirse;

1. Buton adl int deikenimizi 3. pine tanmladk.


2. void setup() iinde pinMode ile 3. pini giri atadk.
Serial.begin ile seri haberlemeyi atk.
3. Void loop() ile sonsuz dng iine girdik. 3. pini
dijitalRead ile okuduk.
4. if() ile kontrol ettik. Basldysa ekrana Serial.write ile
yazdrdk.
5. delay(1000) ile 1 saniye beklettik.
6. delay ile 1 saniye bekledikten sonra program loop
ierisinde olduundan 3. aklamadan itibaren kendini
tekrar edecektir.

2.3. #define

#define n ilemci komutu olup, bir isim yerine baka bir ismi
deiimini salar.

rnek

#define ledpin 13;

denildiinde programda ledpin grd yere 13 rakamn


yerletirecektir.

2.4. #include

#include programmz dndaki ktphanelere erimek iin


kullanlr. Programmzda SPI ktphanemizi kullanmak ve onun
ierisindeki komutlara ulamak istediimizde program bana
tanmlamamz 2 ekilde olabilir. (..) yada (<..>)

#include "SPI.h" //Tanmlama 1 #include <SPI.h> //Tanmlama 2

12
Uur DEMR - Bir para kod!

3. Kontrol Yaps

3.1. if

#if Trke karl eer demektir. Mesela eer butona


basldysa ledi yak vb. durumlarda veya karlatrmalarda
kullanlrz.

rnek

ekildeki devreyi kurup if yapsn anlamaya alalm.

int buton = 7; // butonu 3. pine tanmladk

int led = 9; // ledi 9. pine tanmladk

void setup() {

pinMode(buton, INPUT); // 3. pin giri oldu

pinMode(led, OUTPUT); // 9. pin k oldu

void loop(){ //sonsuz dng

if (digitalRead(buton) == HIGH) { //okunan buton 1 ise

digitalWrite(led, HIGH); // ledi yak

Kod - 4 if

13
Uur DEMR - Bir para kod!

ekil - 3.1 Buton, Led Devre emas

Not

Led yaps

ekil - 3.2 -Led Diyot Pin Yaps

14
Uur DEMR - Bir para kod!

3.2. if/else

#f else deimi koullu ifade yrtmek iin kullanlr. f eer


demekti else, deil ise demektir. if ve else birlikte kullanlr.
Programlama dilinde else tek bana kullanlamaz.

rnek

Bir nceki devremizi kurup else yapsn anlayalm .

int buton = 7; // butonu 3. pine tanmladk

int led = 9; // ledi 9. pine tanmladk

void setup() {

pinMode(buton, INPUT); // 3. pin giri oldu

pinMode(led, OUTPUT); } // 9. pin k oldu

void loop(){ //sonsuz dng

if (digitalRead(buton) == HIGH) { //okunan buton 1 ise

digitalWrite(led, HIGH);} // ledi yak

else { // deil ise

digitalWrite(led, LOW); }} // ledi sndr

Kod - 5 if/else

15
Uur DEMR - Bir para kod!

3.3. switch/case

#switch/case bir ifadenin sabit deerlerinden birisiyle eleip


elemediini test eden ok ynl bir karar verme yapsdr.

Bir switch/case yapsndan k salamak ya da sonlandrmak


iin break yada return kullanlr.

rnek

Aadaki devreyi kurup switch/case yapsn anlamaya


alalm.

ekil - 3.2 Potansiyometre Devre emas

Not

Arduino analogRead fonksiyonu, ADC (Analog to Digital


Convertor) 10 bit olduu iin maximum 2^10 = 1024, ve 0
dahil olduu iin de 0-1023 aras deerler alr.

16
Uur DEMR - Bir para kod!

void setup() {

Serial.begin(9600); //Seri haberleme

void loop() {

int okunandeger = analogRead(A0);

//map fonksiyonu okuduumuz deeri 0-1023 araln 2 //ye


bler 0-511 ise menzile 0 deerini verir. 512-1023 //ise
menzile 1 deerini verir.

int menzil= map(okunandeger, 0, 1023, 0, 1);

switch (menzil) {

case 0: //Pot dndrlmesi 0-49% arasnda ise

Serial.println("dk"); //Seri port ekranna yazdr

break; // dngden k

case 1: // Pot dndrlmesi 50-100% arasnda ise

Serial.println("yksek");

break; } // dngden k

delay(1); // stabil almas iin 1 milisaniye bekleme

Kod - 6 switch/case

17
Uur DEMR - Bir para kod!

Not

Pull-up direnler; elektronik devrelerde lojik sistemlere


girilerin (input), eer dardan bal cihazlarn balants
kesildiyse, umulan lojik seviyelerde kalmalarn salamada
kullanlr.

ekil - 3.3 - Pull Up/ Pull Down Direnler

3.4. while

while (ifade) {

// fadeler

#while (ifade) dngs ifadenin doru olduu durumlarda iki


ssl parantez iindeki ifadeleri batan aa altrr, tekrar
baa dner altrr. Sonsuz dng iine girer.

18
Uur DEMR - Bir para kod!

rnek

Aadaki devrede while dngsne girecek ledi yakacak, 1


saniye bekleyip ledi sndrecek ve ifadeyi 1 arttracaktr. While
dngsnde 49 kere ayn ilemi yaptktan sonra tekrar while
dngsne girmeyecektir.

ekil 3.23 Led Devre emas

int ifade=0;
int led=0;
void setup() { }

void loop() { while (ifade<50)

digitalWrite(led, HIGH); // ledi yak

delay(1000); //1 saniye bekle


digitalWrite(led, LOW); // ledi sndr
ifade=ifade+1;
}

Kod - 7 while

19
Uur DEMR - Bir para kod!

3.5. do/while

#do-while dngs ncelikle do parantez iindeki ilemi yapar


ve while ile yaplan ilemi kontrol eder.

rnek

Aadaki devrede do dngsne girecek sayy be arttracak,


seri ekranmza yazdracak while ile durumu kontrol edecektir.
Saymz 25 ten byk olduu zaman dngden kacaktr.

void setup() {

int sayi = 0;

Serial.begin(9600); // seri haberleme

do { // 25 e kadar 5 er sayma

sayi = sayi+ 5;

Serial.print("sayi = ");

Serial.println(sayi);

delay(500); // 500ms bekleme

} while (sayi< 25); }

void loop() {

Kod 8 do/ while

20
Uur DEMR - Bir para kod!

3.6. break

Break do, for, ve while dnglerinden dng almas bittiinde


dng dna kmak iin kullanlr. Switch case yapsnda da
kullanlr.

rnek

Aadaki programda sensr deeri 300 den bykse dng


dna klr.

for (x = 0; x < 255; x ++)

analogWrite(PWMpin, x);

sens = analogRead(sensorPin);

if (sens > 300){

x = 0;

break;

delay(50);

Kod 9 break

21
Uur DEMR - Bir para kod!

3.7. continue

Continue do, for, while dnglerinde bir satrn, ilem


yaplmadan geilmesini istediimiz durumlarda kullanlr.

for (x = 0; x < 255; x ++)

if (x > 40 && x < 120){

continue; // x deeri 120den byk ve


120 den kk ise bu alanda bir ey yapma

Kod 10 continue x);


analogWrite(PWMpin,
3.8. return
delay(50);
Return bir fonksiyon
} sonlandrlmak istenirse return ile
dndrlecek deer belirtilir. Returnun ikinci bir kullanm da
belli bir yerden sonra kodlar almasn istiyorsak return
kullanrz.

rnek

Aadaki program parasnda okuduumuz sensr deeri 250


den byk ise 1 deerini dndrr.

250 den kk ise sfr deerini dndrr.

22
Uur DEMR - Bir para kod!

int sensorkontrol () {

if(analogRead(0) > 250) {

return1 ;

else

return 0;

Kod 11 return1

2.kullanm yolu:

void loop ( ) {

//kodlar

return; //almas istenmeyen


kodlar buraya yazlr.

Kod 12 return2
analogWrite(PWMpin, x);

delay(50);

} 23
Uur DEMR - Bir para kod!

3.9. go to

Go to program akn istediimiz yre ynlendirir.

void loop() {

int x = analogRead(0);

if (x < 200) {

goto burdandevam;

burdandevam:

delay(1000);

// istenilen kod

Kod 13 go to

4. Sz Dizimi
4.1. Noktal Virgl (;)

C program dilinde her satr programndan sonra noktal virgl


konulmas gerekir. Noktal virgl konulmad yerlerde derleme
yaparken hata verir.

24
Uur DEMR - Bir para kod!

4.2. Ssl Parantez ({})

Fonksiyonlarda, dnglerde ve koullu ifadeleri bildirirken ssl


parantez kullanlr. ie olan fonksiyonlarda en dtaki ssl
parantezin en bataki fonksiyona ait olduu dikkat edilmelidir
aksi takdirde derleme yaparken hata verecektir.

rnek

void fonksiyonum()

//yaplacaklar }

while () {

//yaplacaklar }

do {

//yaplacaklar

for (x=0;x<=10;x++)

//yaplacaklar }

Kod 14 Ssl Parantez

25
Uur DEMR - Bir para kod!

4.3. ift Slash(//)

Program satrndan, program banda ve ya herhangi bir yerde


aklama yapmak istiyorsak ift slash kullanarak yaparz. ift
slash dan sonra yazlanlar program kodu olarak alnmaz.

4.4. Yldzl Slash(/**/)


/* Buraya yazdklarm satr, stun dahil program olarak
alnmayacak aklama olarak alnacaktr. */

5. Aritmetik Operatrler
5.1. Toplama, karma, arpma, Blme

C de programlama yaparken matematiksel ilemlerde kullanlr.


nt ya da float (virgll) deerinden sonular bulunabilir.

rnek

int x,y,i,r;

y = x + 3;

x = x - 7;

i = j * 6;

r = r / 5;

Kod 15 Toplama, karma, arpma, Blme

26
Uur DEMR - Bir para kod!

6. Karlatrma Operatrleri
6.1. ==(eit eit) , != (eit deil), < (kk), >
(byk), <= (kk eittir), >= (byk eittir)

Genellikle if ierisinde karlatrma yaparken kullandmz


operatrlerdir.

if (degisken> 50)

//deiken 50 den bykse buraya girer.

rnek

x == y (x, y ye eit)

x != y (x, y ye eit deil )

x < y (x, y den kk)

x > y (x, y den byk)

x <= y (x, y den kk eit)

x >= y (x, y den byk eit)

Kod - 16 Eit eit, Eit deil, Kktr, Byktr, Kk eittir, Byk eittir.

27
Uur DEMR - Bir para kod!

7. Boolean Operatrleri
Boolean ifadeleri genellikle if yapsnn ierisinde ve art
gerektiren durumlarda kullanlr.

7.1. && (Mantksal Ve)

Her iki ilem de doru ise if art salanr ve if ierisindeki komut


altrlr. Herhangi bir durum ya da ikisi de false, yanl sonu
ise if yapsna girilmez.

rnek

Aadaki devreyi kurup her iki butona basldnda ledin


yanmasn salayalm. Programda 2 buton ve 1 led tanmlayp
her iki butona baslmas durumunda oku1 ve oku2 HIGH
olacandan if blounun iine girer ve ledi yakar.

ekil 7.1 Led Buton Devre emas

28
Uur DEMR - Bir para kod!

int buton1 = 2; // butonu 2. pine tanmladk

int buton2 = 3; // butonu 3. pine tanmladk

int led = 13; // ledi 13. pine tanmladk

void setup() {

pinMode(buton1, INPUT); // 2. pin giri oldu

pinMode(buton2, INPUT); // 3. pin giri oldu

pinMode(led, OUTPUT); // 13. pin k oldu

void loop(){ //sonsuz dng

int oku1= digitalRead(2);

int oku2= digitalRead(3);

if (oku1 == HIGH && oku2 == HIGH) {

digitalWrite(led, HIGH); // ledi yak

Kod 17 Mantksal Ve

29
Uur DEMR - Bir para kod!

7.2. || (Mantksal Veya)

Her iki ilemden herhangi birisi doruluk artn tayorsa if


yapsnn iine girer.

Yukardaki rnee gre herhangi butonlardan birisine


basldnda ledin yanmasn istiyorsak veya kullanmalyz.

if (oku1 == HIGH || oku2 == HIGH) { }

7.3. ! (Mantksal Deil)

Deer olarak verilen ifadenin sfr olma durumudur. fadenin sfr


olma art salanyor ise if yapsnn iine girer.

Buton1 e baslmyor ise ledi sndrr.

rnek

if (!buton1) {

digitalWrite(led, LOW); // ledi sndr

} Kod 18 Mantksal Deil

30
Uur DEMR - Bir para kod!

8. Birleik Operatrler
8.1. ++ (arttrma), -- (azaltma)

Artrm veya azaltma yapmamz salar.

++x veya x++ kullanm: x=x+1 ile ayndr yani ma sayy 1


arttrmaktr.

--x veya xkullanm: x=x- 1 ile ayndr yani ma sayy 1


arttrmaktr.

y = ++x //ilk ilem yapar sonra atama.


y = x++ //ilk atama yapar sonra ilem.

8.2. += , -= , *= , /= , %=

x += y; // x = x + y;

x -= y; // x = x - y;

x *= y; // x = x * y;

x /= y; // x = x / y;

x %= y; // x = x % y; //mod alma

**Mod alma x in y ile blmnden kalan saydr. x=10%3;


dersek x =1 olacaktr.

31
Uur DEMR - Bir para kod!

rnek

x = 1; olsun

x += 4; // x=5 olur

x -= 3; // x=2 olur

x *= 10; // x =10 olur

x /= 2; // x=5 olur.

x %= 5; // x=0 olur

Kod 19 += , -= , *= , /= , %=

8.3. &= (Bitsel Lojik Ve)

leme giren bitlerin ve sini verir. Yani eer her iki ilenenin i
inci bitleri 1 ise, sonucun i inci biti de 1 olur.

0 0 1 1 operand1

0 1 0 1 operand2

----------

0 0 0 1 (operand1 & operand2) sonu

32
Uur DEMR - Bir para kod!

rnek

int a = 92; // kili: 0000000001011100

int b = 101; // kili: 0000000001100101

int c = a & b; // 0000000001000100 veya ondalk


68.

Kod 20 Bitsel Lojik Ve

8.4. |= (Bitsel Lojik Veya)

leme giren bitlerin ve sini verir. Yani eer her hangi ilenenin i
inci bitlerinden birisi 1 ise, sonucun i inci biti de 1 olur.

0 0 1 1 operand1

0 1 0 1 operand2

----------

0 1 1 1 (operand1 | operand2) sonu

Tablo 8.1 Bitsel Operatrler

33
Uur DEMR - Bir para kod!

9. Sabitler
9.1. HIGH | LOW

Okuma veya yazma yaparken dijital pine verilen aktif veya/pasif


durumudur. HIGH ile k aktif etmi oluruz yani 5 V, LOW ile
pasif yaparak 0 V vermi oluruz.

int led= 13;

digitalWrite(led, HIGH); // ledi yak

digitalWrite(led, LOW); // ledi sndr

9.2. INPUT | OUTPUT

Pin modumuzun giri mi? k m olacan belirleriz. Sensr


okurken giri, yada k tanmlamamz bizim iin yararl olur.
Setup fonksiyonumuz iinde tanmlarz.

rnek

int led=13;

int buton=5;

void setup(){

pinMode(led, OUTPUT); // k tanmladk.

pinMode(buton, INPUT); // Giri tanmladk. }

Kod 21 INPUT,OUTPUT

34
Uur DEMR - Bir para kod!

9.3. true | false

Arduino da doru yada yanl gstermek iin kullanlan


mantksal tanmlamadr.

false 0 (sfr) olarak tanmlanr.(LOW)

true 1 olarak tanmlanr.(HIGH)

rnek

int a = true; // a doru

int b = false; // b yanls

int led=13; // led 13. pine tanmladk

int buton=10; // butonu 10. pine

void setup() { } //ana kurulum

void loop() { // sonsuz dng

if (buton == a) { // butona basld m?

digitalWrite(led, HIGH); // led e 5v ver

delay(1000); //1 saniye bekle

digitalWrite(led, LOW); } //ledi sndr

Kod 22 true / false

35
Uur DEMR - Bir para kod!

9.4. integer constants

Say sistemleri iin kullanlr.

Say Sistemi rnek Format Karakter


10luk (decimal) 123 -
2 lik (binary) B1111011 B 8 bit (0-
255)
8lik (Octal) 0173 0 0-7
karakter
16 lk 0x7B 0x 0-9, A-F
(hexadecimal)
Tablo 9.1 Say Sistemleri

Decimal kullandmz 10luk say sistemidir.

101 == ((1 * 10^2) + (0 * 10^1) + 1)

Binary ikili say sistemidir 0 ve 1 vardr.

B101 == ((1 * 2^2) + (0 * 2^1) + 1) decimal

Octal sekizlik say sistemidir. 0 dan 7 ye kadar.

0101 == ((1 * 8^2) + (0 * 8^1) + 1) decimal

Hexadecimal on altlk say sistemidir. Sembollerden 10 tanesi


rakamlarla (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), geri kalan 6 tanesi
harflerle (A, B, C, D, E, F) temsil edilir.

0x101 == ((1 * 16^2) + (0 * 16^1) + 1) ==257

36
Uur DEMR - Bir para kod!

9.5. U&L

Say tanmlamalar varsaylan int olarak kabul edilir. Baka bir


veri trne sahip olan saylar belirtmek iin U, L imzasz veri
tr kullanlr.

100000L , 32767ul, 33u gibi kullanmlar vardr.

9.6. floating point constants

Kayan nokta sabitleri olarak nitelendirilir. Saylar daha


okunabilir hale getirmek iin kullanlr. E ve e olarak kabul
edilir.

67e-12 = 67,0 * 10 ^ -12 0,000000000067dir.

10. Dnmler
10.1. char

char myChar = 'A';

char myChar = 65; // edeeri

10.2. byte

b = B10010; // "B" binary format

(B10010 = 18 ondalk)

10.3. int

int led= 3;

37
Uur DEMR - Bir para kod!

10.4. unsigned int

unsigned int led= 3;

10.5. long

long sensor = 186000L;

10.6. float

float sensorkalibre = 1.117;

10.7. string

char Str2[6] = {'d', 'e', 'n', 'e', 'm', 'e'};

char Str6[15] = "deneme";

10.8 substring()

String ierisindeki kelimeden ka karakter alacamz belirtir.

String cumle = "Bir parca kod";

if (cumle.substring(3,9) == "parca") {

//

Kod 23 substring()

38
Uur DEMR - Bir para kod!

Veri Aklama Bellek


Tr Boyutu

boolean Mantksal veri tr 1 byte


(1 yada 0)
char Tek karakteri ieren veri tr 1 byte

byte 0-255 aras pozitif say saklar. 8bit=1byte

Tam saylar saklar. aretli:


(-32,768 ile 32,767) aretsiz:
int (0 ile 65535)
2 byte

unsigne Tam saylar saklar. 4 byte


d int (0 ile 4294967295)

4 byte lik iaretli tam saylar


long saklar. 4 byte
(-2147483648ile+2147483647)
unsigne 4 byte lik iaretli tam saylar 4 byte
d long saklar.
(0 ile 4294967295)

float 4 byte lik iaretli ondalk 4 byte


saylar saklar.
double aretli ondalk saylar 8 byte
5.0 * 10-324 - 1.7 * 10308
Her
string Char veri trnden olan eleman 1
karakterler toplamdr. byte

array Her birine indeks numaras ile Deiken


ulalan ayn trdeki veri
topluluudur.

Tablo 10.1 Dnmler Tablosu

39
Uur DEMR - Bir para kod!

11. Deiken kapsamlar


11.1. static

Static tanmlanan deiken bellekte tutulur ve daha sonra


kullanmak istersek yeniden oluturulmaz bellekten arlr.

static int sayi=0;

11.2. volatile

Volatile ile tanmlanan deikenler Arduino nun ram blgesine


kaydedilir. Kullanmak istersek direk ram bellekten okunur.
Volatile kullanyorsak deikenin deerini interrupt ile
deitirmemiz gerekir.

volatile int led=LOW;

11.3. const

Const ile oluturulan deiken sabitlenir ve deeri daha


sonradan deitirilemez.

const float fi= 1.61; //Altn oran

const float pi= 3.14; // Pi says

11.4. PROGMEM

Bilgiyi SRAM bellek yerine Flash bellekte depolamaya yarar.


Arduino da programmzda uzun char yazmaya kalkarsak SRAM
sorun karabilir. Bu yzden ok uzun metinleri Flash bellee
kaydederiz.

Kullanabilmemiz iin programa #include <avr/pgmspace.h>


ktphanesini eklemeliyiz.

40
Uur DEMR - Bir para kod!

rnek

#include <avr/pgmspace.h>

const char signMessage[] PROGMEM = {"UZUN


CMLELER BU SEKILDE FLASH BELLEGE
KAYDEDILIR."};

int k=0;

char myChar;

void setup() {

Serial.begin(9600);

while (!Serial);

int len = strlen_P(signMessage);

for (k = 0; k < len; k++)

myChar = pgm_read_byte_near(signMessage + k);

Serial.print(myChar); }

Serial.println(); }

void loop() {

Kod 24 PROGMEM Kullanm

41
Uur DEMR - Bir para kod!

11.5. sizeof()

Size of operatr deikenin ka bayt olduunu verir.

rnek

char mesaj[] = "test denemesi";

int i;

void setup(){

Serial.begin(9600); }

void loop() {

for (i = 0; i < sizeof(mesaj) - 1; i++){

Serial.print(i, DEC);

Serial.print(" = ");

Serial.write(mesaj[i]);

Serial.println();

delay(5000); }

Kod 25 sizeof ekil 11.1 sizeof kts

42
Uur DEMR - Bir para kod!

12. Dijital Giri klar


12.1. pinMode(pin,mod)

INPUT, OUTPUT mod olarak, hangi pinin giri yada k


olacan tanmladmz komuttur.

pinMode(3, OUTPUT); // k tanmladk.

pinMode(4, INPUT); // Giri tanmladk.

12.2. digitalWrite(pin,deer)

HIGH, LOW deer olarak, hangi pinin aktif yada pasif olacan
tanmladmz komuttur.

digitalWrite(13, HIGH); //13. pin aktif

digitalWrite(13, LOW); //13. pin pasif

12.3. digitalRead(pin)

Dijital pinin aktif mi pasif mi olduunu yani HIGH m LOW mu


olduunu belirleriz.

rnek

Butona baslp baslmadn seri port ekrannda grelim. 0


baslmad 1 basld.

43
Uur DEMR - Bir para kod!

ekil -12.1 - Led Devre emas

int buton = 2; //dijital 2 ye tanmladk.

void setup() {

Serial.begin(9600); //Seri haberleme hz

pinMode(buton, INPUT); //buton giri oldu

void loop() {

int butondurumu = digitalRead(buton);

Serial.println(butondurumu);

delay(1);

Kod 26 digitalRead

44
Uur DEMR - Bir para kod!

ekil 12.1 Program kts

13. Analog Giri klar


13.1. analogRead(pin,mod)

Arduino Unoda 6 adet, Mini ve Nanoda 8 adet ve Megada 16


adet 10 bit analog to digitalconverter vardr. Yani analog bir
girii dijitale evirerek okuruz. 10 bit olmas hassasiyeti gsterir.
2^10=1024, buda demek oluyor ki bir lm 0-1023 paraya
bler ve bize hassasiyetlii salar.

rnek

Potansiyometre ile drdmz gerilimi lelim 10K pot


kullanabiliriz.

45
Uur DEMR - Bir para kod!

ekil -12.1 - Potansiyometre Devre emas

void setup() {

Serial.begin(9600);

void loop() {

int sensor = analogRead(A0);

float volt = sensor * (5.0 / 1023.0);

Serial.println(volt);

Kod 27 analogRead

46
Uur DEMR - Bir para kod!

13.2. analogWrite(pin,deer) - PWM

Deien led ya da eitli hzlarda kk motor srmek iin


kullanlr.

Arduino Unoda bu komut 3, 5, 6, 9, 10. pin

Arduino Megada 11. 2-13 ve 44 - 46. pin

Arduino Due 2 den 13. pine kadar destekler.

rnek

Potansiyometre ile led parlakln ayarlayalm.

ekil -12.1 Potansiyometre - Led Devre emas

47
Uur DEMR - Bir para kod!

int led = 3;

int analogPin = 3;

int okunan= 0;

void setup(){

pinMode(led, OUTPUT); }

void loop(){

int val = analogRead(analogPin);

analogWrite(led, okunan / 4);

Kod 28 analogWrite

13.3. analogReference(tip)

Analog giri iin kullandmz referans voltajn yaplandrr.


Analog giriten 5V geliyorsa 10 bit iin okuduumuz 11 1111
1111dir. Decimal olarak 1023e tekabl eder.

5V iin;

(5V 0V) / 1023 = 0,00488dir.

3.3V iin;

(3.3V 0V) / 1023 = 0,00322dir.

48
Uur DEMR - Bir para kod!

DEFAULT: olarak Arduino bordlarnda 5V ya da 3,3V


tur.

INTERNAL: 1,1 volt Atmega168 ya da Atmega 328de


geerlidir. Mega hari.

INTERNAL1V1: 1.1V sadece Arduino Mega.

INTERNAL2V56: 5.56V sadece Arduino Mega.

EXTERNAL: Bordun zerinde bulunan AREF pin (0 -


5V) referans kullanlabilir.

14. Gecikmeler
14.1. delay(milisaniye)

Program akna milisaniye cinsinden bekletme verir. 1 saniyelik


gecikmeye ihtiyacmz var o zaman delay(1000); kullanrz.
unu unutmamalyz ki delay Arduino yu tamamen durdurur,
delay ileri seviye programlarda tavsiye edilmeyen bir durumdur.
rnein bir butonumuzun 1er saniye aralklarla yanp snsn
ayn zamanda butona baslp baslmadn kontrol etmek
istersek edemeyiz. Program salkl olmaz. Bunu zmek iin
interruptlar veya timerlar kullanlr.

14.2. unsigned long millis()

Arduino program yklenilip enerji verildikten sonra sre


saymaya balayan komuttur. Maximum 50 gn sayabilir bu sre
sonunda tama ile sfrlanr.

49
Uur DEMR - Bir para kod!

rnek

unsigned long zaman;

void setup(){

Serial.begin(9600); }

void loop(){

Serial.print("Gecen sure: ");

zaman = millis();

Serial.println(zaman);

delay(1000); } }

Kod 29 millis

ekil 14.1 millis Program kts

50
Uur DEMR - Bir para kod!

14.3. delayMicroseconds(mikrosaniye)

Program akna mikrosaniye cinsinden bekletme verir.

rnek

int led = 8; // digital pin 8 giri

void setup(){ //ana kurulum

pinMode(led, OUTPUT); // led k tanm

void loop(){ //sonsuz dng

digitalWrite(led, HIGH); //led yansn

delayMicroseconds(50) ;// bekle

digitalWrite(led, LOW); // led snsn

delayMicroseconds(50); // bekle

Kod 30 delayMicroseconds

15. Matematiksel levler


15.1. min(x,y)

X ve y saysal deerlerinden en kk olan seer.

enkucuk=min(20,30); //en kk 20 olarak belirler.

51
Uur DEMR - Bir para kod!

15.2. max(x,y)

X ve y saysal deerlerinden en byk olan seer.

enbuyuk=max(20,30);

//en byk 30 olarak belirler.

15.3. abs(x)

Bir saynn mutlak deerini hesaplar. Say sfrdan kkse


pozitif deerini, sfrdan bykse ayn sayy verir.

int k= -20;

int m= 20;

deger=abs(k);

//deer 20 olarak belirlenir.

deger=abs(m);

//deer 20 olarak belirlenir.

15.4. constrain(x,a,b)

x: herhangi trdeki bir say

a: alt aralk

b: st aralk

x deeri a ile b arasnda ise ktmz x olacaktr. Eer alt


aralktan kkse ktmz a, st aralktan bykse ktmz b
olacaktr.

52
Uur DEMR - Bir para kod!

sensor = constrain(sensor, 10, 150);

// Sensor deeri 10 ile 150 arasnda kalr. 10 dan kkse


ktmz 10, 150 den bykse 150 olur. 10 ile 150 arasnda bir
deer ise o deer ktmz olur.

15.5. map()

Sensor deerimizi belli aralkta tutarak istediimiz arala


dntrmemizi salar.

Diyelim ki bizim sensrden okuduumuz deer 0 ile 1023


arasnda ama bize 0 ile 255 aras deer gerekiyor bunun iin;

int sonuc=map(sensor,0,1023,0,255);

kullanrz.

15.6. pow(a,b)

Bir saynn karesini almak iin kullanlr. A taban b ise st dr.

sonuc= pow(3^2)

//sonu 9 olacaktr.

15.7. sqrt(a,b)

Bir saynn karekkn almak iin kullanlr. A taban b ise st


dr.

sonuc= sqrt(25)

//sonu 5 olacaktr.

53
Uur DEMR - Bir para kod!

16. Trigonometri
Trigonometrik ilemleri yaptrabilmemiz iin;

#include math.h ktphanesini kullanmamz gerekir.

16.1. sin(rad)

Radyan bir ann sinsn hesaplar. Sonu 0 ile -1 arasnda


olacaktr.

16.2. cos(rad)

Radyan bir ann kosinsn hesaplar. Sonu 0 ile -1 arasnda


olacaktr.

16.3. tan(rad)

Radyan bir ann tanjantn hesaplar. Sonu 0 ile -1 arasnda


olacaktr.

17. Karakterler
17.1. isAlphaNumeric()

Bilindii gibi 0 - 9 decimal saylar gstermek iin eitli binary


kodlar kullanlr. Alfabetik ve nmerik karakterlerin elde
edilmesinde byk saylar kullanlr (binary). Bu kodlar
alphanumeric bazen de alphameric kodlar olarak ifade edilir.
Karakterin alphanumeric olup olmadn kontrol eder.

17.2. isAlpha()

Karakterin alpha olup olmadn kontrol eder.

54
Uur DEMR - Bir para kod!

17.3. isAscii()

Karakterin Ascii tablosundaki deerini verir.

17.4. isWhiteSpace()

Bir karakter bir boluk olup olmadn kontrol eder.

17.5. isControl()

Karakterin kontrol karakteri olup olmadn kontrol eder.

17.6. isDigit()

Karakterin dijital karakter olup olmadn kontrol eder.

17.7. isGraph()

Karakterin grafik karakter olup olmadn kontrol eder.

17.8. isPrintable()

Yazdrlabilir bir karakter olup olmadn kontrol eder.

17.9. isPunct()

Karakterin noktalama iareti olup olmadn kontrol eder.

17.10. isSpace()

Karakterin boluk olup olmadn kontrol eder.

17.11. isUpperCase()

Bir karakter mi bir harf mi olup olmadn kontrol eder.

17.12. isHexaDecimalDigit()
55
Uur DEMR - Bir para kod!

Bir karakter geerli bir onaltlk rakam olup olmadn kontrol


eder.

rnek

void setup() {
Serial.begin(9600); //Seri haberleme
while (!Serial) {
; // seri port haberlemesinin beklenmesi
}
Serial.println("Bir bayt yazin ve analizini gorelim:");
Serial.println();}

void loop() {
if (Serial.available() > 0) {
int thisChar = Serial.read();

Serial.print("Gonderilen: \'");
Serial.write(thisChar);
Serial.print("\' ASCII Degeri: ");
Serial.println(thisChar);

if (isAlphaNumeric(thisChar)) {
Serial.println("Alphanumeric Degeri");
}
if (isAlpha(thisChar)) {
Serial.println("Bu Alfabetik!");
}
if (isAscii(thisChar)) {
Serial.println(" Bu ASCII karakter.");
}

if (isWhitespace(thisChar)) {
Serial.println(" Bu whitespace");

56
Uur DEMR - Bir para kod!

}
if (isControl(thisChar)) {
Serial.println("Bu kontrol karakteri");
}
if (isDigit(thisChar)) {
Serial.println("Bu numeric digit");
}
if (isGraph(thisChar)) {
Serial.println("Bosluk degl yazdrlabilr karakter");
}
if (isLowerCase(thisChar)) {
Serial.println("Daha kucuk harf");
}
if (isPrintable(thisChar)) {
Serial.println("Yazdirilabilir");
}
if (isPunct(thisChar)) {
Serial.println("Noktalama isareti");
}
if (isSpace(thisChar)) {
Serial.println("Bosluk karakteri");
}
if (isUpperCase(thisChar)) {
Serial.println("Ust durum ");
}
if (isHexadecimalDigit(thisChar)) {
Serial.println("Gecerli hexadecimaldigit var (i.e. 0 - 9, a - F,
or A - F)");
}
Serial.println();
Serial.println("Baska bir karakter girin:");
Serial.println();
}
}

Kod 31 Bir Karakterin Analizi

57
Uur DEMR - Bir para kod!

ekil 17.1 Karakter Analizi kts

18. Seri Haberleme


18.1. Serial.begin(hz)

Bilgisayar ile arduino arasnda seri iletiimi balatmak iin void


setup() fonksiyonu altnda seri iletiim alr. Serial.begin(9600);
buradaki 9600 alnan ve gnderilen bilgilerin, verilerin hzdr.
Arduino tarafna 9600 baud rate yazdysak bilgisayar tarafnda
da ayn baud rate ile almalyz. nk veri kayb yaarz.

300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800,


38400, 57600, ve 115200 baud ratelerden birini seebiliriz.

Seri iletiim halindeyken arduinodaki rx, tx, yani dijital 0, 1 pinleri


kullanlamaz.

rnek

Arduino Mega iin 3 adet seri portu olduundan;

Serial.begin(9600); Serial1.begin(9600);

Serial2.begin(9600); Serial3.begin(9600); kullanlabilir.

58
Uur DEMR - Bir para kod!

void setup(){

Serial.begin(9600);

Serial1.begin(38400);

Serial2.begin(19200);

Serial3.begin(4800);

Serial.println("Test");

Serial1.println("Serial 1");

Serial2.println("Serial 2");

Serial3.println("Serial 3");

void loop() {

Kod 32 Serial.begin

18.2. int Serial.available()

Veri gelmeye balad zaman seri portu okumaya aar.

18.3. int Serial.read())

Seri datalar gelmeye balad zaman o datalar okur.

59
Uur DEMR - Bir para kod!

rnek

int gelenbyte = 0; // gelen data

void setup() {

Serial.begin(9600); // seri haberleme hz

void loop() {

//data gelmeye basladgnda

if (Serial.available() > 0) {

// bytlar oku

incomingByte = Serial.read();

//ekrana yaz

Serial.print("Denildi ki: ");

Serial.println(gelenbyte, DEC); }

Kod 33 Serial.read

18.4. Serial.flush()

Giden seri iletim datalarnn tamamlanmasn bekler.

60
Uur DEMR - Bir para kod!

rnek

int x = 0; // variable
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("NO FORMAT"); // prints a label
Serial.print("\t"); // tab boluk verir.
Serial.print("DEC"); //DEC cinsten yazar.
Serial.print("\t");
Serial.print("HEX"); //HEX cinsten yazar.
Serial.print("\t");
Serial.print("OCT"); //OCT cinsten yazar
Serial.print("\t");
Serial.print("BIN"); //BIN cinsten yazar.
Serial.print("\t");

for(x=0; x< 64; x++){ // 0 dan 64 e sayar.

Serial.print(x); //x deerini yazar


Serial.print("\t");

Serial.print(x, DEC); //x in DEC cinsini yazar.


Serial.print("\t");

Serial.print(x, HEX); //x in HEX cinsini yazar.


Serial.print("\t");

Serial.print(x, OCT); //x in OCT cinsini yazar.


Serial.print("\t");

Serial.println(x, BIN); //x in BIN cinsini yazar.

delay(200); //200 ms bekleme


}
Serial.println(""); return;
}

Kod 34 Serial.print

61
Uur DEMR - Bir para kod!

ekil 18.1 Serial.print Ekran kts

18.5. Serial.print(data)

Data yazlan yere ift trnak ierisinde yazdmz yazlar ya da


deikenleri yazar.

18.6. Serial.println(data)

Data yazlan yere ift trnak ierisinde yazdmz yazlar ya da


deikenlerin sonuna satr sonu ekler bylece alt satra
gnderecektir.

19. nterruptlar (Kesmeler)


19.1. interrupts()

nterruptlar donanm interruptu ve timer interruptu olmak


zere ikiye ayrlr. nterrupt olayn yle dnebiliriz. Arduino
her bir saniye aralklarla butonu yakp sndryor. Bunu

62
Uur DEMR - Bir para kod!

yaparken ayn zamanda butona baslp baslmadn kontrol


etmek istiyorsak interrupt kullanrz. Elektronikte ve arduino da
nemli bir konudur.

Donanm nterruptu:

Bord Dijital Pin nterrupt


Uno, Nano, Mini, 2, 3
other 328-based
Mega, 2, 3, 18, 19, 20, 21
Mega2560, MegaADK
Micro, Leonardo, other 0, 1, 2, 3, 7
32u4-based
Zero Tm pinler, 4 hari
Due Tm pinler
Tablo 18.1 Interrupt pin Tablosu

attachInterrupt(pin, fonksiyon, mod) ;

Pin, hangi interrupt pinini kullandmz.

Foksiyon, interrupt tetiklendiinde yaplacak ilemler fonksiyonu.

Mod, inerrruptun nasl tetikleneceidir.

Modlar:

-LOW: nerrupt pininin Low seviyede olmasyla

-CHANGE: nterrupt pininin deiimi ile 0v dan 5v a geii ya da


5 den sfra geii.

-RISING: nterrupt pininin 0v dan 5v a gemesi, ykselen kenar.

-FALLNG: nterrupt pininin 5v den 0v gemesi, den kenar.


63
Uur DEMR - Bir para kod!

-HIGH: nterrupt pininin 5v da olmas

Kullanm:

attachInterrupt(2, kontrolet, RISING) ;

Yukardaki kullanmda 2 ile hangi pinin interrupt olacan,


RISING ile ykselen kenarda tetiklenmesi gerektiini,
tetiklendiinde kontrolet fonksiyonuna gitmesi gerektiini
belirttik.

19.2. noInterrupts()

Kesmeleri devre d brakr.

rnek

ekil -19.1 Buton- Led Devre emas

64
Uur DEMR - Bir para kod!

int pin = 10;

volatile int durum = LOW;

void setup()

{ pinMode(pin, OUTPUT);

digitalWrite(2, HIGH);

attachInterrupt(0, kontrolet, FALLING);

void loop()

{ }

void kontrolet()

if(durum == LOW) {

durum = HIGH;

} else {

durum = LOW;

digitalWrite(pin, durum);

Kod 35 Donanm Interrupt

65
Uur DEMR - Bir para kod!

Timer nterruptu:

Zamanlayc interruptlar olarak adlandrlr. Kendi kendilerine


bir sre sonunda tetikleme yapabiliriz. rnein bir ledi 1 er
saniye aralklarla yakp sndrelim ve her 3 saniyede bir baka
bir ledi yakp sndrmek yada baka bir buton durumunu
kontrol etmek istersek timer interruptlarn kullanrz. Timer
lar, counter registerler sayinde saya olarak alrlar ve
programdan bamszdr. Timerler saya olarak almas iin
osilatr kullanrlar. Osilatr kare dalga retir. Arduino Uno
16MHz osilatr kulland iin periyot sresi 63ns dir.

Timer interruptu kullanmak iin hazr ktphane olan


TimerONE ktphanesini kullanarak basit bir ekilde
kullanabiliriz.

rnek

#include <TimerOne.h>

void setup() {

pinMode(13, OUTPUT);

Timer1.initialize(100000); // 1 saniyede
tetiklenmesi

Timer1.attachInterrupt( kontrolet ); }

void loop() { }

void kontrolet()

{ digitalWrite( 13, digitalRead( 13 ) ^ 1 ); }

Kod 36 Timer Interrupt

66
Uur DEMR - Bir para kod!

20. Random Saylar


20.1. randomSeed()

Rasgele say retilirken bir Seed deeri alnr. Bu algoritmalarla


uzun bir say listesi hesaplanr. Seed belirtilmezse u anki
zaman alr ve saylar hep ayn srada random retilir.

rnek

0 ile 300 arasnda rasgele say retecektir.

long rasgelesayi;

void setup(){

randomSeed (analogRead (0));

Serial.begin(9600);

void loop(){

rasgelesayi = random(300);

Serial.println(rasgelesayi);

delay(1000);

Kod 37 Random Say retme

67
Uur DEMR - Bir para kod!

20.2. random(min,max)

randomSeed() gibi parantez iine 2 adet say yazlr minimum


ve maximum olacak ekilde, minimum ve maksimum belirtilen
saylar arasnda random rasgele say retir.

rnek

10 ile 20 arasnda rasgele say retecektir.

long rasgelesayi;

void setup() { Serial.begin(9600); }

void loop(){

rasgelesayi = random(10,20);

Serial.println(rasgelesayi);

delay(1000);

Kod 38 Random Say retme2

21. Gelimi Giri klar


21.1. tone()

Kare dalga retmemize yarar. stenilen frekansta ve istenilen


pini ayarlayabiliriz. Verilen sinyal %50 duty saykla sahiptir. Duty
saykl 1 periyot boyunca HIGH ve LOW kalma sresidir.

68
Uur DEMR - Bir para kod!

duty

1 Periyot

ekil - 21.1 Kare Dalga Sinyali

21.2. noTone()

Kare dalga retimini sonlandrmamza yarar.

noTone(pin);

21.3. shiftOut()

74HC95 etegresi iin yazlm zel bir koddur.

shiftOut(dataPin, clockPin, LSBFIRST, led);

-dataPin: data pinini belirler.

-clockPin: clock pinini belirler.

-LSBFIRST: en kk bitten balamasdr.

-led: Bayt deikenidir.

69
Uur DEMR - Bir para kod!

rnek

ekil - 21.2 74HC95 Entegresi le Led Devresi

74HC95 entegresi bir tr registerderdir ve registerler ierisinde


lojik kaplarn ve FF(flip-flop) devrelerini ilerinde barndrrlar.

ekil - 21.3 74HC95 Entegresi Pin Yaps

70
Uur DEMR - Bir para kod!

int latchPin = 12;

int clockPin = 11;

int dataPin = 13;

byte led = 0;

int currentLED = 0;

void setup()

{ pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

led = 0; }

void loop() {

led = 0;

if (currentLED == 7) { currentLED = 0; }

else {

currentLED++; }

bitSet(led, currentLED);

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, led);

digitalWrite(latchPin, HIGH);

delay(250); }

Kod 39 shiftOut

71
Uur DEMR - Bir para kod!

22. Ktphaneler
22.1. EEPROM

EEPROM ktphanesi Electronically Erasable


Programmable Read-Only Memory , elektroniksel olarak
silinebilir programlanabilir, ve sadece okunabilir bellek demektir.
Kalc hafza olarak tabir edebiliriz. Arduino da elektrik gitse bile
baz nemli bilgileri eepromda saklayabiliriz. Hafza boyutu
olarak Arduino nun farkl modellerine gre farkl boyutlara
sahiptir.

Atmega328(kalsik arduino) :1024 byte

Atmega168, Atmega8 :512 byte

Atmega1280, Atmega2560 :4096byte (1KB)

hafza alanlarna sahiptir.

EEPROM hafzasna yazacamz maksimum integer say


olarak, Arduino Uno 8 bit ve 2^8=256 olduundan 0-255 aras
maximum 255 saysn girebiliriz. Biz bir EEPROM hafzasna
280 says yazamayz. Bunun zm olarak sayy
zmleyerek birlik, ondalk ve yzlk olarak ayrarak her bir
ondalii farkl dijitlere yazarz ve sonra program iinde zerek o
sayy elde ederiz. zm yollarndan birisi budur.

Arduino Uno kullanyorsak 1024 byte olduundan 1024 e kadar


hafza hcresine yazabiliriz.

Fonksiyonlar
EEPROM.read (adres)

72
Uur DEMR - Bir para kod!

Belirlediimiz adresteki EEPROM baytn okur.

rnek

Aadaki rnei ykleyip Seri porttan EEPROM hcre


deerlerimizi 0 dan 1023 e kadar okuyalm.

#include <EEPROM.h> // EEPROM ktphanemiz


int hucre= 0; //hcremiz 0 dan
baslasn
int veri; //veri tanmladk

void setup(){
Serial.begin(9600); //seri haberleme hzmz
}

void loop() {
veri = EEPROM.read(hucre); //eeprom hcresini oku
veriye ata

Serial.print(hucre); //hcreyi yaz


Serial.print("\t");
Serial.print(veri); //veriyi yaz
Serial.println();

hucre = hucre + 1; //hcreyi 1 arttr.

if (hucre == 1024) //hcre 1024 olunca sfrla


hucre = 0;
delay(500); //500 ms bekle
}

Kod 40 EEPROM.read

73
Uur DEMR - Bir para kod!

ekil - 22.1 EEPROM Ekran kts

EEPROM.write ()

Belirlediimiz adresteki EEPROM a istediimiz veriyi yazar.


Yaklak 3.3 ms yazma sresi vardr.

rnek
#include <EEPROM.h>

void setup() {

for (int i = 0; i < 255; i++)

EEPROM.write(i, i); }

void loop() { }

Kod 41 EEPROM.write

74
Uur DEMR - Bir para kod!

EEPROM.update()

Belirlediimiz adresteki EEPROM a istediimiz veriyi yazarken


eer o adreste ayn veri kaytlysa yazmaz. Farkl bir veri
kaydetmisek o zaman zerine yazar.

EEPROM.get ()

Herhangi bir veri yada nesneyi okumamza yarar.

EEPROM.put ()

Herhangi bir veri tipini EEPROM a yazar.

EEPROM[adres]

Bu operatr bir dizi tanmlayc gibi, EEPROM hcrelerini


okuma, yada yazma olarak kullanlabilir.

rnek

Random say retip, srayla EEPROM a yazp okuyalm.

75
Uur DEMR - Bir para kod!

#include <EEPROM.h>

int randomsayi;

void setup() {

Serial.begin(9600);

randomSeed(analogRead(0)); } //referans

void loop() {

Serial.println("Random sayi bekleniyor");

for (int i = 0; i < 1024; i++){ //i yi 1024 e kadar arttr.

randomsayi=random(255); // 0-255 aras random sayi ret.

EEPROM.write(i, randomsayi); } //0 dan 1024 hcresine kadar yaz.

Serial.println();

for (int a=0; a<1024; a++) //1024 e kadar tek tek arttr.

{ randomsayi = EEPROM.read(a); //a nc hcreyi oku randomsayiya


ata

Serial.print("EEPROM hucresi: ");

Serial.print(a);

Serial.print(" hafizaya alinan: ");

Serial.println(randomsayi);

delay(25); }

Kod 42 Kapsaml EEPROM

76
Uur DEMR - Bir para kod!

23. Haberleme Protokolleri


23.1. I2C Veri Yolu

2 Inter-Integrated Circuit veri yolu en az sayda pin


kullanan, iki ynl bir haberleme protokoldr. Hzlar 400kbps
e kadar kmaktadr. Herhangi bir shield yana sensrler aras
dijital haberlemeyi salar.

Haberleme iki kablo ile saland iin Two-Wire olarak


adlandrlabilir. Kablolardan birisi data, dieri clock kablosudur.

Data kablosu (SDA) dr.


Clock kablosu (SCL) dir.

Arduino da 2 kullanabilmemiz iin;

#include <Wire.h> ktphanesini eklememiz gerekir. letiimin


gerekleebilmesi iin cihazlardan birisi master , dieri slave
olmaldr. Bunu biz kodlarla belirliyoruz.

Bord 2 pinleri
Uno, Ethernet A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21
(SCL), SDA1, SCL1
Tablo 23.1 I2C Haberleme Pin Yaps

rnek

ki arduino aras i2c protokol ile veri alverii yapalm.

77
Uur DEMR - Bir para kod!

ekil - 23.1 I2C Haberleme Balants 1

A4-A4 e,

A5-A5 e,

GND-GND ye.

ekil - 23.2 I2C Haberleme Balants 2

78
Uur DEMR - Bir para kod!

Master kodu:

#include <Wire.h>

void setup() {

Wire.begin(); // i2c haberlemesi balatma

byte x = 0;

void loop() {

Wire.beginTransmission(8); // 8. cihaza ilet

Wire.write("x is "); // 5 byte gonderme

Wire.write(x); // 1 baye gonderme

Wire.endTransmission(); // iletiimi durdur.

x++; // x i 1 arttr.

delay(500);

Kod 43 I2C Master Kodu

79
Uur DEMR - Bir para kod!

Slave kodu:

#include <Wire.h>

void setup() {

Wire.begin(8); // i2c haberlemesini 8. adresle balat

Wire.onReceive(receiveEvent); // alc modda ol

Serial.begin(9600); // serial haberlemeyi ac

void loop() {

delay(100); }

void receiveEvent(int gelen) {

while (1 < Wire.available()) { // gelen bayte varsa

char c = Wire.read(); //gelen bayt oku c ye ata

Serial.print(c); // karakteri ekrana yaz

int x = Wire.read(); // gelen integer oku

Serial.println(x); // seri porta yaz

}
Kod 36 Kapsaml EEPROM

Kod 44 I2C Slave

80
Uur DEMR - Bir para kod!

23.2. SPI Veri Yolu

Serial Peripheral Interface (SPI) ksa mesafelerde hzl veya


birden fazla evresel cihazlar ile iletiim kurmak iin
mikroilemci tarafndan kullanlan bir senkron seri veri
protokoldr. Ayrca, iki mikroilemcisi arasndaki iletiim iin
kullanlabilir. Motorola tarafndan gerekletirilmitir. Yksek
hzlara kabilir.

SPI balants iin 4 adet pin gereklidir. Bunlar:

MISO (Master In Slave Out) - master veri gndermek


iin Slave hatt,
MOSI (Master Out Slave In) - evre birimleri veri
gndermek iin ,
SCK (Serial Clock) - master tarafndan oluturulan veri
aktarmn senkronize etmek iin saat darbesi
SS (Slave Select) - Belirli aygtlar etkinletirme ve devre
d brakmak iin kullanabileceiniz pin.

Bord MOSI MISO SCK SS SS


Pini Pini Pini (Slave) (Master)
Uno 11 12 13 10
Mega 4 1 3 53
Leonardo 4 1 3
Due 4 1 3 4,10,52

Tablo 23.2 SPI Haberleme Pin Yaps

81
Uur DEMR - Bir para kod!

ekil - 23.3 SPI Haberleme Balants 1

SPI veri yolunda iletiimi her zaman master balatr.

rnek

ki arduino aras SPI protokol ile veri alverii yapalm.

ekil - 23.4 SPI Haberleme Balants 2

82
Uur DEMR - Bir para kod!

Master kodu:

#include <SPI.h>

void setup (void)

{ digitalWrite(SS, HIGH);

SPI.begin ();

SPI.setClockDivider(SPI_CLOCK_DIV8);

void loop (void)

char c;

digitalWrite(SS, LOW); // ss pin 10

for (const char * p = "deneme!\n" ; c = *p; p++)

SPI.transfer (c);

digitalWrite(SS, HIGH);

delay (1000);

Kod 45 SPI Master

Slave kodu:

83
Uur DEMR - Bir para kod!

#include <SPI.h>

char gelen [100];


volatile byte pos;
volatile bool process_it;

void setup (void){

Serial.begin (115200);
SPCR |= bit (SPE);
pinMode (MISO, OUTPUT);
pos = 0;
process_it = false;
SPI.attachInterrupt();
}

ISR (SPI_STC_vect)
{
byte c = SPDR;
// add to gelenfer if room
if (pos < sizeof gelen){
gelen [pos++] = c;
if (c == '\n')process_it = true; }
}
void loop (void)
{
if (process_it) {
gelen [pos] = 0;
Serial.println (gelen);
pos = 0;
process_it = false;
}
}

Kod 46 SPI Slave

84
Uur DEMR - Bir para kod!

24. Arduino Detayl Pin Yaps

ekil - 24.1 Arduino Detal Pin Yaps

85
Uur DEMR - Bir para kod!

25. ASCII Kodlar

Sembollerin saysal karlklarn belirleyerek, saysal olmayan


ya da alfabetik trdeki bilgiyi bilgisayarda temsil etmek amacyla
kullanlan kodlama sistemlerinden en yaygn olarak kullanlan
ASCII kodlama sistemidir.

ASCII szc American Standart Code For Information


Interchange szcklerinin koyu yazlm ilk harflerinden oluan
yapay bir szcktr. ASCII kodlama sistemi her sembol iin 8 bit
kullanmaktadr. Sekiz bit kullanarak 0 ila 255 rakamlar ile
toplam 256 adet sembol temsil edilebilmektedir.

ASCII kodlama sistemi 1963 ylnda tanmlanmtr. Onluk


sistemdeki (Decimal) ASCII kodlar ve karakter karlklar bu
tablolarda

grlmektedir.

rnein KAR kelimesi 75 , 65 ve 82 nolu ASCII karakterlerdir ve


bilgisayarda ikili say:

ekil - 25.1 ASCII rnek

86
Uur DEMR - Bir para kod!

ekil - 25.1 ASCII Tablosu

87
Uur DEMR - Bir para kod!

KODLAR LSTES
Kod -1 Blink
Kod - 2 Setup
Kod - 3 Loop
Kod - 4 if
Kod - 5 if/else
Kod - 6 switch/case
Kod - 7 while
Kod - 8 do/ while
Kod - 9 break
Kod - 10 continue
Kod - 11 return1
Kod - 12 return2
Kod - 13 go to
Kod - 14 Ssl Parantez
Kod - 15 Toplama, karma, arpma, Blme
Kod - 16 Eit eit, Eit deil, Kktr, Byktr, Kk eittir, Byk eittir.
Kod - 17 Mantksal Ve
Kod - 18 Mantksal Deil
Kod - 19 += , -= , *= , /= , %=
Kod - 20 Bitsel Lojik Ve
Kod - 21 INPUT,OUTPUT
Kod - 22 true / false
Kod - 23 substring
Kod - 24 PROGMEM Kullanm
Kod - 25 sizeof
Kod - 26 digitalRead
Kod - 27 analogRead
Kod - 28 analogWrite
Kod - 29 millis
Kod - 30 delayMicroseconds
Kod - 31 Bir Karakterin Analizi
Kod - 32 Serial.begin
Kod - 33 Serial.read
Kod - 34 Serial.print
Kod - 35 Donanm Interrupt
Kod - 36 Timer Interrupt
Kod - 37 Random Say retme
Kod - 38 Random Say retme2
Kod - 39 shiftOut
Kod 40 EEPROM.read
Kod - 41 EEPROM.write
Kod - 42 Kapsaml EEPROM
Kod - 43 I2C Master
Kod - 44 I2C Slave
Kod - 45 SPI Master
Kod - 46 SPI Slave

88
Uur DEMR - Bir para kod!

EKLLER Ve TABLOLAR LSTES


ekil - 1.1 Arduino Uno zellikleri
ekil - 1.2 Atmega 328P Pin isimleri
ekil - 1.3 Arduino Uno kart
ekil - 1.4 Yazlm Yklenmesi (I Agree)
ekil - 1.5 Yazlm Yklenmesi2 (Next)
ekil - 1.6 Yazlm Yklenmesi3 (Install)
ekil - 1.7 - Arduino IDE
ekil - 1.8 - Blink Led Devre emas
ekil - 2.1 Loop
ekil - 3.1 Buton, Led Devre emas
ekil - 3.2 Potansiyometre Devre emas
ekil - 3.3 Pull Up/ Pull Down Direnler
ekil - 3.4 Led Devre emas
ekil - 7.1 Led Buton Devre emas
ekil - 11.1 sizeof kts
ekil - 12.1 - Led Devre emas
ekil - 12.1 Program kts
ekil - 12.1 - Potansiyometre Devre emas
ekil - 12.1 Potansiyometre - Led Devre emas
ekil - 14.1 millis Program kts
ekil - 17.1 Karakter Analizi kts
ekil - 18.1 Serial.print Ekran kts
ekil - 19.1 Buton- Led Devre emas
ekil - 21.1 Kare Dalga Sinyali
ekil - 21.2 74HC95 Entegresi le Led Devresi
ekil - 21.3 74HC95 Entegresi Pin Yaps
ekil - 22.1 EEPROM Ekran kts
ekil - 23.1 I2C Haberleme Balants 1
ekil - 23.2 I2C Haberleme Balants 2
ekil - 23.3 SPI Haberleme Balants 1
ekil - 23.4 SPI Haberleme Balants 2
ekil - 24.1 Arduino Detal Pin Yaps
ekil - 25.1 ASCII rnek

Tablo 8.1 Bitsel Operatrler


Tablo 9.1 Say Sistemleri
Tablo 10.1 Dnmler Tablosu
Tablo 18.1 Interrupt pin Tablosu
Tablo 23.1 I2C Haberleme Pin Yaps
Tablo 23.2 SPI Haberleme Pin Yaps

89

You might also like