avatar_ete

Isı-Nem-Alarm Sistemi

Başlatan ete, 05 Eylül 2011, 11:04:12

yilmaz-imr

Keşke sıcaklık ve nem alarm çıkışları ayrı ayrı olsaydı. Bu şekilde kuluçka devresinde kullanılabilirdi.

Kullanım alanı artardı diye düşünüyorum...

ete

Derece işareti gerçekten sorunlu imiş. Düzelttim ve mevcut dosyayı yeniledim.

Ete

yilmaz-imr

Hocam devreyi borda kurup çalıştırdığımda sıcaklık alarm seviyesinin altına düşünce çıkış veriyor 3 sn sonra kapanıyor. Bu şekilde devam ediyor. Nemde problem yok.

İsisdede aynı sorun var ama başlarda yanıp sönmüyor. Bir kaç defa alarm seviyesinin altına inip çıktıkdan sonra aynı şekilde yanıp sönmeye başlıyor.

Sıcaklık degerleri ekrana geç yazıyor gibi geldi. sht11 dokununca deger 2 saniye aralıklarla değerlerin yükselişini gösteriyor. Programdaki beklemelerdenmi kaynaklanıyor. Birde  nemde yükseliyor. Normalmi. Odanın nemi 55 de ise 85-90 lara kadar çıkıyor.


Portb0 boşda duruyor. Nem ve sıcaklığı farklı çıkışlardan almaya çalışsak hafıza yetermi?

ete

#18
Normalde nem seviyesinin set seviyesinin altına düşmesi ile birlikte alarm çıkış verir. Burası doğru. Çıkış seviye altta olduğu müddetçe devam eder. Anlık bile olsa okunan nem seviyenin üzerine çıkması durumunda çıkış kapatılır. Bu durumda histerisiz denilen aralığın biraz artırılması gerekiyor sanırım. Ona bakacağım.
Programclılıkta her şey mümkün. İstediğin yerden çıkış alabilirsin. MAdem portB boş oradan çıkış alabilirsin.
Sorun bunu kimin yapacağında. Hep söylüyorum. Bir programda değişiklik yapmak için programa yeniden hakim olmanız her bir satırını kafanızda canlandırabilmeniz gerekir. Aksi halde bir sürü sorun ortaya çıkar. Hakim olma işlemi de vakit ve konsantrasyon gerektirir. Her kes benden bir şeyler bekliyor. Yalnızca forumda gördüklerinize bakmayın. Özel mesajla da bir sürü istek geliyor. Kimisi sıfırdan program yazmamı istiyor kimisi soru soruyor aklına gelen her şey var. Kendi işlerimi de katarsak vakit bulmakta zorlanıyorum açıkçası. Neden kimse keni işini kendi görmeye çalışmıyor?. Mesela sen otur biraz çalış ve çıkışın yerini değiştir mesela.
Yaparken soru sorabilirsin kısmi sorulara yanıt verebiliyorum. Fazla vaktimi almıyor ama değişiklik yapmak beni yıldırıyor açıkçası. Yeniden program yazmakla eşdeğer benim için.

Ete

Not:
Sıcaklık değeirne bağlı olarak alarmın açılıp kapanmasında ufak bir sorun varmış düzelttim.
Sİstem alarmı açarken sıcaklık set değerineden düşük ise aç emri veriyor. Anacak açmak için nem değerininden set değerden yüksek olması gerekiyor.
Kapatırken ise sıcaklığın set değerden yüksek olması neminde set değerden alçak olması gerekiyor.

Nem alarmı için ayrıca PORTB.0 pininden çıkış verdim. Kullanabilirsen kullanırsın.
Dosyaların yeni halini eskisi ile değiştirdim. Oradan yükleyebilirsin.

Reytabu

#19
Ete hocam


Yeni yılınız hayırlı olsun.
Sıcaklık belirli seviyenin altına düşünce ısıtıcının devreye gireceği, ısı ve nem
belirli bir seviyenin üzerine çıkınca fanın devreye gireceği bir proje (Bitki yetiştirrme kabini) düşünüyorum.
Zaman ayarlı aydınlatma da  olacak.
Bu projenize timer kesmeli saat ilave edip, elimde mevcut  DHT11 sensörü kullanmak istiyorum.
Sizce dht11 sensörü sht11 yerine kullanılabilir mi? Timer kesmeli saat günlük haftalık programda sağlıklı çalışır mı?

Saygılarımla

ete

#20
Dht11 kullanmadım ama bir ara şöylesine bakmıştım. Farklı bir sensör. İsim benzerliği var ama haberleşmesi farklı. Elbette kullanabilirsin ama uygun haberleşme kodunu yazmak şartı ile.
Kesme tabanlı saat ile haftalık hassasiyet yakalaman çok zor. Normal rtc ler ile kristal sorunlarından kaynaklanan problemler oluyor ki kesme tabanlı saatte şaşma çok fazla olacaktır. Tavsiye etmiyorum . Koy bir RTC olsun bitsin.
Ete

kdr042

ete hocam kolay gelsin sitenizde yeniyim baskı devre üzerinde  tek röle var oda sıcaklıgı kontrol etmek için sanırım   ben hem sıcaklıgı hemde nemi ayrı kontrol etmek istiyroum acaba mümkün mü devrede ?

ete

Olur ama bu iş için yeni devre ve yeni program yazmak lazım

Ete

GERİLİMTRAFO

ısı ve nem çıkışları  ayrı olsa harika olurdu
ısı alarm çıkışları artırılabilinirmi misal set:35,0 olsun
35,5 oldu   1 fan       36,0  2 fan     36,5   3fan      37,0  4 fan aktif  gibi

ete

Böyle sorular sormayın lütfen. Bu sonuçta bir devre tasarlanmış bir devre. Bir şey planlıyorsun ve onu yapıyorsun.
Senin isteklerinde ayrı bir tasarım. Onlarıda planlarsın vede programlarsın olur elbette. SOnuçta birisi yaparsa olur tabiiki kendi kendine olmaz. Önemli olan o birisinin kim olduğu.
O biriside sen neden olmuyorsun ?

Ete


GERİLİMTRAFO

#25
olur soru falan sormayız bida

bozoklu01

Merhaba Erol Hocam. Bu devrenizi yaptım sensörden okunan verileri test ettim ve birebir doğru ölçüm yaptığını gördüm. Devrede dikkatimi çeken bir husus devrenin kendi kendine reset atması gibi bir durum mu var yoksa benim röle çıkışına bağladığım yükmü buna sebep oluyor anlamadım. Akşamdan nem'i set ediyorum sabah bakltığımda devre varsayılan değerlere dönmüş. Bir diğer konuda hocam kuluçka devrenizide yaptım onda da sorunum sht11'in ortam sıcaklığını 2-3 derece fazla gösteriyor olması oysa ki ısı-nem alarm devresi projenizle kod olarak aynı görünüyor. isis çiziminde olmayıp ares te pcb tasarımında eklemem gereken bir elemanmı var aceba yardımcı olabilirseniz çok sevinirim hocam.

ete

Programın reset atması elbette programdan değil donanımdandır. İyi bir switching (Lm2575) besleme ile ve röle ile ana devre arasında olması gereken izolasyonları yaparsan reset sorunu hallolur. Bunu bir çok kez yaşadık.

Sht veya bir başka sensörün fazla göstermesi tamamen bulunduğu ortam ve okuma sıklığı ile alakalıdır. Özellikle okuma sıklığı sensörün ısınmasına sebep olur ve normalden birazfazla göstermesi bu durumda normal sayılır. Sensör mümkün olduğunca geniş hacımlı bir ortamda yer almalı ve etrafında herhangi bir ısı kaynağıda olmamalıdır. Isı kaynaklarına devrelerde yer alan dirençlerde dahildir.

Ete

bozoklu01

Hocam devre ve kod size ait ama sanırım bayağı eski sitede göremedim. sensör okuma sıklığı olsa gerek sorun çünkü sensör devreden 50cm uzakta ve açık alanda duruyor. Daha önce ferhat yol arkadaşımızın devresini de yapmıştım ondada sıcaklıkta sorun yoktu ama nem 0/99 arası sürekli değişiyordu hiç sabit bir değer okuyamamıştım. Hocam size ait olan kod üzerinden ilgili bölümü işaretlemeniz mümkün mü aceba?

ete

Kodların büyük kısmı benim yazdığım kodlardan toparlanmış ama programın tamamı bana ait değil diye düşünüyorum. Zira programda kesme kullanılmış ama ana program içinde bazı yerlerde bolca da Pause kullanılmış. Böyle olmaması gerekir. O pause ler yerine döngüsel gecikme kullanılmalı bence.
BASLA etiketi ile GOTO BASLA etiketi arasında yalnıcza 50 ms lik bir gecikme gözüküyorki buda sıcaklık ile nem okuma arasına yerleştirilmiş bir gecikme yalnızca.
Motor kontrollerini bir yana bırakırsak sistem sürekli sensör okuyor gözüküyor. Halbuki böyle bir sistemde en azından her bir sn de bir kere okumalı hatta her bir iki dakikada bir okumalı bence.
Kesme kısmı zaman okumayı en azından her bir sn de bir yaptırmaya yönelik. Aynı yere bir bit değişkeni koyularak ;
Kesme kısmında yer alan;
         IF SAYAC=61 THEN
           SAYAC=0
           GOSUB ZAMAN_OKU
         ENDIF
Satırları;
         IF SAYAC=61 THEN
           SAYAC=0:OKU=1
           GOSUB ZAMAN_OKU
         ENDIF
şeklinde değiştirilerek BASLA etiketinden sonrasında,
BASLA:
           IF OKU=0 then ZIPLA
deyip programı,
;******************************************           
ZIPLA:
      IF SEC=0 THEN MENU
kısmına atlatmak daha doğru olurdu.
Tabiiki SHT sensör okumalarını yaptıktan sonra da OKU=0 demek gerekiyorki bir sonraki okuma için sistem hazır hale gelebilsin.
Bu dediklerimi program üzerinde ilgili yerlerde göstereyim en iyisi,
BASLA:   
        IF OKU=0 then ZIPLA   
        KONTROL=%00000011
        HAM=0   'SICAKLIK ÖLÇME
        GOSUB OLCUMAL
        RAI=HAM
          Gosub ISIHESAP
          GOSUB EKRAN_0       
        PAUSE 50
       KONTROL=%00000101:HAM=0 'RUTUBET ÖLÇME
       GOSUB OLCUMAL
       GOSUB RUTHESAP
       gosub CIKIS
       GOSUB EKRAN_0
       OKU=0
;******************************************
ZIPLA:     
      IF SEC=0 THEN MENU
     
      SIMDI=SAAT*60+DAK
      IF SIMDI=DONZAM THEN         ; BAŞLANGIÇ ZAMANI GELDİĞİNDE
         SURE=SAAT*60+DAK
            GOSUB ALSIMDI
            IF MOT=0 THEN
               MOTA=1:MOTB=0   'MOTOR SAĞA DÖNDÜ
               IF SAGSW=0 THEN
                  I=0
                  FOR I=1 TO 10
                  PAUSE 100
                  NEXT
                  MOT=1
                  GOTO DURUS
               ENDIF
            ENDIF
            IF MOT=1 THEN
               MOTA=0:MOTB=1
               IF SAGSW=0 THEN
                  I=0
                  FOR I=1 TO 10
                  PAUSE 100
                  NEXT
                  MOT=0
                  GOTO DURUS
               ENDIF
            ENDIF
       ENDIF
     
      GOtO BASLA

Bu şekilde en azından sistem her 1000 ms de bir sht sensör okuması yaparak nispeten ısınmasını engelleyecektir.
Ete

Powered by EzPortal