ARDUINO DJTAL Gi R KONTROL 1 E IF

  • Slides: 22
Download presentation
ARDUINO DİJİTAL Gi. RİŞ KONTROLÜ 1

ARDUINO DİJİTAL Gi. RİŞ KONTROLÜ 1

İÇ İÇE IF YAPISI • Ardışık koşulları kontrol etmek için kullanılır. • Örneğin :

İÇ İÇE IF YAPISI • Ardışık koşulları kontrol etmek için kullanılır. • Örneğin : - Buton 1’e basıldıktan sonra, buton 2’ye basıldı mı ? Basıldıysa işlem yap. - Butona basıldıktan sonra buton bırakıldı mı ? (Düşen kenar) Bırakıldıysa işlem yap. 2

Örnek Yapı : İÇ İÇE IF YAPISI if(koşul 1) { if(koşul 2) { işlemler

Örnek Yapı : İÇ İÇE IF YAPISI if(koşul 1) { if(koşul 2) { işlemler } } Koşul 1 gerçekleşti mi ? Koşul 1 gerçekleştiyse; Koşul 2’de gerçekleşti mi ? ? KOŞUL 1 VE KOŞUL 2 GERÇEKLEŞMİŞSE İSTENİLEN İŞLEMLERİ YAP!! 3

İÇ İÇE IF YAPISI Örnek Yapı : if(koşul 1) { if(koşul 2) { işlemler

İÇ İÇE IF YAPISI Örnek Yapı : if(koşul 1) { if(koşul 2) { işlemler } } ** Bu yapıda, Koşul 1 GERÇEKLEŞMİŞSE, Koşul 2’nin kontrolü yapılır. İstenilen Koşul 2 de gerçekleşmişse; istenilen işlemler yapılır. ** Eğer Koşul 1 GERÇEKLEŞMEMİŞSE , Koşul 2 hiç bir şekilde kontrol EDİLEMEZ. ** Koşul 1 ve Koşul 2 birlikte sağlanmadan işlemler YAPILAMAZ. 4

İÇ İÇE IF YAPISI Örnek Yapı : if(koşul 1) { if(koşul 2) { işlemler

İÇ İÇE IF YAPISI Örnek Yapı : if(koşul 1) { if(koşul 2) { işlemler } } 5

Örnek Yapı – 2 : if(koşul 1) { if(koşul 2) { işlemler 1 }

Örnek Yapı – 2 : if(koşul 1) { if(koşul 2) { işlemler 1 } else { işlemler 2 } } Koşul 1 gerçekleşti mi ? Koşul 1 gerçekleştiyse; Koşul 2 gerçekleşti mi ? ? Koşul 1 ve Koşul 2 gerçekleştiyse, işlemler 1’i yap. Koşul 1 gerçekleştiyse; Koşul 2 gerçekleşmediyse, işlemler 2’yi yap. 6

Örnek Yapı – 3 : if(koşul 1) { if(koşul 2) { işlemler 1 }

Örnek Yapı – 3 : if(koşul 1) { if(koşul 2) { işlemler 1 } else { işlemler 2 } } else { işlemler 3 } Bir önceki örneğe ek olarak, *Koşul 1 hiç gerçekleşmediği zaman, koşul 2 zaten kontrol EDİLMEZ. *Koşul 1 GERÇEKLEŞMEZSE direk olarak işlemler 3 yapılır. 7

ÖRNEK UYGULAMA – 1 Senaryo : Arduino Uno ile 2 buton ve 2 LED’in

ÖRNEK UYGULAMA – 1 Senaryo : Arduino Uno ile 2 buton ve 2 LED’in kontrolü yapılacaktır. Buton 1 => 10 nolu pin Buton 2 => 11 nolu pin LED 1=> 3 nolu pin LED 2 => 4 nolu pin’e bağlıdır Buton 1’e basıldıktan sonra, Buton 2’ye de basılırsa, LED 1 ışık verecektir, LED 2 sönecektir. Buton 1’e basıldıktan sonra Buton 2’ye basılmazsa, LED 1 sönecek, LED 2 ışık verecektir. Gerekli devreyi kurun ve programı yazın. 8

Buton 1’e basılmış mı ? EVET Buton 2’ye basılmış mı ? EVET HAYIR LED

Buton 1’e basılmış mı ? EVET Buton 2’ye basılmış mı ? EVET HAYIR LED 2 YANSIN! LED 1 SÖNSÜN! LED 1 YANSIN! LED 2 SÖNSÜN! 9

Örnek uygulama 1 çözüm : void setup() { pin. Mode(10, INPUT); pin. Mode(11, INPUT);

Örnek uygulama 1 çözüm : void setup() { pin. Mode(10, INPUT); pin. Mode(11, INPUT); pin. Mode(3, OUTPUT); pin. Mode(4, OUTPUT); } ***Loop fonksiyonundaki parantez yapısına dikkat ediniz. Açılan her parantezin mutlaka kapalı karşılığı vardır. void loop() { if(digital. Read(10)==1) { if(digital. Read(11)==1) { digital. Write(3, HIGH); digital. Write(4, LOW); } else { digital. Write(4, HIGH); digital. Write(3, LOW); } } } 10

11

11

ÖRNEK UYGULAMA – 2 Senaryo : Arduino Uno ile 2 buton ve 3 LED’in

ÖRNEK UYGULAMA – 2 Senaryo : Arduino Uno ile 2 buton ve 3 LED’in kontrolü yapılacaktır. Buton 1 => 10 nolu pin Buton 2 => 11 nolu pin LED 1=> 3 nolu pin LED 2 => 4 nolu pin LED 3 => 5 nolu pin’e bağlıdır. Buton 1’e basıldıktan sonra, Buton 2’ye de basılırsa, sadece LED 1 ışık verecektir, Buton 1’e basıldıktan sonra Buton 2’ye basılmazsa, sadece LED 2 ışık verecektir. Buton 1’e basılmazsa, sadece LED 3 ışık verecektir. 12

Örnek uygulama 2 çözüm : void setup() { pin. Mode(10, INPUT); pin. Mode(11, INPUT);

Örnek uygulama 2 çözüm : void setup() { pin. Mode(10, INPUT); pin. Mode(11, INPUT); pin. Mode(3, OUTPUT); pin. Mode(4, OUTPUT); } 13

Örnek uygulama 2 çözüm - devamı : void loop() { if(digital. Read(10)==1) { if(digital.

Örnek uygulama 2 çözüm - devamı : void loop() { if(digital. Read(10)==1) { if(digital. Read(11)==1) { digital. Write(3, HIGH); digital. Write(4, LOW); digital. Write(5, LOW); } else { digital. Write(4, HIGH); digital. Write(3, LOW); digital. Write(5, LOW); } } else { digital. Write(5, HIGH); digital. Write(3, LOW); digital. Write(4, LOW); } } Devre şemasını kendiniz tasarlayın. 14

ÖRNEK UYGULAMA – 3 Senaryo : Arduino Uno ile 1 buton ve 2 LED’in

ÖRNEK UYGULAMA – 3 Senaryo : Arduino Uno ile 1 buton ve 2 LED’in kontrolü yapılacaktır. Buton => 9 nolu pin LED 1=> 6 nolu pin LED 2 => 7 nolu pin Butona basıldıktan sonra; Bırakılırsa SADECE LED 1 ışık verecek. Bırakılmazsa SADECE LED 2 ışık verecek. Gerekli devreyi kurun ve programı yazın. 15

Örnek uygulama 3 çözüm : void setup() { pin. Mode(9, INPUT); pin. Mode(6, OUTPUT);

Örnek uygulama 3 çözüm : void setup() { pin. Mode(9, INPUT); pin. Mode(6, OUTPUT); pin. Mode(7, OUTPUT); } 16

Örnek uygulama 3 çözüm : void loop() { if(digital. Read(9)==1) { delay(100); if(digital. Read(9)==0)

Örnek uygulama 3 çözüm : void loop() { if(digital. Read(9)==1) { delay(100); if(digital. Read(9)==0) { digital. Write(6, HIGH); digital. Write(7, LOW); } else { digital. Write(7, HIGH); digital. Write(6, LOW); } } } Butona basıldı mı ? Buton basıldıktan sonra bırakıldı mı ? Buton bırakıldıysa sadece LED 1 ışık verir. Buton basıldıktan sonra bırakılmadıysa sadece LED 2 ışık verir. 17

void setup() { pin. Mode(9, INPUT); pin. Mode(6, OUTPUT); pin. Mode(7, OUTPUT); } void

void setup() { pin. Mode(9, INPUT); pin. Mode(6, OUTPUT); pin. Mode(7, OUTPUT); } void loop() { if(digital. Read(9)==1) { delay(100); if(digital. Read(9)==0) { digital. Write(6, HIGH); digital. Write(7, LOW); } else { digital. Write(7, HIGH); digital. Write(6, LOW); } } } 18

TEMRİN UYGULAMASI Temrin Adı : İç İçe IF yapısının kullanılması Temrin Amacı : Birden

TEMRİN UYGULAMASI Temrin Adı : İç İçe IF yapısının kullanılması Temrin Amacı : Birden çok dijital girişten gelen bilgilere göre, dijital çıkışları kontrol edebilmek 19

Senaryo : 5 nolu pinden Start 1 butonu, 6 nolu pinden Start 2 butonu

Senaryo : 5 nolu pinden Start 1 butonu, 6 nolu pinden Start 2 butonu UYGULAMA SÜRENİZ : 25 dk’dır. 7 nolu pinden Stop butonu, 8 nolu pinden optokuplör yardımı ile kontrol edilen röle üzerinden DC Motor kontrol, 9 nolu pinden LED kontrol edilmek isteniyor. Program ilk çalıştığında setup bölümünde LED ışık verecektir. Start 1 butonuna basıldıktan sonra, Start 2’ye de basılırsa LED sönecek, motor çalışacak. Stop butonuna basılıp-bırakıldığında Motor duracaktır. Stop butonuna basılıp- bırakılmazsa LED ışık verecektir, motor durmayacaktır. Gerekli devre şemasını tasarlayınız, programı yazınız ve devreyi çalıştırınız. 20

TEMRİN UYGULAMASI İşlem Basamakları ( Yazmayın ) 1) Senaryoyu müsveddeye not edin. 2) Gerekli

TEMRİN UYGULAMASI İşlem Basamakları ( Yazmayın ) 1) Senaryoyu müsveddeye not edin. 2) Gerekli programı bilgisayarda yazın. 3) Kurmanız gereken devreyi müsveddeye çizin. 4) Öğretmeninizden şema ve program için onay bekleyin. 5) Daha sonra malzemelerinizi alarak uygulamanızı yapın. 6) Devrenizin çalışmasını kontrol ettirmek için el kaldırarak sıra alın. 21

TEMRİN UYGULAMASI Defterde temrinle ilgili bulunması gerekenler Temrin uygulaması ile alakalı aşağıda istenenleri defterinize

TEMRİN UYGULAMASI Defterde temrinle ilgili bulunması gerekenler Temrin uygulaması ile alakalı aşağıda istenenleri defterinize düzenli bir şekilde yapın. 1) Senaryo 2) Devre şeması 3) Yazılım 4) Malzeme listesi ** Temrin tablosu çizmenize gerek yoktur. 22