Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX 2013-2014  Arduino açık kaynak kodlu bir mikrodenetleyici kartıdır.  Mikroişlemci bilgisi gerektirmez.  Açık kaynaklı demek kullanıcı.

Download Report

Transcript Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX 2013-2014  Arduino açık kaynak kodlu bir mikrodenetleyici kartıdır.  Mikroişlemci bilgisi gerektirmez.  Açık kaynaklı demek kullanıcı.

Slide 1

Hazırlayan ve Sunan
Ali Yasin Çakılcı

HUNROBOTX
2013-2014


Slide 2


Slide 3

 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.


Slide 4

 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.


Slide 5


Slide 6

Programlama Dili
 Arduino 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....


Slide 7

 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.


Slide 8

 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.


Slide 9

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);


Slide 10

 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,..)


Slide 11

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.


Slide 12

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.


Slide 13

 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.


Slide 14

 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.


Slide 15

Seri Haberleşme
 Elektronik birimler bazı projelerde birbirleriyle

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


Slide 16

 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.


Slide 17

 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.


Slide 18

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)


Slide 19

UYGULAMALAR
-Led yakma


Slide 20

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


Slide 21


Slide 22

Buton Girişi Okuma


Slide 23

İ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);
}
}


Slide 24

ANALOG GİRİŞ OKUMA


Slide 25

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
}


Slide 26

 Arduino için linkler

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

TEŞEKKÜRLER 