26
Arduino Dersi Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX 2013-2014

Arduino

Embed Size (px)

DESCRIPTION

Arduino

Citation preview

ARDUNO

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