Galatasaray Üniversitesi
Bilgisayar Mühendisliği Bölümü
INF340 – Mikroişlemciler
Arduino'ya Giriş
Ozan Çağlayan
ocaglayan@[Link]
[Link]
Arduino Nedir?
● Kolay kullanılabilir ve esnek bir
donanım/yazılım mimarisine sahip, açık
kaynaklı elektronik geliştirme kartı,
● Açık kaynaklı donanım:
– Kartların devre tasarımları tamamen açık,
isteyen üretebilir,
● Açık kaynaklı yazılım:
– Arduino IDE, platform-bağımsız.
Arduino Nedir?
Arduino == Mikroişlemci?
Arduino != Mikroişlemci
Arduino != Mikroişlemci
● Arduino bir mikroişlemci değildir,
● Arduino mikroişlemciler için kolaylaştırıcı
bir geliştirme ortamı sunar,
– Programlama için USB seri bağlantısı,
– Entegre LED,
– Girdi/Çıktı pinleri,
– Güç girişi,
– Reset düğmesi, vs. vs.
Arduino Uygulamaları
● Girdi pinlerine bağlayabileceğiniz çeşitli
algılayıcılar ile ortamı izleyebilir,
● Çıktı pinleriyle ortama müdahale
edebilirsiniz: Işık, ses, motor kontrolü, vs.
– Kahve pişince tweet atan demlik,
– İçine mektup atıldığında telefonunuza bildirim
gönderen posta kutusu,
– Bluetooth tartı,
– Çizgi takip eden robot,
– ...
Arduino Modelleri
Arduino Due
32-bit ARM çekirdekli mikroişlemci içeren
yeni Arduino modeli.
LilyPad Arduino
Giyilebilir e-tekstil uygulamaları
için geliştirilmiş dikilebilir LilyPad.
LilyPad SimpleSnap
Li-Ion bataryalı, çıtçıtlı LilyPad
Arduino Uno
En popüler ve sık kullanılan
Arduino modeli.
Arduino Uno
Arduino Uno
● Mikroişlemci: ATmega328 (8-bit)
● SRAM: 2KB
● Flash Memory: 32KB
● Saat Hızı: 16MHz
● Analog Giriş: 6 Adet
● Sayısal Giriş: 14 (6 tanesi PWM)
Arduino Zırhları (Shield)
● Arduino kartlarının işlevlerini arttırmak
için üstlerine takılan genişleme kartlarıdır.
Arduino Zırhları (Shield)
Ethernet
Arduino Zırhları (Shield)
GSM
Arduino Zırhları (Shield)
Touchscreen
Arduino IDE
● Platform bağımsız: Linux, Mac, Windows
● Alt seviyede gcc derleyicisini kullanıyor,
● IDE Java ile geliştiriliyor,
● Açık kaynaklı:
– [Link]
● Son kararlı sürüm: 1.0.4 (11 Mart 2013)
Arduino Programlama Dili
● Arduino, Wiring tabanlı C/C++'a çok yakın
bir dil ile programlanıyor,
– [Link]
● Arduino IDE ortamı ise Processing temel
alınarak geliştiriliyor,
– [Link]
● Arduino kaynak kod dosyalarına (*.ino)
Sketch (taslak) adı veriliyor.
Arduino İnşa Süreci
Arduino Object
C/C++
Sketch Files
(.ino) (.cpp) avr-gcc (.o)
Linker
USB
HEX
Arduino İnşa Süreci (IDE)
Arduino Object
C/C++
Sketch Files
(.ino) (.cpp) avr-gcc (.o)
Tek tuş!
Linker
USB
HEX
Arduino Programlama Dili
● setup()
– Arduino taslağı başlatılırken çağırılan hazırlama
fonksiyonudur. Değişkenleri ilklendirmek ve pinleri
ayarlamak için kullanılır.
● loop()
– setup() çağrısı sonlandıktan mikroişlemci sürekli
(kapatılana veya resetlenene kadar) bu fonksiyonu
çağırır.
Örnek 1 (Blink)
Örnek 1 (Blink)
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Örnek 2 (AnalogReadSerial)
Örnek 2 (AnalogReadSerial)
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
[Link](9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read
[Link](sensorValue);
// delay in between reads for stability
delay(1);
}
Örnek 2 ([Link])
Örnek 2 (Devre)
Galatasaray Üniversitesi
Bilgisayar Mühendisliği Bölümü
Sorusu olan?
Ozan Çağlayan
ocaglayan@[Link]
[Link]