avatar_ete

Isı-Nem-Alarm Sistemi

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

bozoklu01

Teşekkür ederim hocam. Dediğiniz gibi motor kısmı çalışmıyor, açıkçası o kısımda benim ilgi alanıma girmiyor ama sensör okuma ile ilgili alanları düzenleyip tekrar deneyeceğim hocam tekrar teşekkür ederim.

bozoklu01

Hocam anlattığınız değişiklikleri yaptım MCS Compile işlemi sırasında
BASLA: 
        IF OKU=0 THEN ZIPLA kısmı ile ilgili :
ERROR Line 195: Bad expression. (KULUCKA_10.pbp)
ERROR Line 195: Bad expression or missing THEN. (KULUCKA_10.pbp)
ERROR Line 195: IF without a matching ENDIF. (KULUCKA_10.pbp)

aynı bölümün sonunda ;OKU=0 ile ilgili:
ERROR Line 208: Syntax error. (KULUCKA_10.pbp)

NEMYAZ:
       WRITE 26,NEM_ALT.BYTE0:PAUSE 10:WRITE 27,NEM_ALT.BYTE1:PAUSE 10
       WRITE 28,NEM_UST.BYTE0:PAUSE 10:WRITE 29,NEM_UST.BYTE1:PAUSE 10     
       RETURN
OKU:  ile ilgili:
ERROR Line 699: Redefiniton of LABEL OKU. (KULUCKA_10.pbp)

Ölçüm al bölünde yer alan;
EXIT:  IF HATA=1 then satırı ile ilgili:

ERROR Line 731: EXIT outside of a loop. (KULUCKA_10.pbp)

ve kesme bölümünde yer alan;
EXIT:  IF HATA=1 then ile ilgilide:

ERROR Line 808: Redefiniton of LABEL OKU. (KULUCKA_10.pbp)
ERROR Line 808: Syntax error. (KULUCKA_10.pbp) hatası veriyor, yardımcı olabilirseniz sevinirim.








ete

Programda OKU isminde bir etiket ve ona bağlı alt program varmış. Bu nedenle oku yerine HAZIR isimli değişken kullanacağız.
Yapılacakları aşağıda yazıyorum.
Değişken tanımlama kısmında
HAZIR VAR BIT şeklinde bir değişken tanımlanacak.
BASLA etiketinden hemen sonrasına;
IF HAZIR=0 THEN ZIPLA     şeklinde bir satır ilave edilecek.
SHT sensör okuma kısmı sonuna;
HAZIR=0 komut satırı ilave edilecek. Ondan sonra hemen altına ;
ZIPLA: isimli bir etiket eklenecek.
SOnuçta o kısım aşağıdaki gibi olacak. (bir satır üstten bir satır alttan ekliyorum ki neresi olduğunu anlayasın)
GOSUB EKRAN_0
       HAZIR=0
;******************************************      
ZIPLA:
      IF SEC=0 THEN MENU

Kesme içinde yer alan IF SAYAC=61 diye başlayan satırlar aşağıdaki şekilde olacak;
         IF SAYAC=61 THEN 
           SAYAC=0:HAZIR=1
           GOSUB ZAMAN_OKU
         ENDIF

Bunları yaparsan program doğru şekilde derlenecektir.
Ete


bozoklu01

#33
Hocam dediklerinizin hepsini yaptım Allah razı olsun. Derlemede sigorta  ayarları ile ilgili sorun yaşadım ama onuda yine sizin notlarınıza bakarak çözdüm. Maalesef sht 11 yine aynı BASLA etiketi ile GOTO BASLA etiketi arasındaki 50 ms aynen kaldığında 2-3 yükseltme yönünde değişiklik yaptığımda 5-6 derece fazla ölçüyor. Şimdi sizin ısı-nem alarm devresininin sensör kodları ile bu devredeki kodları karşılaştırarak gitmeyi deneyeceğim.

ete

Programın başında hem 32 bit makina (şu anda kapatılmış satırlar halinde) hemde 64 bit makinaya göre sigorta ayarları ( açık olan ) mevcut tek yapman gereken mevcut sigorta satırını kaldırman yada başına noktalı vşrgül koyarak kapatıp diğer sigorta ayar satırlarını açman. Bunuda yap artık.
Ete

bozoklu01

Onda problem yok hocam o durumu aştım da su sıcaklığı yüksek gösterme işine çare bulamadım sht bozuk desem başka devrede doğru ölçüyor kod hatalı desem sizin ısı-nem alarm devresiyle aynı ihtimal zayıfta olsa pic ve diğer komponentlerden başka şüpheli kalmadı.

bozoklu01

Merhaba. Bu devrede alarm hassasiyetini (sıcaklık için) 1 Derece değilde 0.2 yada 0.5 Derece olarak ayarlamak için kodda ne gibi bir değişiklik yapmamız gerekir? Kodda yer alan sensörler için hesaplama kısımlarını kullanarak bir devre yaptım ölçüm sorunsuz ama, örneğin 25 derece altına  kurduğum alarm 24.9'da devreye girerken 26 derecede devreden çıkıyor. Burada 0,1 hassasiyet alarmın neredeyse sürekli devreye girmesine sebep olacağını düşünüyorum onun için mesela 24.8'de devreye girsin 25.2'de devreden çıksın yada 0,5 hassasiyetle 24,5-25,5 gibi çalışsın istersem kodda kontrol kısmında ne gibi bir değişiklik yapmam gerekir, yada değişikliği sadece kontrol rutinlerinin olduğu kısımda yapmam yeterli olurmu ?Cevaplar için şimdiden teşekkür ederim.

ete

Aradana epeyce zaman geçmiş programın detaylarını hatırlamak zor oluyor. Ama ısı hesap kısmına bakınca;
           ISI1=(HAM-4000)/100
           ISI2=((HAM-4000)//100)/10
şeklinde iki satır görülüyor.Bu satırlardan ilki sıcaklığın tam sayı kısmını diğeride ondalık kısmını hesaplıyor.
Sana lazım olan şey aslında
ISI=(HAM-4000)/10 şeklindeki hesaplanan ISI değeri. Bu değer sıcaklığın ondalık kısmınıda ihtiva ettiğinden işini görecektir.
Basit bir örnek yaparsak daha iyi anlarsın 25 derece sıcaklıkta HAM değerin 6500 olacaktır. Bundan 4000 i çıkartırsan elinde 2500 kalır bunu 10'a bölersen 250 değerini elde edersin bu 25,0 derece anlamına geleir ancak 250 şeklinde ondalık değeride ihtiva eder. Bu senin karşılaştırılacak sıcaklık değerin olacaktır.
Gelelim Set değer meselesine.Çünki onuda aynı formata getirmen gerekiyor. Aslında bakınca ALT isimli bir değişken set sıcaklığının bu format şeklini tuttuğunu görüyorum. O halde bütün mesele sıcaklık karşılaştırmasında ,
yukarıda hesapladığımız ISI ve karşısında da ALT değerlerini karşılaştırmak olacaktır.

Aslında programda sıcklık ham değerini yani 4000 eklenmiş halini kullanmışım. Neden öyle yapmışım pek anlamadım ama doğrusu sanki yeni açıkladığım şekil gibi gözüküyor.

Ete



bozoklu01

Teşekkür ederim hocam deneyeceğim.

star

Kodda değişiklik yapmadan sht11 yerine sht10 taksak sorun olmaz dimi.

ete


TA5AAT

#41
ete hocam merhaba nasılsınız..

Hocam bu devreyi board üzerine kurdum çok güzel çalışıyor elinize saglık fakat hocam sht 11 60 70 lira gibi bir fiyatı olan sensör malum dolar hergün degişiyor bu sensör sht 11 yerine piyasada bulunan dht 11 sensör kulansam yazılımda nasıl bir degişiklik yapmam gerekiyor
dht 11  10 lira civarında bu sensör  hem ısı hem nem sensörü araştırdım..

saygılar teşekkürle hocam..

ete

Mantık cevabı vermem gerekirse SHT okuma kodlarını çıkartıp yerine DHT kodlarını koymak gerekir.
Bu sitede DHT11 veya DHT22 diye aratırsan bir sürü kod göreceksin. Bunları alıp yer değiştirirsen istediğin olur.
Ete

TA5AAT

Tmm yüreginize saglık hocam..

Hocam aklıma gelmişken sizinde başınıza geldimi PİKKİT 2 kullanırım yıllardır sonzamanlarda farklı mazemecilerden 16f628a alıyorum aldıgım piklerin bazıları pikkit2 eprumlamıyor ve yesil renk saksıfull yazmıyor

adres failed diyor renk açık kırmızı oluyor basınıza geldimi böyle bir olay teşekkürler

ete

Çok geldi başıma. Bu aslında işlemciden çok Pickit2 sorunu. Yeterince akım veremiyor programlayıcı.
628 ler nedendir bilinmez biraz daha fazla akım istiyor şayet kod koruması açılmış ise yeniden programlarken.
Kullandığını pickit2 nin voltaj kalibrasyon ayarını yapmanızı öneririm.
Ete

Powered by EzPortal