Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1. 2 bekle: if(digitalRead(5)==1) { istenen işlem } else { goto bekle; } Goto komutu program içinde yönlendirme yapmayı sağlar. Goto komutu işlendiğinde,

Benzer bir sunumlar


... konulu sunumlar: "1. 2 bekle: if(digitalRead(5)==1) { istenen işlem } else { goto bekle; } Goto komutu program içinde yönlendirme yapmayı sağlar. Goto komutu işlendiğinde,"— Sunum transkripti:

1 1

2 2 bekle: if(digitalRead(5)==1) { istenen işlem } else { goto bekle; } Goto komutu program içinde yönlendirme yapmayı sağlar. Goto komutu işlendiğinde, program goto’nun yanında yazan etikete yönlenir. Örneğin yandaki programda; 5 numaradaki butona basıldığında, program istenen işlemi yapar. Butona basılmadığında ise “bekle” etiketine yönlenerek butonu beklemeye devam eder.

3 Dijital giriş pinlerinden alınan verilere göre, dijital çıkış pinlerini kontrol etmek her zaman yeterli olmayabilir. Bazı durumlarda girişe gelen sinyal sayısını saydırarak, çıkışları kontrol etmek gerekebilir. 3

4 4 Örneğin : bir konveyör üzerinden geçen ürünleri saydırarak, belirli bir ürün sayısından sonra bir konveyörün durmasını veya bir lamba yada buzzer ile sinyal verilmesini sağlayabiliriz.

5 5

6 Bir ürünün sayılabilmesi için, sensörün önce ürünü görmesi; ve sonra ürünün bant üzerinde biraz ilerleyip sensörün görmeyeceği konuma gelmesi gerekir. Sadece görme durumunda sayılırsa; program çok hızlı tarama yaptığından, bir ürün geçene kadar sayaç değeri milyonlarca sayıya ulaşabilir. 6

7 7

8 8 Sensör 0 çıkışı vermektedir !

9 9 Sensör 1 çıkışı vermektedir !

10 Ürün sensörün önüne gelene kadar bekler; Ürün sensörün önüne gelince, ürünün görülmeme durumu oluşmasını bekler. Sensör ürünü 1 kez görüp, sonrasında GÖRMEME durumu oluştuğunda sayı 1 artacak, böylece 1 ürünün geçtiği yazılımla algılanacaktır. Aynı işlem tüm ürünler için gerçekleşecektir. 10

11 Kullandığımız optik sensör(MZ80); ALGILAMA DURUMUNDA => 0 (SIFIR) ALGILAMAMA DURUMUNDA => 1 çıkışı vermektedir. 11

12 Yazılımımızda; - 0 değeri gelmiş mi ? (Ürün geldi mi ?) - Eğer 0 gelmişse; 1 değeri gelmiş mi? (Ürün geçti mi ?) şeklinde iç-içe IF yapısından yararlanacağız. 12

13 Sensörümüz 5 nolu pine bağlı olarak düşünülürse ; if(digitalRead(5)==0)  Cisim sensörün önüne geldi mi ? { if(digitalRead(5)==1)  Cisim sensörün önünden geçti mi ? { SAYACI ARTTIR! } } 13

14 14 Senaryo : Arduino Uno’nun 5 nolu pininden start butonu, 6 nolu pininden stop butonu, 7 nolu pininden MZ80 optik sensör, 8 nolu pininden transistör yardımı ile kontrol edilen röle üzerinden DC Motor kontrol edilecektir. Start butonuna basılıncaya kadar sistem bekleyecek, butona basılınca Motor çalışarak bant dönmeye başlayacaktır. Bant üzerinden 10 adet ürün geçtiğinde veya STOP’a basılırsa bant otomatik olarak duracaktır ve sayma değeri sıfırlanarak, en başa dönülecek ve START beklenecektir.

15 15 int sayac; void setup() { pinMode(5,INPUT); pinMode(6,INPUT); pinMode(7,INPUT); pinMode(8,OUTPUT); bekle: if(digitalRead(5)==1) { digitalWrite(8,OUTPUT); } else { goto bekle; } } Sayma işlemi yapılacağı için, bu komut ile arduino’nun hafızasından sayaç için bir alan ayrılır. Geçen ürün sayısı sayac’ın içine kaydedilecektir. START butonuna BASILMIŞ mı ? BASILMIŞSA Bant çalışsın !! START butonuna BASILMAMIŞ mı ? BASILMAMIŞSA bekle etiketine yönlen !!

16 16 void loop() { if(digitalRead(7)==0) { delay(20); if(digitalRead(7)==1) { sayac=sayac+1; } } else if(digitalRead(6)==1) { digitalWrite(8,LOW); sayac=0; goto bekle; } else if(sayac==10) { digitalWrite(8,LOW); sayac=0; goto bekle; } }

17 17 Programı parça parça inceleyelim: if(digitalRead(7)==0) { delay(20); if(digitalRead(7)==1) { sayac=sayac+1; } } Ürün geldi mi ? Ürün GEÇTİ mi ? Ürün geçtiyse sayacı 1 arttır !

18 18 Programı parça parça inceleyelim: else if(digitalRead(6)==1) { digitalWrite(8,LOW); sayac=0; goto bekle; } Stop butonuna BASILDI mı ? Bantı DURDUR !! Sayacı SIFIRLA !! BASILDIYSA : En başa dön ve START butonunu BEKLE !!!

19 19 Programı parça parça inceleyelim: Sayac 10 oldu mu ? (10 adet ürün geçti mi ?) Bantı DURDUR !! Sayacı SIFIRLA !! 10 olduysa ; En başa dön ve START butonunu BEKLE !!! else if(sayac==10) { digitalWrite(8,LOW); sayac=0; goto bekle; } Devre şemasını kendiniz tasarlayarak, gerekli malzemeleri alıp, programı yükleyerek devrenizi kurup; çalıştırınız.

20 20 Senaryo : Arduino Uno’nun 5 nolu pininden start butonu, 6 nolu pininden stop butonu, 7 nolu pininden MZ80 optik sensör, 8 nolu pininden transistör yardımı ile kontrol edilen röle üzerinden DC Motor, 9 nolu pininden LED1, 10 nolu pininden LED2 kontrol edilecektir. Start butonuna basılıncaya kadar sistem bekleyecek, butona basılınca Motor çalışarak bant dönmeye başlayacaktır.

21 21 Senaryo (devamı) Banttan geçen ürün sayısı 5’den büyükse LED1, 8’den büyükse LED2 ışık verecektir. Ürün sayısı 12 olduğunda veya STOP’a basıldığında; LED’ler sönecek, bant duracak, sayaç sıfırlanacak ve program en başa dönerek; tekrar START’a basılma durumu beklenecektir. Gerekli devre ve program tasarımını yaparak, sistemi çalıştırınız.

22 22 Temrin Adı : Arduino ve sensör ile sayıcı uygulaması Temrin Amacı : Geçen ürün sayısını saydırmak.

23 23 Senaryo : Arduino Uno’nun 5 nolu pininden start butonu, 6 nolu pininden stop butonu, 7 nolu pininden MZ80 optik sensör-1, 9 nolu pininden MZ80 optik sensör-2, 10 nolu pininden transistör yardımı ile kontrol edilen röle üzerinden DC Motor, 11 nolu pininden LED1, 12 nolu pininden LED2 kontrol edilmektedir. Start butonuna basılıncaya kadar sistem bekleyecek, butona basılınca Motor çalışarak bant dönmeye başlayacaktır. UYGULAMA SÜRENİZ: 50 dkdır.

24 24 Senaryo (devamı) : Sensör1’in önünden geçen ürün sayısı, Sensör2’nin önünden geçen ürün sayısından büyük olduğunda motor çalışmaya devam edecektir. Sensör1’in önünden geçen ürün sayısı ile Sensör2’nin önünden geçen ürün sayısı eşit olduğunda motor duracaktır. Sensör1’in önünden geçen sayısı 3’den büyükse LED1 ışık versin. Sensör1’in önünden geçen sayısı 5’den büyükse LED2 ışık versin. Sensör1’in önünden geçen ürün sayısı 11 olunca veya STOP’a basılınca bant duracak, LED’ler sönecek, sayaç sıfırlanacek ve tekrar START butonuna basılana kadar beklenecektir.(en başa dönülecek) Gerekli devreyi tasarlayınız, programı yazınız.

25 25 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.

26 26 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.


"1. 2 bekle: if(digitalRead(5)==1) { istenen işlem } else { goto bekle; } Goto komutu program içinde yönlendirme yapmayı sağlar. Goto komutu işlendiğinde," indir ppt

Benzer bir sunumlar


Google Reklamları