arduino dersi

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

Upload: mitch

Post on 10-Jan-2016

48 views

Category:

Documents


5 download

DESCRIPTION

Arduino Dersi. Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX 2013-2014. ARDUİNO. Arduino açık kaynak kodlu bir mikrodenetleyici kartıdır. Mikroişlemci bilgisi gerektirmez. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Arduino Dersi

Arduino Dersi Hazırlayan ve Sunan

Ali Yasin Çakılcı

HUNROBOTX 2013-2014

Page 2: Arduino Dersi

ARDUİNO

Page 3: Arduino Dersi

Arduino açık kaynak kodlu bir mikrodenetleyici kartıdır.

Mikroişlemci bilgisi gerektirmez. Açık kaynaklı demek kullanıcı ile kaynak

kodlarının paylaşıldığı ve değişiklik hakkının kullanıcıya verildiği anlamına gelir.

Arduino’nun bu kadar popüler olmasının nedenlerinden biri de programlamasının kolay olmasıdır.

İnternette birçok proje örneği bulabilirsiniz.

Page 4: Arduino Dersi

Arduino geliştirme ortamı kendi sitesinden ücretsiz şekilde indirilebilir.

Birçok çeşidi ve donanım eklentileri mevcuttur.(Shield)

Arduino geliştirme ortamında tools menüsünden bilgisayara taktığınız arduino modelini kontrol etmekte fayda var.

En önemli özelliklerinden birisi de zengin kütüphane desteğidir.

Page 5: Arduino Dersi
Page 6: Arduino Dersi

Programlama DiliArduino programlama dilinde 2 temel

fonksiyon bulunur.1-) setup () : Bu fonksiyon Arduino çalışmaya

başladıktan sonra ya da reset butonuna basıldıktan sonra 1 kere çalıştırılır.Bu fonksiyonda tek seferlik fonksiyonlar çalıştırılır.Örneğin pin ayarlaması,seri haberleşme başlatılması gibi....

Page 7: Arduino Dersi

2-) loop() : Bu fonksiyon sonsuz döngü fonksiyonlarıdır. setup() fonksiyonunun hemen ardından çalıştırılır ve arduino çalıştığı sürece devam eder.

Birçok programlama dilinde olduğu gibi arduino programalama dili de case-sensitive( büyük küçük harf duyarlı) bir dildir.

Arduino da yazdığımız programları Verify butonu ile derleriz.

Page 8: Arduino Dersi

Verify butonu yukarıda gösterilmiştir.Yanında ki buton ise upload butonudur. Bu

buton ile yazdığımız programı Arduino’ya yükleriz.

Page 9: Arduino Dersi

Dijital Giriş Çıkış Fonksiyonları

Dijital giriş/çıkış , 1 veya 0 bilgisini okumak yada göndermek için kullanılıyor.

pinMode(pin no,giris yada çıkış modu); Bu fonksiyon pinlerin nasıl kullanılacağını ayarlar.eğer çıkış olarak kullanılacaksa OUTPUT giriş olarak kullanılacaksa INPUT yazılır. Örnek,

pinMode(13,INPUT);pinMode(13,OUTPUT);

Page 10: Arduino Dersi

digitalWrite(pin no, HIGH or LOW); Dijital olarak çıkış ayarlanmış pinlere 1 yada 0 verilmesini sağlayan fonksiyondur. HIGH ise 5v LOW ise 0 volt çıkış verir.

digitalRead(pin no); Dijital olarak giriş olarak ayarlanmış pinlerdeki değerin 1 yada 0 olduğu değerini gösterir.

NOT: Çıkış olarak ayarladığımız pinler 5v verse de maksimum verebileceği akım değeri 40mA dir. Yüksek akım isteyen elemanlarla çalışırken yükselteç kullanılmalıdır. (opamp,transistor,..)

Page 11: Arduino Dersi

Gecikme Fonksiyonlarıdelay(); Bu fonksiyonun içine yazdığımız

kadar fonksiyonumuz o noktada o kadar milisaniye cinsinden durur.

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

Page 12: Arduino Dersi

ANALOG GİRİŞ ÇIKIŞ İŞLEMLERİ

Arduino üzerinde bulunan mikrodenetleyicide 10 bitlik ADC bulunuyor. Bunun anlamı şudur ki 0-5v arası gerilimler 0 ile 1023 arasındaki sayılar olarak okunur. (1024 farklı değer)

Eğer okuduğumuz analog değerin kaç volt olduğunu öğrenmek istersek deger*5/1023 işlemini yapmamız gerekir.

Page 13: Arduino Dersi

Arduino’nun çeşidine göre üzerindeki analog giriş sayıları farklılık gösterir.

Analog giriş den değer okumak için kullanıcağımız fonksiyon analogRead(pin no); fonksiyonudur. Pin numarası olarak A0 , A1 ... Yazılır.

Analog çıkış olarak PWM tekniği kullanılır. Bu teknikle dijital yöntemle analog çıkış değerleri üretebiliyoruz.

Page 14: Arduino Dersi

analogWrite(pin no,duty cycle); Bu fonksiyonla analog çıkış verebiliyoruz. 0 ile 255 arasında bi değer verebilirir. 255 değeri 5 volta denk gelir.

Burada dikkat edilmesi gereken nokta bütün dijital çıkış pinlerinden analog çıkış veremiyoruz sadece yanında (~) işareti olanlardan analog çıkış verebiliyoruz.

Page 15: Arduino Dersi

Seri HaberleşmeElektronik birimler bazı projelerde

birbirleriyle iletişim kurmaları gerekebilir. Dijital haberleşmede 2 yöntem var seri ve paralel.

Page 16: Arduino Dersi

Seri haberleşmede veriler tek bir hat üzerinden sıra ile gönderilir.

Seri haberleşmede daha az veri hattı gerekmektedir. Bu yüzden sıkça kullanılır. Günümüzde en çok kullanılan USB buna en iyi örnektir. Derlediğimiz programları arduino kartına yükleme işlemi de aslında seri haberleşme ile olur (USB ile ).

Seri haberleşme 2 ayrı hat üzerinden (RX ve TX) gerçekleşir.

Page 17: Arduino Dersi

Arduino üzerinde bulunan seri haberleşme ünitesine UART (Universal asynchronous receiver/transmitter:Evrensel asenkron alıcı/verici) adı verilir. Arduino modeline göre 1 yada daha fazla haberleşme ünitesi bulunabilir.

TX ve RX in bağlı olduğu pinler seri haberleşme esnasında dijital olarak giriş yada çıkış olarak kullanılamaz.

Page 18: Arduino Dersi

Seri İletişim Fonksiyonları

available() Kaç tane okunmayı bekleyen veri (bayt) var?

begin() Seri İletişimi başlatma

end() Seri iletişimi sonlandırma

print() Seri iletişim üzerinden veri gönderme (text)

println() Veri gönderme (satır sonu karakteri eklenir)

read() Gelen veriden okuma

readBytes() Gelen verileri topluca okuma

write() Veri gönderme (binary)

Page 19: Arduino Dersi

UYGULAMALAR -Led yakma

Page 20: Arduino Dersi

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

Page 21: Arduino Dersi
Page 22: Arduino Dersi

Buton Girişi Okuma

Page 23: Arduino Dersi

İnt ledPin=12;İnt butonPin=13;void setup(){pinMode(ledPin,OUTPUT);pinMode(butonPin,LOW);}void loop() { // Buton durumunu oku buttonDurumu = digitalRead(butonPin);

/* Butona basıldığında butonun durumu HIGH olacaktır. Bu durumda LED çıkışını HIGH yapıyoruz. Tersi durumda ise LOW yapıyoruz */ if (buttonDurumu == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}

Page 24: Arduino Dersi

ANALOG GİRİŞ OKUMA

Page 25: Arduino Dersi

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}

Page 26: Arduino Dersi

Arduino için linklerhttp://www.arduino.cc/http://arduinoturkiye.com/

TEŞEKKÜRLER