robotik uygulama atölyesi hafta2 ders3 · arduino'nun giriş çıkış volt sınırı 5...

20
RABIA YEL ROBOTIK UYGULAMALAR ATÖLYESI BILGISAYAR MÜHENDISI #kocasinanakademierciyesevler Hafta2 - Ders3 08.01.2018

Upload: others

Post on 05-Sep-2019

9 views

Category:

Documents


0 download

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

İlk uygulamamız Blink üzerine konuşma...

* 6 ADET LED * 1 ADET 220OHM DIRENÇ * BREADBOARD * JUMPER KABLOLAR

GEREKLI MALZEMELER:

Serbest Uygulama

Kara simsek devresi...

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ı

ANALOG

MANTIK NEDIR?

DIJITAL MANTIK

NEDIR?

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

Diğer derste

görüşmek üzere..