kuluçka makinası yardım

Başlatan Mucit23, 08 Haziran 2010, 22:07:02

Mucit23

hocam ben pic brener kullanıyorum brenerde nasıl pici okutup epromuna bakıcam pc programında sadece okumayla ilgili " read from PİC into new HEX-file" diye bir seçenek var oda pic içerisindeki programı okuyup ayrı bir hex dosyası yapıyor.Brenerde eproom okuma nasıl yapılıyor

ete

Brenneri bende tanımıyorum.
Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ete

#17
Motor dönüşlerinin her dakika başında tekrar etmesi son derece normal. Sebebi yalnızca saat bilgisinin değerlendirilmiş olması dakikanın göz ardı edilmiş olmasıdır.
Şimdi sesli düşünelim. Saat 12 de motor bir kere çalışsın denilmiş.
Komuta bakalım;
IF (ZAMAN=SAAT) AND SN=0 THEN HIGH ROLE3
Saat=12 ve ZAMAN=12 olduğuna göre her sn=0 olduğunda yani her dakika değiştiğinde bu motor bir kere döncektir. Taaki saat 13 oluncaya kadar. O halde çözüm SN=0 yerine Dak=0 seçeneğini kullanmaktır bence. Böylece komut;
IF (ZAMAN=SAAT) AND DAK=0 THEN HIGH ROLE3
şeklinde değişecektir. Bu şekilde dakika yalnızca bir kere sıfır olacağı için saat 12 olduğunda motor çalışacak ama sonra dakika sıfırdan farklı olacağı için bir daha çalışmayacaktır.

Hepsini bu şekilde düzeltmen gerekir.

Programda bir kusur daha var oda henüz zaman okuması yapılmadan motor dönme kontrolüne gidiliyor. Bu durumda saat=0 ve dak=0 olduğu için motor direk çalışıyor taaki yeniden SN=0 oluncaya kadar. Bunu önlemek için programın başla satırından evvel;
GOSUB ZAMAN_OKU komutunu ilave etmek gerekiyor. Ayrıca  EKRAN1 etiketi altında yer alan ilk iki satırda yer değiştirmende yarar var. Önce zaman okusun sonra motor dönmeye baksın.


Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23

H0cam dediklerinizi uyguladım ufak bi değişme oldu gibi
artık her dakikanın başında çalışmıyor. Diyelimki saat 16:00:00 da 15 saniye çalışması gerekiyorsa saat 16:00:00 olduğunda 15 saniye çalışıyor saat 16:00:15 olduğunda röle bırakıyor ardından hemen bidaha çekiyor taki saat 16:01:15 olana kadar bunun sebebi ne olabilir acaba yani zaman dolduktan sonra neden bidaha çeksinki

ete

#19
Buda mantıklı. Motorun çalışma süresi 60 sn den az ise daha dakika=0 değeri değişmediği müddetçe program oraya bir daha bakacak ve şart yerine geldiği için motoru yeniden çalıştıracaktır.
Bu durumda saniyeyi de işe katmak gerek.

IF SAAT=ZAMAN AND DAK=0 AND SN=0 THEN HIGH ROLE3
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23

ozaman en doğru şekilde yazarsak "IF (ZAMAN=SAAT) AND DAK=0 AND SN=0 THEN HIGH ROLE3" gibi bir komut yazmamız gerekiyor ben hemen düzenlemeleri yapıp deniyeyim

Mucit23

Ete hocam çok çok teşekkür ederim Allah sizden razı olsun şimdi hiçbir sorun kalmadı herşey tıkırında gidiyor sayenizde :) Ben elazığda yaşıyorum eğer benden ve elazığdan özel bi isteğiniz olursa ben herzaman hazırım .Bir gün elazığa işiniz düşerse sizi ağırlamaktan şeref duyarım.

ete

Mucit23,

Bende sana teşekkür ederim. Bir gün yolum oralara düşerse aramayı isterim doğrusu .

Hoşçakal.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23

Tabiki hocam sizin gibi ilimli insanlara her zaman kapımız açıktır buyrun gelin  :) :)

Mucit23

Merhabalar Ete hocam
hocam sizi bi konuda daha rahatsız edicem. Dünden beri devreyi çalıştırıyorum  Devrede saat kısmı nem kısmı ısı kısmı ve çevirici motor kısmında hiçbir sorun yok hepsi tıkır tıkır çalışıyor fakat bu sabah devreyi incelediğimde gün kısmının 3 olduğunu gördüm ama dün ben günü 1 olarak ayarlamaıştım gece 12 den sonra 1 artması lazım fakat ikişer ikişer artıyor hocam programı incelediğimde ben bir sorun göremedim programda gün kısmı ekran1 başlığı altında ele alınmış
'---------------------------------------EKRANA YAZ -----------------------------	
EKRAN1:	 
         GOSUB ZAMAN_OKU
         GOSUB DONUSEBAK
          READ $07,GUN
        lcdout $FE,$80,DEC2 ISI1,".",dec1 ISI2 ,0,"C   ",DEC2 GUN,".GUN" 
        lcdout $FE,$C0,"NEM:",DEC2 U1 ,"  ",DEC2 SAAT,":",DEC2 DAK,":",DEC2 SN
          READ $09,DUR
            IF SN = DUR THEN LOW ROLE3
            IF SAAT=0 AND DAK=0 AND SN=0 THEN 
               GUN=GUN+1
            IF GUN=31 THEN GUN=1
         WRITE $07,GUN
         PAUSE 300
         ENDIF
        RETURN


görüldüğü gibi burada IF SAAT=0 AND DAK=0 AND SN=0 THEN
GÜN=GÜN+1  demiş bu şekilde yapılmış Mantıklıda zaten ama işte böyle yapınca gece 12 den sonra ikişer arttırıyor günü Sizce bunun sebebi ne olabilir neden kaynaklanır bu sorun





Mucit23

Hocam sorunu az çok anladım gibi aslında biraz daha devreyi incelediğimde saat gece 12 den sonra sıfı olduğunda saniye hemen ilerlemiyor biraz bekliyor hızlı bir şekilde ilerliyor eğer saniye biraz geç ilerlerse gün iki defa artıyor. Ama her zaman bu böyle olmuyor düzgün bir şekilde çalıştığıda oluyor diyorumki çalışma frekansını yani kristalin değerini 8 MHz ye çıkarsak devre açısından bi faydası olurmu yada ısı ve nem  ölçümlerinde bi sorun olurmu

ete

DS1302 ninbazı kötü yönleri var. Bu nedenle ben artık onu kullanmıyorum. Yerine DS1307 kullanıyorum.
Kötü yönü dedim şayet 1 sn içinde iki defa okuma yaparsan sn hızlı artıyor. Bana anlamsız geliyorç Mademki kendi osilatörü var neden hızlı artsınki. Bu nedenle genelde kesme kullanıp her 900ms de bir okuma yaparım . Baktımda 300 ms lik bir gecikme var programda. Belki oraya bir 300 ms daha koysan sorun giderilebilir. Bunun dışında osilatör frekansını artırmak işi çözmeyecektir.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23

Merhabalar ete hocam
Hocam dediğiniz gibi oradaki gecikmeyi 600ms olarak değiştirdim sorun düzeldi gibi artık günü iki defa arttırmıyor saniye daha düzenli ilerliyor yani bu gecikme faydalı oldu.
peki hocam ds1302 ile ds1307 arasındaki fark nedir acaba okumada ve yazmada farklılık varmıdır

ete

Evet okuma ve yazma farklı. DS1307 I2C çalışıyordu yanlış hatırlamıyorsam.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23