robotik uygulama atölyesi hafta2 ders3 · arduino'nun giriş çıkış volt sınırı 5...
TRANSCRIPT
RABIA YEL
R O B O T I K U Y G U L A M A L A R A T Ö L Y E S I
BILGISAYAR MÜHENDISI
#kocasinanakademierciyesevler
Hafta2 - Ders3 08.01.2018
01. 02.
Arduino'ya ayrı ayrı dijital pinlerden bağlı olan LED'lerin
sırayla yanıp ters sırayla sönmesini sağlayan kod.
13,12,11,10,9 ve 8. bacaklara LED'lerin (+) bacakları
breadboard üzerinden jumper kablolarla bağlanır
(-) bacakları breadboard üzerindeki güç hattına takılır
ve 220ohmluk direnç ile Arduino üzerindeki GND
bacağına jumper kablo ile bağlanır.
void setup()
//13-8 arasındaki bütün
bacaklar çıkış olarak tanımlanır
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
void loop()
//13. bacağa bağlı olan LED'den başlayarak
//100ms gecikme süresiyle SIRAYLA yanara
digitalWrite(13, HIGH);
delay(100);
digitalWrite(12, HIGH);
delay(100);
digitalWrite(11, HIGH);
delay(100);
digitalWrite(10, HIGH);
delay(100);
digitalWrite(9, HIGH);
delay(100);
digitalWrite(8, HIGH);
delay(100);
//8. bacağa bağlı olan LED'den başlayarak
//100ms gecikme süresiyle TERS SIRAYLA söner
digitalWrite(8, LOW);
delay(100);
digitalWrite(9, LOW);
delay(100);
digitalWrite(10, LOW);
delay(100);
digitalWrite(11, LOW);
delay(100);
digitalWrite(12, LOW);
delay(100);
digitalWrite(13, LOW);
delay(100);
BILGISAYAR GENUINO 101 BREADBOARD AB USB KABLOSU 1 ADET 220Ω DIRENÇ 1 ADET 1KΩ DIRENÇ 1 ADET LED 1 ADET POTANSIYOMETRE JUMPER KABLOLAR
DERSTE KULLANILACAKARAÇLAR VE MALZEMELER
Dijital mantık ile buton uygulaması
Lamba açıp
kapama ve
lambanın
parlaklığını
ayarlama ile
dijital analog
mantık
arasındaki
bağlantısı
nedir?
DIJITAL MANTIK
1 0
Arduino'nun giriş çıkış volt sınırı 5 volttur. En düşük volt sınırı 0'dır.
Elektronik devrelerde 1 ve 0’ın tam karşılığı voltajlarla ifade edilir.
Bacak numarasıMod (HIGH / LOW)
Burada kullanılan Mod argümanı aslında dijital mantıktır.
HIGH = 5 voltLOW = 0 volt
Bunları programlamaya göre yorumlayacak olursak da
Doğru = 5 voltYanlış = 0 volt
D I J I T A L MANT I K
BUTON ÖRNEĞ I
“F i l e > Examp les > 02 .D ig i t a l > But ton”ö rneğ i üze r i nden d i j i t a l g i r i ş ve ç ı k ı şmant ı ğ ı n ı n p ra t i ğ i n i y ap ıp değ i şken l e r i veyen i f onks i yon l a r ı öğ reneceğ i z .
K ı sa b i r sü re göz gezd i r i l d i k ten son ra i l kde fa ku l l an ı l an cons t , i n t , d i g i t a lRead ( ) , i f ( )ve e l se ( ) i f ade l e r i göze ça rp ı yo r . Bun l a rdaönce değ i şken ned i r so rusunun cevab ıve r i lmes i ge rek i yo r .
Degisken Nedir?
Değişkenler matematikteki x, y, z gibi bilinmeyen sayıları ifade etmek için
kullanılan harflere benzetilebilir. Matematik’te bu gibi harflerle tam sayı,
doğal sayı, kesirli sayı ve karmaşık sayılar gibi sayı türlerini ifade
edebiliriz.
x=16, y= 17/32
Şeklinde harflerle istediğimiz rakamların yerine semboller, harfler koyup başka
bir yerde kullanabiliriz. Programlamadaki değişkenler de tam olarka böyle
kullanılıyor. Ama sadece rakam kullanılması şart değil. Cümle, renk, hatta
matris gibi büyük sayı grupları da ifade edilebilir.
char – karakter (“H”, “4”, “?”)
int – tam sayı (1, 34, 172)
float – kesirli sayı (0.31, 1.38)
boolean – dijital mantık (True/False, 1/0)
string – karakter matrisi (“Arduino”,
“Genuino”, “Maker Çocuk”)
Belli başlı değişken tipleri:
digitalRead()
Bu örnekte göreceğimiz yeni fonksiyon da
digitalRead(BACAK)’dir. Arduino’nun dijital giriş
almasını sağlayan bir fonksiyondur. Tek argüman alır ve
o da bacak numarasıdır. Kulanılabilmesi için setup()
fonksiyonu içerisinde pinMode(BACAK, INPUT)
fonksiyonuyla giriş olarak tanımlanan bacaklar ile
kullanılabilir.
if() / else()
if() / else döngü kontrolü yapılabilmesini sağlayan
fonksiyonlardır. Örneğin, analog bir giriş kontrolü yapıldığı
düşünülürse girişin değeri 500’den küçükken bir aksiyon
büyükken farklı bir aksiyon gerçekletiririlebilir. İkiden fazla
durum kontrolünde de else if() fonksiyonuyla beraber
kullanılabilir. Parantezler arasındaki karşılaştırma
operasyonlarını kontrol eder. Kontrol doğru ise süslü
parantez arasındaki yazılan kodları gerçekleştirir. Eğer
doğru değilse sıradaki if() / else if() / else fonksiyonunu
kontrol eder.
Adım Adım Kodun İncelenmesi ve Devrenin Kurulması
1. const int buttonPin = 2; sabit bir buttonPin tamsayısı tanımlanıyor
2. const int ledPin = 13; sabit bir ledPin tamsayısı tanımlanıyor
3. int buttonState = 0; başlangıç değeri sıfır olan buttonState isminde bir
değişken tanımlanıyor
4. pinMode(ledPin, OUTPUT); ledPin sabit tamsayısıyla 13 numaralı bacağı
çıkış yapılıyor
5. pinMode(buttonPin, INPUT); buttonPin sabit tamsayısıyla 2 numaralı bacak
giriş yapılıyor
6. buttonState = digitalRead(buttonPin); digitalRead() fonksiyonuyla buttonPin
sabit tamsayısı beraber kullanılıyor ve 4 bacaktan dijital okuma yapılıyor.
Burada okunan değer buttonState değişkenine atanıyor.
7. if (buttonState == HIGH); if() fonksiyonuyla buttonState değişkeninin HIGH
(1/True) olup olmadığı kontrol ediliyor.
8. EĞER DOĞRUYSA – digitalWrite(ledPin, HIGH); 13 numaralı bacağa 5 volt
gönderiliyor ve 10. adıma atlıyor.
9. EĞER YANLIŞSA – digitalWrite(ledPin, HIGH); 13 numaralı bacağa 0 volt
gönderiliyor ve 10. adıma atlıyor.
10. Döngü son satırına geliyor ve 6. adıma geri dönüp döngü başta tekrar
başlıyor.
Şekil