Kesme için yardım

Başlatan ersangundogdu, 19 Mart 2017, 19:00:35

ersangundogdu

Arkadaşlar küçük bir konuda yardım rica ediyorum. Akvaryumumdaki karbondioksit(co2) ve aydınlatmayı sıra ile devreye alıp sıra ile devreden çıkarmak istiyorum. Yani anahtar kapandığında önce valf enerjilenecek 1 saat sonra aydınlatma enerjilenecek. Anahtar açıldığında ise yine önce valfin enerjisi kesilecek 1 saat sonra aydınlatmanın enerjisi kesilecek. Pause komutu ile yaptım sıkıntılı oldu. Kesme ile yapmak gerekecek ama kesme konusunu bir türlü kavrayamadım. Yardım ederseniz çok sevinirim. Saygılar...

ete

Bu istediğini yapabilmek için o yazdığın programın üzerine yazdıklarının iki katı (en az) kod yazıp yeniden bir program oluşturmak lazım. Bu pek makul bir istek gibi gelmiyor bana. Vakti olan yazsın diyeceğim ama birde akıl vereceğim.
Basic Derslerinde kesme konusunda zaten bir saat örneği vermiş idim. Bu örneği biraz değiştirerek istenilen şeyi yapmak yada oradan esinlenip yeni programı yazmak mümkün bence.

Ete

ersangundogdu

Hocam aslında anahtar kapandığında enerjilenme sırasını yapabilirseniz olur. Valf ve aydınlatmanın enerjisi aynı anda kesilse problem değil. Tüm ders notlarınızı tekrar tekrar inceledim. Şu kesmeyi kavrayamadım. Olmuyorsada yapabilecek bir şey yok. Mekanik zaman rölesi ile yapmam gerekecek oda maliyet işte.

ete

Olay sandığın kadar basit değil. İki safha var. Birisi anahtar açık diğeri anahtar kapalı konumu.
Basit ve kesme ile çalışan bir saat program örneği verdiğimi söylemiştim. Bu program SN ve DAK ları otomatik kesme ile saymaktadır zaten. Ekran kısmını çıkar. Kalanı kendi programına adapte et.
Anahtar kapanınca DAK değişkeni sıfırlanmalı ve KAPALI=1 yapılmalı. Valf=1 yapılmalı ve ardından ,
IF KAPALI=1 ise AND DAK=60 ise deyip bu konum yakalandığında , Aydınlatma=1 yapılacak.
Bu aşamadan sonra anahtarın açılması beklenecek.
Açıldığında, KAPALI=0 yapılıp yine DAK değişkeni sıfırlanacak.Valf=0 yapılıp bu seferde;
IF KAPALI=0 and DAK=60 ise denilip bu konum yakalandığında,
Aydınlatma=0 yapılacak.
Hepsi bu.
Gördüğün gibi o hazır olan programa bir kaç değişken ekleyip iki if satırı ile bu işi halledebilirsin. Öyle olacağını umuyorum. Çalıştırmayınca ortaya çıkacak aksaklıkları görmek mümkün olmayabilir.

Ete


karacan451

Ben olsam kesme kullanmana gerek yok bana göre. Onun yerine ds1307 kullanırım ilk başlangıcında 00:00 ayarlarım sonra 1:00 olduğunda ledi kapatırım.Böyle yapabilirsin. Zaten ds1307 zamanı benim yerime sayıyor.

ersangundogdu

ETE hocam söylediklerinizi deneyeceğim. Karacan 451 söylediklerinizi yapabilmem mümkün değil. Teşekkür ederim.

Powered by EzPortal