You are on page 1of 26

Arduino Dersi

Hazrlayan ve Sunan
Ali Yasin aklc

HUNROBOTX
2013-2014

ARDUNO

Arduino ak kaynak kodlu bir mikrodenetleyici

kartdr.
Mikroilemci bilgisi gerektirmez.
Ak kaynakl demek kullanc ile kaynak
kodlarnn paylald ve deiiklik hakknn
kullancya verildii anlamna gelir.
Arduinonun bu kadar popler olmasnn
nedenlerinden biri de programlamasnn kolay
olmasdr.
nternette birok proje rnei bulabilirsiniz.

Arduino gelitirme ortam kendi sitesinden

cretsiz ekilde indirilebilir.


Birok eidi ve donanm eklentileri mevcuttur.
(Shield)
Arduino gelitirme ortamnda tools
mensnden bilgisayara taktnz arduino
modelini kontrol etmekte fayda var.
En nemli zelliklerinden birisi de zengin
ktphane desteidir.

Programlama Dili
Arduino programlama dilinde 2 temel

fonksiyon bulunur.
1-) setup () : Bu fonksiyon Arduino almaya
baladktan sonra ya da reset butonuna
basldktan sonra 1 kere altrlr.Bu
fonksiyonda tek seferlik fonksiyonlar
altrlr.rnein pin ayarlamas,seri
haberleme balatlmas gibi....

2-) loop() : Bu fonksiyon sonsuz dng

fonksiyonlardr. setup() fonksiyonunun hemen


ardndan altrlr ve arduino alt srece
devam eder.
Birok programlama dilinde olduu gibi arduino
programalama dili de case-sensitive( byk
kk harf duyarl) bir dildir.
Arduino da yazdmz programlar Verify
butonu ile derleriz.

Verify butonu yukarda gsterilmitir.


Yannda ki buton ise upload butonudur. Bu

buton ile yazdmz program Arduinoya


ykleriz.

Dijital Giri k Fonksiyonlar


Dijital giri/k , 1 veya 0 bilgisini okumak

yada gndermek iin kullanlyor.


pinMode(pin no,giris yada k modu); Bu
fonksiyon pinlerin nasl kullanlacan
ayarlar.eer k olarak kullanlacaksa
OUTPUT giri olarak kullanlacaksa INPUT
yazlr. rnek,
pinMode(13,INPUT);
pinMode(13,OUTPUT);

digitalWrite(pin no, HIGH or LOW); Dijital

olarak k ayarlanm pinlere 1 yada 0


verilmesini salayan fonksiyondur. HIGH ise 5v
LOW ise 0 volt k verir.
digitalRead(pin no); Dijital olarak giri olarak
ayarlanm pinlerdeki deerin 1 yada 0 olduu
deerini gsterir.
NOT: k olarak ayarladmz pinler 5v verse
de maksimum verebilecei akm deeri 40mA
dir. Yksek akm isteyen elemanlarla alrken
ykselte kullanlmaldr. (opamp,transistor,..)

Gecikme Fonksiyonlar
delay(); Bu fonksiyonun iine yazdmz

kadar fonksiyonumuz o noktada o kadar


milisaniye cinsinden durur.
delayMicroseconds(); Bu fonksiyon ise
Microsaniye cinsinden fonksiyonu durdurur.

ANALOG GR IKI
LEMLER
Arduino zerinde bulunan mikrodenetleyicide

10 bitlik ADC bulunuyor. Bunun anlam udur


ki 0-5v aras gerilimler 0 ile 1023 arasndaki
saylar olarak okunur. (1024 farkl deer)
Eer okuduumuz analog deerin ka volt
olduunu renmek istersek deger*5/1023
ilemini yapmamz gerekir.

Arduinonun eidine gre zerindeki analog

giri saylar farkllk gsterir.


Analog giri den deer okumak iin
kullancamz fonksiyon analogRead(pin no);
fonksiyonudur. Pin numaras olarak A0 , A1 ...
Yazlr.
Analog k olarak PWM teknii kullanlr. Bu
teknikle dijital yntemle analog k deerleri
retebiliyoruz.

analogWrite(pin no,duty cycle); Bu fonksiyonla

analog k verebiliyoruz. 0 ile 255 arasnda bi


deer verebilirir. 255 deeri 5 volta denk gelir.
Burada dikkat edilmesi gereken nokta btn
dijital k pinlerinden analog k veremiyoruz
sadece yannda (~) iareti olanlardan analog
k verebiliyoruz.

Seri Haberleme
Elektronik birimler baz projelerde birbirleriyle

iletiim kurmalar gerekebilir. Dijital


haberlemede 2 yntem var seri ve paralel.

Seri haberlemede veriler tek bir hat

zerinden sra ile gnderilir.


Seri haberlemede daha az veri hatt
gerekmektedir. Bu yzden ska kullanlr.
Gnmzde en ok kullanlan USB buna en iyi
rnektir. Derlediimiz programlar arduino
kartna ykleme ilemi de aslnda seri
haberleme ile olur (USB ile ).
Seri haberleme 2 ayr hat zerinden (RX ve
TX) gerekleir.

Arduino zerinde bulunan seri haberleme

nitesine UART (Universal asynchronous


receiver/transmitter:Evrensel asenkron
alc/verici) ad verilir. Arduino modeline gre 1
yada daha fazla haberleme nitesi
bulunabilir.
TX ve RX in bal olduu pinler seri
haberleme esnasnda dijital olarak giri yada
k olarak kullanlamaz.

Seri letiim
Fonksiyonlar
available()

Ka tane okunmay bekleyen veri (bayt) var?

begin()

Seri letiimi balatma

end()

Seri iletiimi sonlandrma

print()

Seri iletiim zerinden veri gnderme (text)

println()

Veri gnderme (satr sonu karakteri eklenir)

read()

Gelen veriden okuma

readBytes() Gelen verileri topluca okuma


write()

Veri gnderme (binary)

UYGULAMALAR
-Led yakma

Program:
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000 );
}

Buton Girii Okuma

nt ledPin=12;
nt butonPin=13;
void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(butonPin,LOW);
}
void loop() {
// Buton durumunu oku
buttonDurumu = digitalRead(butonPin);
/* Butona basldnda butonun durumu HIGH olacaktr.
Bu durumda LED kn HIGH yapyoruz. Tersi durumda
ise LOW yapyoruz */
if (buttonDurumu == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}

ANALOG GR OKUMA

void setup() {
Serial.begin(9600);
}
void loop() {
analogGiris = analogRead(A0);
gerilimDegeri = (analogGiris / 1023.0)*5.0;
Serial.print("Analog deger:");
Serial.println(analogGiris);
Serial.print("Gerilim degeri:");
Serial.println(gerilimDegeri);
delay(1000); // Bir saniye bekle
}

Arduino iin linkler

http://www.arduino.cc/
http://arduinoturkiye.com/

TEEKKRLER

You might also like