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 ReportTranscript 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
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