kuluçka makinası yardım

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

Mucit23

merhabalar ETE hocamın da dediği gibi nem değeri set değerinin üzerine çıkınca çalışıyor yani ben öyle ayarlamıştım röle çekince fan çalışıyor ve içerideki havayı dışarı atıyor böylece nem çabucak düşüyor böylesi çok verimli oldu.zaten içeriye koyduğunuz su nemi çok çabuk arttırıyor yani dışarıdan ayrıca nem vermenize gerek yok.

Mucit23

merhabalar ete hocam
ben bu aralar yeni bir projeyle uğraşıyorum fakat projemde bazı sorunlar var bu yüzden sizin önerilerinize ve bilgilerinize ihtiyacım var
projeyle ilgili ayrıntılı bilgiyi bu başlık altında anlatmışım belki görmüşsünüzdür
https://www.picproje.org/index.php/topic,28824.0.html
projemdeki en önemli sorun röleyi kontrol etmeyle ilgili
aşağıdaki yazımda sorununne olduğunu anlatmışım
Alıntı Yapprogramdada anlaşılacağı gibi röleyi kontrol etmek için aşağıdaki komutları kullandım
ZAMANA_BAK:
READ $0,SAYI
READ $1,PTESI:IF PTESI=255 THEN PTESI=0
READ $2,SALI:IF SALI=255 THEN SALI=0
READ $3,CARS:IF CARS=255 THEN CARS=0
READ $4,PERS:IF PERS=255 THEN PERS=0
READ $5,CUMA:IF CUMA=255 THEN CUMA=0
READ $6,CTESI:IF CTESI=255 THEN CTESI=0 
READ $7,PAZAR:IF PAZAR=255 THEN PAZAR=0

IF SAYI=1 THEN
   IF (PTESI=1)AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (SALI=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (CARS=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (PERS=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (CUMA=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (CTESI=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (PAZAR=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
ENDIF  
RETURN         

burada sayı değişkeni pompanın açıkmı kapalımı olduğunu temsil ediyor eğer birse açık sıfırsa pompa kapalıdır
günler i açıklamak gerekirse eğer gün birse o gün sulama yapılır sıfırsa sulama yapılmaz yani menüde onay işareti koymaklar günün 1 veya sıfır olmasını değiştiriyorduk .Motoru kontrol etmek için bu kodları kullandım ama devreyi ilk çalıştırdığımızda hemen röle çekiyor
ve bir sonraki dakikada pompa kaç saniye çalışacaksa o kadar çalışıp röle bırakıyor ayrıca günlerede uymuyor diyelimki sadece pazartesi günü çalışması gerekiyorsa pazartesi dahil hergün boyunca ayarladığım saatte çalışıyor program nedense birtek ayarladığım saat ve dakikayı dikkate alıyor diğer durumları pass geçiyor anlayamadım gitti
acaba ıf sorgulamasınımı yanlış yapıyorum bir türlü program günleri dikkate almıyor sadece saat ve dakikaya uyuyor  bu sorunu nasıl çözebilirim
Diğer bi konu ise ds 1302 yavaş ilerliyor yani saatin normal hızından çok daha yavaş ilerliyor .Bu konuyla ilgili programda şunları keşfettim .
galiba sorun frekansla ilgili bende programdan osc frekansını 8mhz yapıp şemadada kristalfrekanslarını 4 mhz yapınca ds 1302 normal çalışıyor ve ilerliyor onda bir sorun kalmıyor ama bu seferda ds18b20 bozuluyor ısı devamlı -0,1 derecede takılıp kalıyor ama tüm frekansları 8 mehz yada tüm frekansları 4 mhz yapınca ds18b20 normal çalışyıro ama yine saat yavaşlıyor
BEnim gözlemlerim bunlar acaba boşunamı bu kadar uğraşıyorum gereçk hayatta ds1302 normal çalışırmı bu konuda ne önerirsiniz .
programın tüm kodlarını vereyim anlamanız açısında size yardımcı olabilir
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 25.06.2010                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEFINE OSC 8
@ DEVICE pic16F877
@ DEVICE pic16F877, WDT_ON
@ DEVICE pic16F877, PWRT_ON
@ DEVICE pic16F877, PROTECT_OFF
@ DEVICE pic16F877, HS_OSC

TRISA=%00000111
TRISB=%00000000
TRISC=%00001111
TRISD=%00000000
TRISE=%00000000
PORTA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0

DEFINE LCD_DREG		PORTB	
DEFINE LCD_DBIT		4		
DEFINE LCD_RSREG	PORTB	
DEFINE LCD_RSBIT	2	
DEFINE LCD_EREG		PORTB	
DEFINE LCD_EBIT		3		
DEFINE LCD_BITS		4	
DEFINE LCD_LINES	2
ADCON1 = 7

    E       VAR     BYTE
    AY      var     byte
    YIL     var     byte
    SN      VAR     BYTE
    DAK     VAR     BYTE
    SAAT    VAR     BYTE
    GUN     VAR     BYTE
    MEM     VAR     BYTE
    ONLAR   VAR     BYTE
    BIRLER  VAR     BYTE
    SAYAC   VAR     BYTE
    SAYI    VAR     BYTE 
    SAAT1   VAR     BYTE
    DAK1    VAR     BYTE
    DUR     VAR     BYTE
    HAFTA   VAR     BYTE
    PTESI   VAR     BYTE
    SALI    VAR     BYTE
    CARS    VAR     BYTE
    PERS    VAR     BYTE
    CUMA    VAR     BYTE
    CTESI   VAR     BYTE
    PAZAR   VAR     BYTE
    
    'ISI
Busy        VAR BIT         ' Busy Status-Bit
HAM         VAR	WORD        ' Sensör HAM okuma değeri
ISI         VAR WORD        ' Hesaplanmış ISI değeri
Float       VAR WORD        ' Holds remainder for + temp C display
X           VAR WORD       
ISARET_BITI   VAR HAM.Bit11   '   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
EKSI_ISI   CON 1           ' Sıfır altında isaret biti=1  oluyor kontrol için
DERECE     CON 223         ' ° işareti
ISARET     VAR BYTE        '  ISI değeri için  +/-  işaret
TEMP        VAR BYTE       ' Div32 bit hesap için geçici değişken
SYMBOL COMM_PIN=PORTC.3    ' One-wire Data-Pin "DQ" PortB.0 da



LCDOUT $FE, $50, $06, $09, $09, $06, $00, $00, $00, $00 ' dERECE İŞARETİ
    MENU        VAR     PORTA.0
    YUKARI      VAR     PORTA.1
    ASAGI       VAR     PORTA.2
    RTC_RST     var     PORTC.0
    RTC_CLK     var     PORTC.1
    RTC_DTA     var     PORTC.2
    SYMBOL ROLE=PORTA.3
    
    PAUSE 300
    LCDOUT $FE,$40,0,1,2,20,8,0,0,0     'LCD 0. KARAKTER HAFIZASI ONAY İŞARETİ
    LCDOUT $FE,$48,0,17,10,4,10,17,0,0  'LCD 1. KARAKTER HAFIZASI ÇARPI İŞARETİ
    LCDOUT $FE,$50,16,8,4,2,4,8,16,0    'LCD 2. KARAKTER HAFIZASI YÖN İŞARETİ
    
    LCDOUT $FE,1," OTOMATIK CICEK "
    LCDOUT $FE,$C0,"    SULAYICI    "
    PAUSE 1500
    LCDOUT $FE,1
    GOSUB SENSOROKU
BASLA:
    GOSUB ZAMAN_OKU
    GOSUB SENSOROKU
    GOSUB EKRANAYAZ
    GOSUB ZAMANA_BAK
    
    IF MENU=1 THEN
    WHILE MENU=1:WEND
    GOTO AYAR_MENUSU
    ENDIF
GOTO BASLA
'---------------------------ALT PROGRAMLAR-------------------------------------
EKRANAYAZ:
READ $0,SAYI:IF SAYI=255 THEN SAYI=0
READ $10,DUR:IF DUR=255 THEN DUR=0 

LCDOUT $FE,$80,ISARET,DEC ISI,",",DEC1 (Float),Derece,"C ",DEC2 SAAT,":",DEC2 DAK,":",DEC2 SN

IF SN=DUR THEN LOW ROLE

IF SAYI=1 THEN LCDOUT $FE,$C0,"P. ACIK"
IF SAYI=0 THEN LCDOUT $FE,$C0,"P. KAPALI"

IF HAFTA=1 THEN 
LCDOUT $FE,$CB,"PTESI"
ENDIF
IF HAFTA=2 THEN
LCDOUT $FE,$CB," SALI"
ENDIF
IF HAFTA=3 THEN
LCDOUT $FE,$CB," CARS"
ENDIF
IF HAFTA=4 THEN
LCDOUT $FE,$CB," PERS"
ENDIF
IF HAFTA=5 THEN
LCDOUT $FE,$CB," CUMA"
ENDIF
IF HAFTA=6 THEN
LCDOUT $FE,$CB,"CTESI"
ENDIF
IF HAFTA=7 THEN
LCDOUT $FE,$CB," PAZR"
ENDIF
RETURN  

ZAMANA_BAK:
READ $0,SAYI
READ $1,PTESI:IF PTESI=255 THEN PTESI=0
READ $2,SALI:IF SALI=255 THEN SALI=0
READ $3,CARS:IF CARS=255 THEN CARS=0
READ $4,PERS:IF PERS=255 THEN PERS=0
READ $5,CUMA:IF CUMA=255 THEN CUMA=0
READ $6,CTESI:IF CTESI=255 THEN CTESI=0 
READ $7,PAZAR:IF PAZAR=255 THEN PAZAR=0

IF SAYI=1 THEN
   IF (PTESI=1)AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (SALI=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (CARS=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (PERS=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (CUMA=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (CTESI=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
   IF (PAZAR=1) AND SAAT1=SAAT AND DAK1=DAK AND SN=0 THEN HIGH ROLE
ENDIF  
RETURN         


SENSOROKU: 
           OWOUT   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
           OWIN    Comm_Pin, 4, [Busy]    ' Busy değerini oku
           IF      Busy = 0 THEN Bekle    ' hala meşgulmü? , evet ise goto Bekle..!
           OWOUT   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
           OWIN    Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
           GOSUB   Hesapla
           RETURN
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    ISARET  = "+"
    IF ISARET_BITI = EKSI_ISI THEN
       ISARET   = "-"  
       ham=~ham+2
    endif
    float = (HAM*10)/16        ' 
    ISI=FLOAT/10  
    RETURN  


TEMIZLE:
LCDOUT $FE,1
RETURN

AYARLANDI:
lcdout $FE,1,"   AYARLANDI   "
PAUSE 1000
GOSUB TEMIZLE
GOTO CIK
   
AYAR_MENUSU:
GOSUB TEMIZLE
SAATAYARI:
LCDOUT $FE,$80,"   SAAT AYARI"
        IF MENU=1 then 
        WHILE MENU=1:WEND 
         GOTO SAATAYAR1
        ENDIF
 
           IF ASAGI=1 then
        WHILE ASAGI=1:WEND 
         GOTO MOTOR_AYARI
        ENDIF 
   
           IF YUKARI=1 then 
        WHILE YUKARI=1:WEND
         GOTO CIKIS
        ENDIF
GOTO SAATAYARI

MOTOR_AYARI:
GOSUB TEMIZLE
MOTOAYARI:
LCDOUT $FE,$80,"  POMPA AYARI"
       IF MENU=1 THEN
       WHILE MENU=1:WEND
       GOTO MOTORAYAR
       ENDIF
       
         IF ASAGI=1 then
        WHILE ASAGI=1:WEND 
         GOTO CIK
        ENDIF 
   
           IF YUKARI=1 then 
        WHILE YUKARI=1:WEND
         GOTO AYAR_MENUSU
        ENDIF
GOTO MOTOAYARI   

CIKIS:
GOSUB TEMIZLE
CIK:
LCDOUT $FE,$80," MENUDEN CIKIS"
      IF MENU=1 THEN
       WHILE MENU=1:WEND
       LCDOUT $FE,1
       GOTO BASLA
       ENDIF
       
         IF ASAGI=1 then
        WHILE ASAGI=1:WEND 
         GOTO AYAR_MENUSU
        ENDIF 
   
           IF YUKARI=1 then 
        WHILE YUKARI=1:WEND
         GOTO GUN_AYARI
        ENDIF
 GOTO CIK
 
MOTORAYAR:
GOSUB TEMIZLE
MOTOAYAR:
     READ $0,SAYI
     IF SAYI=255 THEN SAYI=0
     LCDOUT $FE,$80,"  POMPA DURUMU  "
     
      IF MENU=1 THEN 
        WHILE MENU=1:WEND
        GOSUB M_ZAMANI
      ENDIF
           IF YUKARI=1 THEN SAYI=SAYI+1
        WHILE YUKARI=1:WEND
           IF SAYI=2 THEN SAYI=0
        WRITE $0,SAYI 
        
        IF SAYI=1 THEN lcdout $FE,$C0,"     ACIK       "
        IF SAYI=0 THEN LCDOUT $FE,$C0,"    KAPALI      "
GOTO MOTOAYAR  

M_ZAMANI:
     GOSUB TEMIZLE
P_TESI
     READ $1,PTESI
     IF PTESI=255 THEN PTESI=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     PTESI=PTESI+1
     IF PTESI=2 THEN PTESI=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF PTESI=1 THEN  LCDOUT $FE,$C0,"PAZARTESI  ",0
     IF PTESI=0 THEN  LCDOUT $FE,$C0,"PAZARTESI  ",1
     WRITE $1,PTESI:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO SALIGUNU
     ENDIF
    
GOTO P_TESI

SALIGUNU:
GOSUB TEMIZLE
SALI_:
     READ $2,SALI
     IF SALI=255 THEN SALI=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     SALI=SALI+1
     IF SALI=2 THEN SALI=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF SALI=1 THEN  LCDOUT $FE,$C0,"SALI  ",0
     IF SALI=0 THEN  LCDOUT $FE,$C0,"SALI  ",1                                            
     WRITE $2,SALI:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO CARSAMBA
     ENDIF
     
GOTO SALI_

CARSAMBA:
GOSUB TEMIZLE
CARS_: 
     READ $3,CARS
     IF CARS=255 THEN CARS=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     CARS=CARS+1
     IF CARS=2 THEN CARS=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF CARS=1 THEN  LCDOUT $FE,$C0,"CARSAMBA  ",0
     IF CARS=0 THEN  LCDOUT $FE,$C0,"CARSAMBA  ",1                                           
     WRITE $3,CARS:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO PERSEMBE
     ENDIF
     
 GOTO CARS_
 
 PERSEMBE:
 GOSUB TEMIZLE
 PERS_:
     READ $4,PERS
     IF PERS=255 THEN PERS=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     PERS=PERS+1
     IF PERS=2 THEN PERS=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF PERS=1 THEN  LCDOUT $FE,$C0,"PERSEMBE  ",0
     IF PERS=0 THEN  LCDOUT $FE,$C0,"PERSEMBE  ",1                                            
     WRITE $4,PERS:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO CUMAGUNU
     ENDIF
    
 GOTO PERS_
 
 CUMAGUNU:
 GOSUB TEMIZLE
 CUMA_:
     READ $5,CUMA
     IF CUMA=255 THEN CUMA=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     CUMA=CUMA+1
     IF CUMA=2 THEN CUMA=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF CUMA=1 THEN  LCDOUT $FE,$C0,"CUMA  ",0
     IF CUMA=0 THEN  LCDOUT $FE,$C0,"CUMA  ",1                                            
     WRITE $5,CUMA:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO CUMARTESI
     ENDIF
     
 GOTO CUMA_
 
CUMARTESI:
GOSUB TEMIZLE
CTESI_:
     READ $6,CTESI
     IF CTESI=255 THEN CTESI=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     CTESI=CTESI+1
     IF CTESI=2 THEN CTESI=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF CTESI=1 THEN  LCDOUT $FE,$C0,"CUMARTESI  ",0
     IF CTESI=0 THEN  LCDOUT $FE,$C0,"CUMARTESI  ",1                                            
     WRITE $6,CTESI:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO PAZARGUNU
     ENDIF
     
GOTO CTESI_:

PAZARGUNU:
GOSUB TEMIZLE
PAZAR_:
     READ $7,PAZAR
     IF PAZAR=255 THEN PAZAR=0
     LCDOUT $FE,$80," SULAMA GUNLERI" 
     IF YUKARI=1 THEN 
     PAZAR=PAZAR+1
     IF PAZAR=2 THEN PAZAR=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF PAZAR=1 THEN  LCDOUT $FE,$C0,"PAZAR  ",0
     IF PAZAR=0 THEN  LCDOUT $FE,$C0,"PAZAR  ",1                                            
     WRITE $7,PAZAR:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO M_CALISMA
     ENDIF
GOTO PAZAR_

M_CALISMA:
GOSUB TEMIZLE
SAAT_AYARLA:
     READ $8,SAAT1:IF SAAT1=255 THEN SAAT1=0
     READ $9,DAK1:IF DAK1=255 THEN DAK1=0
     LCDOUT $FE,1
     IF MENU=1 THEN SAAT_AYARLA
SAAT_AYAR:
      LCDOUT $FE,$81,"CALISMA SAATI"
      LCDOUT $FE,$C4,2,DEC2 SAAT1,":",DEC2 DAK1
   
     IF YUKARI=1 THEN
     SAAT1=SAAT1+1
     IF SAAT1=24 THEN SAAT1=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF ASAGI=1 THEN
     SAAT1=SAAT1-1
     IF SAAT1=255 THEN SAAT1=23
     WHILE ASAGI=1:WEND
     ENDIF
     WRITE $8,SAAT1:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO DAK_AYARLA
     ENDIF
GOTO SAAT_AYAR

DAK_AYARLA:
     READ $8,SAAT1
     READ $9,DAK1:IF DAK1=255 THEN DAK1=0
     LCDOUT $FE,1
     IF MENU=1 THEN DAK_AYARLA
DAK_AYAR:
     LCDOUT $FE,$81,"CALISMA SAATI"
     LCDOUT $FE,$C4,DEC2 SAAT1,":",2,DEC2 DAK1
     
     IF YUKARI=1 THEN
     DAK1=DAK1+1
     IF DAK1=59 THEN DAK1=0
     WHILE YUKARI=1:WEND
     ENDIF
     IF ASAGI=1 THEN
     DAK1=DAK1-1
     IF DAK1=255 THEN DAK1=59
     WHILE ASAGI=1:WEND
     ENDIF
     WRITE $9,DAK1:PAUSE 10
     IF MENU=1 THEN 
     WHILE MENU=1:WEND
     GOTO M_SURE
     ENDIF
     
GOTO DAK_AYAR

M_SURE:
GOSUB TEMIZLE
MSURE:
       READ $10,DUR
           IF MENU=1 THEN AYARLANDI
        WHILE MENU=1:WEND
       lcdout $fe,$80,"POMPA CALISMA" 
       lcdout $FE,$C0,"SURESI:",DEC2 DUR," SANIYE"
           IF YUKARI=1 THEN DUR=DUR+1
        WHILE YUKARI=1:WEND   
           IF DUR=60 THEN DUR=0
           IF ASAGI=1 THEN DUR=DUR-1
        WHILE ASAGI=1:WEND
           IF DUR=255 THEN DUR=59
        WRITE $10,DUR:PAUSE 10
GOTO MSURE   

SAATAYAR1:
       lcdout $fe,1
           IF MENU=1 then SAATAYAR1
SAATAYAR:
        PAUSE 200
       lcdout $FE,$80,"  SAATi AYARLA  "
       lcdout $FE,$C0,"SAAT :",2,dec2 SAAT,":",dec2 DAK,":",dec2 SN
              E=0

       button MENU, 1, 255, 255, E, 1,DAKIKAAYAR1
       button YUKARI,1,255,255,E,1,SAATIARTIR
       button ASAGI,1,255,255,E,1,SAATIAZALT
         goto SAATAYAR

SAATIARTIR:
           IF YUKARI=1 then SAAT=SAAT+1
           IF SAAT=24 then SAAT=0
         goto SAATAYAR

SAATIAZALT:
           IF ASAGI=1 then SAAT=SAAT-1
           IF SAAT=255 then SAAT=23
         goto SAATAYAR
DAKIKAAYAR1:
           IF MENU=1 then DAKIKAAYAR1
       lcdout $fe,1
DAKIKAAYAR:
       lcdout $FE,$80,"  SAATi AYARLA  "
       lcdout $FE,$C0,"SAAT :",dec2 SAAT,":",2,dec2 DAK,":",dec2 SN
              E=0
       button MENU, 1, 255, 255, E, 1,GUN_AYARI
       button YUKARI,1,255,255,E,1,DAKARTTIR
       button ASAGI,1,255,255,E,1,DAKAZALT
DAKARTTIR:
           IF YUKARI=1 then DAK=DAK+1
           WHILE YUKARI=1:WEND
           IF DAK=60 then DAK=0
         goto DAKIKAAYAR
DAKAZALT:
           IF ASAGI=1 then DAK=dak-1
           WHILE ASAGI=1:WEND
           IF DAK=255 then DAK=59
         goto DAKIKAAYAR
         
GUN_AYARI:
GOSUB TEMIZLE
GUNAYARI:
LCDOUT $FE,$84,"GUN AYARI"
IF YUKARI=1 THEN
WHILE YUKARI=1:WEND
HAFTA=HAFTA+1
IF HAFTA=8 THEN HAFTA=1
ENDIF
IF ASAGI=1 THEN
WHILE ASAGI=1:WEND
HAFTA=HAFTA-1
IF HAFTA=0 THEN HAFTA=7
ENDIF

IF HAFTA=1 THEN 
LCDOUT $FE,$C0,"GUN= PAZARTESI  "
ENDIF
IF HAFTA=2 THEN
LCDOUT $FE,$C0,"GUN= SALI       "
ENDIF                          
IF HAFTA=3 THEN
LCDOUT $FE,$C0,"GUN= CARSAMBA   "
ENDIF
IF HAFTA=4 THEN
LCDOUT $FE,$C0,"GUN= PERSEMBE   "
ENDIF
IF HAFTA=5 THEN
LCDOUT $FE,$C0,"GUN= CUMA       "
ENDIF                           
IF HAFTA=6 THEN
LCDOUT $FE,$C0,"GUN= CUMARTESI  "
ENDIF
IF HAFTA=7 THEN
LCDOUT $FE,$C0,"GUN= PAZAR      "
ENDIF

button MENU, 1, 255, 255, E, 1,ZAMAN_B
GOTO GUNAYARI

ZAMAN_B:
           IF MENU=1 then ZAMAN_B
        gosub ZAMAN_YAZ
        GOSUB TEMIZLE
        GOSUB AYARLANDI
         goto CIK       
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ZAMAN_OKU:
    high RTC_RST:OUTPUT RTC_DTA
shiftout RTC_DTA, RTC_CLK, 0, [$BF]:INPUT RTC_DTA
SHIFTIN RTC_DTA, RTC_CLK, 1, [SN, DAK, SAAT,GUN , AY, HAFTA, YIL, MEM]  'OKU
         MEM=SN:GOSUB CEVIR:SN=SAYI
         MEM=DAK:GOSUB CEVIR:DAK=SAYI
         MEM=SAAT:GOSUB CEVIR:SAAT=SAYI
         MEM=GUN:GOSUB CEVIR:GUN=SAYI
         MEM=AY:GOSUB CEVIR:AY=SAYI
         MEM=YIL:GOSUB CEVIR:YIL=SAYI
         MEM=HAFTA:GOSUB CEVIR:HAFTA=SAYI
     low RTC_RST 
  return

ZAMAN_YAZ:
         MEM=sn:gosub TERSCEVIR:sn=SAYI
         MEM=DAK:gosub TERSCEVIR:DAK=SAYI
         MEM=SAAT:gosub TERSCEVIR:SAAT=SAYI
         MEM=GUN:gosub TERSCEVIR:GUN=SAYI
         MEM=AY:gosub TERSCEVIR:AY=SAYI
         MEM=YIL:gosub TERSCEVIR:YIL=SAYI
         MEM=HAFTA:GOSUB TERSCEVIR:HAFTA=SAYI

    high  RTC_RST
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$8E, 0]    'WRT Protek açıldı
     low RTC_RST:PAUSEUS 10 
    high RTC_RST          
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$BE, SN, DAK, SAAT,GUN , AY, HAFTA, YIL, 128]  'YAZ
     low RTC_RST
 PAUSEUS 10
  return

CEVIR:
         ONLAR=MEM & %01110000
         ONLAR=ONLAR>>4
         BIRLER=MEM & %00001111
         SAYI=ONLAR*10+BIRLER
  return

TERSCEVIR:
         ONLAR=MEM DIG 1
         ONLAR=ONLAR<<4
         BIRLER=MEM DIG 0
         SAYI=ONLAR+BIRLER
  return 
  
ENd       

Umarım anlatabilmişimdir hocam sormak istedikleriniz olursa ben buradayım

Alfa

Sayın Mucit23 ve Ete abi öncelikle saygılarımı sunarım.Mucit23  dedigin gibi düşüncen güzel fakat set edilen degerin üstünde röle fanı actıgında içerdeki ısıda düşmekte ve dengesizlik yaratmakta.sizden rica etsem ısıtıcı kısmı gibi set edilen degerde sabit tutma degişikligini yapıp dosyayı burda paylaşırmısınız? yada degişecek yeri belirtin ben degiştireyim.Saglıcakla kalın.

Mucit23

normaldede sizin dediğiniz gibidir zaten ısıtıcı ayarladığımız değerin altına inice çalışır yine aynı şekilde ayarladığımız değerin üstüne çıkınca kapanır .

askuzucu

@alfa;
rölenin normal-açık ve normal kapalı olmak üzere iki kontağı vardır.Biri olmuyorsa diğerini kullanabilirsin.

Alfa

Mucit 23 öyle diyosunda röle degerin üstüne cıkınca calışıyor. ısı ayarı gibi yapman mümkün değilmi?

mustafacan

yani ısı ayarında toleransmı olmasını istiyorsunuz?
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

Alfa

Yok hayır nem kısmınında ısı ayarı gibi çalışmasını istiyorum.bu haliyle set edilen degerin üstüne cıkılınca röle açıyor ben set edilen degere uluşıncaya kadar acık kalıp  o degerde sabit kalmasını istiyorum.

yorulmaz06

Sayın mucit23 bu devreyi kuluçka makinamda kullanmak üzere yaptım çalıştırdım emek verip bizimle paylaşan herkese teşekkür ederim. SHT11 lehimlemekten korktugum için sht 71 kullandım devreyi çalıştırdım. yanlız bi sorunum var 7805 aşırı ısınıyor soğutucu kullandığım halde. Roleler çekili olmadığı zamanlarda bile ısınıyor. baskı devreyi inceledim şase falan göremedim sizce normalmi 7805 in ısınması

Alfa

yorulmaz06 devreyi kaç volt la besliyorsun?

yorulmaz06

12v 7 ah kuru aküyle besliyorum ısınma sorununu çözdüm lcd aydınlatmaya direç koymamıştım yeşil lcd çok akım çekiyo o yüzden ısınıyormuş

Alfa

bende ilk başta 12v kuru akü ile besliyordum sonra 6v 7a akü kullandım ısı problemı kalmadı ama  elektrık olmadıgızaman fazla dayanmıyordu. gene 12v kuru akuye gectım 7805 i termal macunla kaplayıp sogutu ılave ettim simdi sorun yok tavsiye ederim...

yorulmaz06

#57
Sayın hocalarım devre sonunda bitti makinaya koyacağım yanlız aklıma takılan birşey var şuan açık havada nem 85 in altına inmiyor ankarada bu saatte bu nem çok fazla deilmi
şuan saat 19:30 meteorolojide nem 35 benim devre 100 ü geçti acaba pici tekrar programladım 16f877 denedim 16f877a denedim hep aynı acaba calibre etmemmi gerekiyor yardımlarınızı bekliyorum

JKramer

#58
http://www.dmi.gov.tr/tahmin/il-ve-ilceler.aspx?m=ANKARA

Alıntı YapNemliliğin en yüksek olduğu saatler; genellikle, hava sıcaklığının en düşük olduğu gece saatleridir, sıcaklığın en yüksek olduğu öğle saatleri ise genellikle nemliliğin en düşük olduğu saatlerdir.

Ek: Doğal olarak ilçelere göre farkediyor. Mesela merkezde en yüksek %83, Kızılcahamam'da en yüksek %96.

yorulmaz06

Alıntı yapılan: JKramer - 13 Temmuz 2010, 19:31:57
http://www.dmi.gov.tr/tahmin/il-ve-ilceler.aspx?m=ANKARA

Alıntı YapNemliliğin en yüksek olduğu saatler; genellikle, hava sıcaklığının en düşük olduğu gece saatleridir, sıcaklığın en yüksek olduğu öğle saatleri ise genellikle nemliliğin en düşük olduğu saatlerdir.

Ek: Doğal olarak ilçelere göre farkediyor. Mesela merkezde en yüksek %83, Kızılcahamam'da en yüksek %96.

Hocam ilgin için teşekkürler
bulunduğum ilçede en düşük 41 en yüksek 87 ama devrede ölçülen ise 103 şu anda
devreyi kapının önüne dışarıya koydum orada ölçüyorum