Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: Mucit23 - 08 Haziran 2010, 22:07:02

Başlık: kuluçka makinası yardım
Gönderen: Mucit23 - 08 Haziran 2010, 22:07:02
Merhaba arkadaşlar Dursuncanteknik arkadaşın programını yazmış olduğu kuluçka makinası devresini yaptım fakat devrede bazı sorunlar var bu konuda siz değerli arkadaşlardan yardım istiyorum
öncelikle ilk sorun devredeki ısı limit çıkışı  devreyi çalıştırdıktan 1-2 saniye sonra 1 konumuna geçiyor yanı set değeri felan dinlemiyor ama nem kısmında sorun yok diğer bi konu ise çevirici motorun ayarladığım zmanlar dışında çalışması çalışma zamanlarını ayarladıktan sonra her dakika başında motor kaç saniye çalışacaksa okadar çalışıp duruyor bu her dakika için devam ediyor

devrenin programın veriyorum arkadaşlar ısı ve nem ölçme kodları ete hocamızın kodlarıdır bu konuda ete hocamızın bi fikri olur inş
Devrenin aççık kodlarını ben kendi bilgisayarımda derlemeye çalışıyorum fakat bir türlü derlenmiyor Fattal error:out of memory diye bi hata veriyor galiba hafıza ile ilgili bu sorunu nasıl çözebilirim

Ayrıca Microcode studioya mplabı tanıtmak gerekiyormuş arkadaşlar bunu nasıl yapmam gerekiyor.
Mplab olmadan galiba 18F serisi picler için program yazılamıyor


Devrenin açık kodları

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2009 [dursuncanteknik@hotmail.com]  *
'*          : All Rights Reserved                               *
'*  Date    : 14.09.2009                                        *
'*  Version : 1.2                                               *
'*  Notes   :Bu program Kuluçka makinesi için Dursun CAN        *
'*             Tarafından yazılmıştır                           *                                 
'****************************************************************
@ DEVICE pic16F877
@ DEVICE pic16F877, WDT_ON
@ DEVICE pic16F877, PWRT_ON
@ DEVICE pic16F877, PROTECT_OFF
@ DEVICE pic16F877, XT_OSC

TRISA=%111111
TRISB=%00000000
TRISC=%11110000
PORTA=0
PORTB=0
PORTC=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             
'---------------------------değişkenler-----------------------------------------
    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
    Y       VAR     BIT
    SAYAC   VAR     BYTE
    TERM    VAR     BYTE
    NEM     VAR     BYTE
    KONTROL VAR     BYTE    
    ISI1    VAR     BYTE       
    ISI2    VAR     BYTE       
    U1      VAR     BYTE         
    U2      VAR     BYTE
    C0      VAR     BYTE
    Z       VAR     BYTE
    SAYI    VAR     BYTE
    SAY     VAR     BYTE
    H0      VAR     HAM.BYTE0
    H1      VAR     HAM.BYTE1
    HAM VAR     WORD
    RAW     var     word
    ISI     VAR     WORD
    RUT     VAR     WORD
    P1      VAR     WORD
    P2      VAR     WORD
    P3      VAR     WORD             
    C       VAR     WORD
    B       VAR     WORD
    W       VAR     WORD
    DUR      VAR    BYTE
    ZAMAN    VAR    BYTE
    ZAMAN1   VAR    BYTE
    ZAMAN2   VAR    BYTE
    ZAMAN3   VAR    BYTE
    ZAMAN4   VAR    BYTE
    ZAMAN5   VAR    BYTE
    CLK     VAR     PORTA.5
    DTA     VAR     PORTA.3 
    ISARET  VAR     BIT   'sensor değeri 0 ise artı, 1 ise eksi
    SIGN    VAR     BIT   'ısı isareti 0 ise artı 1 ise eksi
    HATA    var     BIT
    MENU    VAR     PORTA.0
    YUKARI  VAR     PORTA.1
    ASAGI   VAR     PORTA.2
   
    symbol ROLE1=PORTC.0
    symbol ROLE2=PORTC.1
    symbol ROLE3=PORTC.2
    SYMBOL BUZER=PORTC.3
   
    RTC_RST     var PORTC.5
    RTC_CLK     var PORTC.6
    RTC_DTA     var PORTC.4
'-----------------------------B A Ş L A N G I Ç ------------------------------   
          LOW ROLE1
          LOW ROLE2
          LOW ROLE3
        PAUSE 20
    ' CLEAR: 'TRISA=%00111111:TRISB=0
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
         PAUSE 500:ISARET=0
        LCDOUT $FE,$40,$6,$9,$9,$6,$0,$0,$0,$0        'derece işareti dataları   
        LCDOUT $FE,$48,$04,$0e,$0e,$0e,$1f,$04,$04,$0       
'-------------------------------------------------------------------------------
                     
         LCDOUT $FE,1, "KULUCKA MAKiNESi"           
         lcdout $FE,$C0,"  version 1.2  "
          pause 3000
         LCDOUT $FE,1
           HIGH BUZER:PAUSE 50:LOW BUZER         
BASLA: 
              KONTROL=%00000011:HAM=0   'SICAKLIK ÖLÇME
        GOSUB OLCUMAL
        Gosub ISIHESAP:GOSUB EKRAN1
       'PAUSE 250
              KONTROL=%00000101:HAM=0 'RUTUBET ÖLÇME
        GOSUB OLCUMAL
        GOSUB RUTHESAP
       'GOSUB EKRAN2
        pause 200
        GOSUB ISIKONTROL
        GOSUB RUTKONTROL
           IF MENU=1 THEN
        WHILE MENU=1:WEND
         GOTO AYAR_MENULERI
        ENDIF
         goto BASLA       
'---------------------------------------EKRANA YAZ -----------------------------
EKRAN1:
         GOSUB DONUSEBAK
         GOSUB ZAMAN_OKU
          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
'''''''''''''''''MOTOR ÇALIŞ '''''''''''''''''             
DONUSEBAK:
           READ $0,SAYI
           READ $10,ZAMAN
           READ $11,ZAMAN1
           READ $12,ZAMAN2
           READ $13,ZAMAN3
           READ $14,ZAMAN4
           READ $15,ZAMAN5
             IF SAYI=1 THEN
             IF SAAT AND ZAMAN AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN1 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN2 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN3 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN4 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN5 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
          ENDIF
         RETURN
''''''''''''''''TEK BIP'''''''''''''''''''''''''''''''''       
BIP:
    HIGH buzer   
     for sayac=0 to 2
pauseus 65535
    next
     LOW buzer 
  RETURN
''''''''''''''''ÇİFT BİP''''''''''''''''''''''''''
  BIPBIP:
     HIGH buzer   
    PAUSE 50
      LOW buzer
    PAUSE 100
     HIGH BUZER
    PAUSE 50
      LOW BUZER
  RETURN
'------------------------------- İŞLEM START -----------------------------------
T_START:
      OUTPUT DTA:OUTPUT CLK
        HIGH DTA
         LOW CLK
       PAUSE 1
        HIGH CLK
         LOW DTA
       PAUSE 1
         LOW CLK
       PAUSE 1
        HIGH CLK
       PAUSE 1
        HIGH DTA
         LOW CLK
RETURN
'-----------------------SENSORE KOMUT GÖNDER -----------------------------------
OLCUMAL:
           GOSUB T_Start
        SHIFTOUT DTA,CLK,1,[KONTROL]
           INPUT DTA
         PULSOUT CLK,10
                 HATA=0
             FOR W=0 to 65500
              IF DTA=0 then EXIT
            NEXT W
                 HATA=1
EXIT:         
              IF HATA=1 then
           endif
         SHIFTIN DTA,CLK,0,[H1]
          OUTPUT DTA
             LOW DTA
         PULSOUT CLK,10
           INPUT DTA
         SHIFTIN DTA,CLK,0,[H0]
         PULSOUT CLK,10
RETURN
'----------------------ISI HESAP ALT PROGRAMI-----------------------------------     
ISIHESAP: 
           If ham<4000 then
              ISARET=1 'sıcaklık eksi değerde demek
              ISI1=(4000-HAM)/100
              ISI2=((4000-ham)//100)/10   
         goto ISISON
        endif
              ISI1=(HAM-4000)/100
              ISI2=((HAM-4000)//100)/10
ISISON:   
           
           ISI1=(HAM-4000)/100
           ISI2=((HAM-4000)//100)/10
RETURN       
'-------------------------RUTUBET HESAP ALT PROGRAMI----------------------------
RUTHESAP:
              'ISI=ISI1*10+ISI2
              p1=(26542-(54722**ham+ham))**ham-25     
              P2=655+(HAM*5)+(HAM**15917)      
              P3=(P2**(ISI*10+2480))-(P2**2730)+P1   
              U1=p3/10:U2=p3//10
           IF ham>3710 THEN
              U1=0:U2=0
        ENDIF 
return
'----------------------------ISI KONTROL----------------------------------------
ISIKONTROL:
         read 1,TERM
           if TERM<ISI1-0 then   
          LOW Role1
         ELSE
        ENDIF
           if ISI1<TERM+0 then         
         HIGH ROLE1               
        Endif     
RETURN
'----------------------------RUTKONTROL-----------------------------------------         
RUTKONTROL:
         READ 2,NEM
           if NEM<U1 then   
         HIGH Role2
         ELSE               
          LOW ROLE2
        ENDIF
RETURN
'-------------------------------------------------------------------------------
AYAR_MENULERI:
        WHILE MENU=1:WEND
       GOSUB TEMIZLE
ISI_AYARI:
       lcdout $fe,$c0,"   ISI LiMiTi   "
           IF MENU=1 then
        WHILE MENU=1:WEND
         GOTO TERM_KONTROL
        ENDIF

           IF ASAGI=1 then
        WHILE ASAGI=1:WEND
         GOTO NEM_AYARI
        ENDIF
   
           IF YUKARI=1 then
        WHILE YUKARI=1:WEND
         GOTO GUNN
        ENDIF
         GOTO ISI_AYARI
     
NEM_AYARI:

       lcdout $fe,$c0,"   NEM LiMiTi   "
           IF MENU=1 then
        WHILE MENU=1:WEND
         GOTO NEM_KONTROL
        ENDIF
           
           IF ASAGI=1 then
        WHILE ASAGI=1:WEND
         GOTO CIK
        ENDIF
         
           IF YUKARI=1 then
        WHILE YUKARI=1:WEND
         GOTO ISI_AYARI
        ENDIF
         
         goto NEM_AYARI     

CIK:
       WHILE MENU=1:WEND
       GOSUB TEMIZLE
CK:
     
       lcdout $fe,$c0," MENUDEN CIKIS "
           IF MENU=1 then
        WHILE MENU=1:WEND
         GOTO BASLA
        ENDIF
         
           IF ASAGI=1 then
        WHILE ASAGI=1:WEND
         GOTO MOTO
        ENDIF
         
           IF YUKARI=1 then
        WHILE YUKARI=1:WEND
         GOTO NEM_AYARI
        ENDIF   
         goto CK
MOTO:
        GOSUB TEMIZLE
MOTOR:
       
       lcdout $fe,$c0," CEViRiCi MOTOR "
           IF MENU=1 then
        WHILE MENU=1:WEND
         GOTO MOT_AYAR
        ENDIF
         
           IF ASAGI=1 then
        WHILE ASAGI=1:WEND
         GOTO SAATT
        ENDIF
         
           IF YUKARI=1 then
        WHILE YUKARI=1:WEND
         GOTO CIK
        ENDIF   
         goto MOTOR
SAATT:
       GOSUB TEMIZLE
SAT:
       lcdout $fe,$c0,"  SAAT AYARI   "
       
           IF MENU=1 then
        WHILE MENU=1:WEND
         GOTO SAATAYAR1
        ENDIF
         
           IF ASAGI=1 then
        WHILE ASAGI=1:WEND
         GOTO GUNN
        ENDIF
         
           IF YUKARI=1 then
        WHILE YUKARI=1:WEND
         GOTO MOTO
        ENDIF   
         goto SAT
         
GUNN:
       GOSUB TEMIZLE
GUNU:
     lcdout $fe,$c0,"  GUNU SIFIRLA  "
       
           IF MENU=1 then
        WHILE MENU=1:WEND
         GOTO GUNAYARI
        ENDIF
         
           IF ASAGI=1 then
        WHILE ASAGI=1:WEND
         GOTO ISI_AYARI
        ENDIF
         
           IF YUKARI=1 then
        WHILE YUKARI=1:WEND
         GOTO SAATT
        ENDIF   
         goto GUNU
GUNAYARI:
       GOSUB TEMIZLE
       WHILE MENU=1:WEND
GUNA: 
     READ $07,GUN
     lcdout $FE,$C0,"GUN:",DEC2 GUN
     IF MENU=1 THEN AYARLANDI
        WHILE MENU=1:WEND
        IF YUKARI=1 THEN GUN=1
        PAUSE 10
        WRITE $07,GUN
           
     GOTO GUNA         
''''''''''''''''''''''''''''''''''''''''         
MOT_AYAR:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTOR_AYAR:

         READ $0,SAYI
       lcdout $fe,$80,"  MOTOR DURUMU  " 
       
           IF MENU=1 THEN M_ZAMANI
        WHILE MENU=1:WEND
           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 MOTOR_AYAR         
M_CALISMA:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_CALISMA:
         READ $09,DUR
           IF MENU=1 THEN AYARLANDI
        WHILE MENU=1:WEND
       lcdout $fe,$80,"MOT.DONUS SURESi"
       lcdout $FE,$C0,"SURE :",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 $09,DUR
         GOTO MOTO_CALISMA                         
M_ZAMANI:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_ZAMANI:
         READ $10,ZAMAN
         READ $11,ZAMAN1
         READ $12,ZAMAN2
         READ $13,ZAMAN3
         READ $14,ZAMAN4
         READ $15,ZAMAN5
           IF MENU=1 THEN M_ZAMANI1
        WHILE MENU=1:WEND
       lcdout $fe,$80,"D.SAATLERi :",e=0,DEC2 ZAMAN
       lcdout $FE,$C0,DEC2 ZAMAN1,":",DEC2 ZAMAN2,":",DEC2 ZAMAN3,":",DEC2 ZAMAN4,":",DEC2 ZAMAN5
           IF YUKARI=1 THEN ZAMAN=ZAMAN+1
        WHILE YUKARI=1:WEND   
           IF ZAMAN=24 THEN ZAMAN=0
           IF ASAGI=1 THEN ZAMAN=ZAMAN-1
        WHILE ASAGI=1:WEND
           IF ZAMAN=255 THEN ZAMAN=23
        WRITE $10,ZAMAN
         GOTO MOTO_ZAMANI
M_ZAMANI1:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_ZAMANI1:
         READ $10,ZAMAN
         READ $11,ZAMAN1
         READ $12,ZAMAN2
         READ $13,ZAMAN3
         READ $14,ZAMAN4
         READ $15,ZAMAN5
           IF MENU=1 THEN M_ZAMANI2
        WHILE MENU=1:WEND
       lcdout $fe,$80,"D.SAATLERi :",DEC2 ZAMAN 
       lcdout $FE,$C0,e=0,DEC2 ZAMAN1,":",DEC2 ZAMAN2,":",DEC2 ZAMAN3,":",DEC2 ZAMAN4,":",DEC2 ZAMAN5
           IF YUKARI=1 THEN ZAMAN1=ZAMAN1+1
        WHILE YUKARI=1:WEND   
           IF ZAMAN1=24 THEN ZAMAN1=0
           IF ASAGI=1 THEN ZAMAN1=ZAMAN1-1
        WHILE ASAGI=1:WEND
           IF ZAMAN1=255 THEN ZAMAN1=23
        WRITE $11,ZAMAN1
         GOTO MOTO_ZAMANI1
M_ZAMANI2:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_ZAMANI2:
         READ $10,ZAMAN
         READ $11,ZAMAN1
         READ $12,ZAMAN2
         READ $13,ZAMAN3
         READ $14,ZAMAN4
         READ $15,ZAMAN5
           IF MENU=1 THEN M_ZAMANI3
        WHILE MENU=1:WEND
       lcdout $fe,$80,"D.SAATLERi :",DEC2 ZAMAN
       lcdout $FE,$C0,DEC2 ZAMAN1,":",e=0,DEC2 ZAMAN2,":",DEC2 ZAMAN3,":",DEC2 ZAMAN4,":",DEC2 ZAMAN5
           IF YUKARI=1 THEN ZAMAN2=ZAMAN2+1
        WHILE YUKARI=1:WEND   
           IF ZAMAN2=24 THEN ZAMAN2=0
           IF ASAGI=1 THEN ZAMAN2=ZAMAN2-1
        WHILE ASAGI=1:WEND
           IF ZAMAN2=255 THEN ZAMAN2=23
        WRITE $12,ZAMAN2
         GOTO MOTO_ZAMANI2
M_ZAMANI3:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_ZAMANI3:
         READ $10,ZAMAN
         READ $11,ZAMAN1
         READ $12,ZAMAN2
         READ $13,ZAMAN3
         READ $14,ZAMAN4
         READ $15,ZAMAN5
           IF MENU=1 THEN M_ZAMANI4
        WHILE MENU=1:WEND
       lcdout $fe,$80,"D.SAATLERi :",DEC2 ZAMAN
       lcdout $FE,$C0,DEC2 ZAMAN1,":",DEC2 ZAMAN2,":",e=0,DEC2 ZAMAN3,":",DEC2 ZAMAN4,":",DEC2 ZAMAN5
           IF YUKARI=1 THEN ZAMAN3=ZAMAN3+1
        WHILE YUKARI=1:WEND   
           IF ZAMAN3=24 THEN ZAMAN3=0
           IF ASAGI=1 THEN ZAMAN3=ZAMAN3-1
        WHILE ASAGI=1:WEND
           IF ZAMAN3=255 THEN ZAMAN3=23
        WRITE $13,ZAMAN3
         GOTO MOTO_ZAMANI3
M_ZAMANI4:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_ZAMANI4:
         READ $10,ZAMAN
         READ $11,ZAMAN1
         READ $12,ZAMAN2
         READ $13,ZAMAN3
         READ $14,ZAMAN4
         READ $15,ZAMAN5
           IF MENU=1 THEN M_ZAMANI5
        WHILE MENU=1:WEND
      lcdout $fe,$80,"D.SAATLERi :",DEC2 ZAMAN 
       lcdout $FE,$C0,DEC2 ZAMAN1,":",DEC2 ZAMAN2,":",DEC2 ZAMAN3,":",e=0,DEC2 ZAMAN4,":",DEC2 ZAMAN5
           IF YUKARI=1 THEN ZAMAN4=ZAMAN4+1
        WHILE YUKARI=1:WEND   
           IF ZAMAN4=24 THEN ZAMAN4=0
           IF ASAGI=1 THEN ZAMAN4=ZAMAN4-1
        WHILE ASAGI=1:WEND
           IF ZAMAN4=255 THEN ZAMAN4=23
        WRITE $14,ZAMAN4
         GOTO MOTO_ZAMANI4
M_ZAMANI5:
        GOSUB TEMIZLE
        WHILE MENU=1:WEND
MOTO_ZAMANI5:
         READ $10,ZAMAN
         READ $11,ZAMAN1
         READ $12,ZAMAN2
         READ $13,ZAMAN3
         READ $14,ZAMAN4
         READ $15,ZAMAN5
           IF MENU=1 THEN M_CALISMA
        WHILE MENU=1:WEND
      lcdout $fe,$80,"D.SAATLERi :",DEC2 ZAMAN 
       lcdout $FE,$C0,DEC2 ZAMAN1,":",DEC2 ZAMAN2,":",DEC2 ZAMAN3,":",DEC2 ZAMAN4,":",e=0,DEC2 ZAMAN5
           IF YUKARI=1 THEN ZAMAN5=ZAMAN5+1
        WHILE YUKARI=1:WEND   
           IF ZAMAN5=24 THEN ZAMAN5=0
           IF ASAGI=1 THEN ZAMAN5=ZAMAN5-1
        WHILE ASAGI=1:WEND
           IF ZAMAN5=255 THEN ZAMAN5=23
        WRITE $15,ZAMAN5
         GOTO MOTO_ZAMANI5                                                                                                         
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   
AYARLANDI:
           IF MENU=1 then AYARLANDI
       lcdout $fe,1,"   AYARLANDI   "
        PAUSE 1000
        gosub BIPBIP
        GOSUB TEMIZLE
         goto CIK       
TEMIZLE:
        lcdout $fe,1
RETURN       
'-------------------------------------------------------------------------------
TERM_KONTROL:
       GOSUB TEMIZLE
TERM_KONT:
       lcdout $fe,$80,"  ISI LiMiTi    "
       lcdout $FE,$C0,"AYARI:",DEC2 TERM
         
           IF YUKARI=1 then TERM=TERM+1
        WHILE YUKARI=1:WEND
           IF TERM=01 then TERM=121
           
           IF ASAGI=1 then TERM=TERM-1
        WHILE ASAGI=1:WEND
           IF TERM=121 then TERM=01
           
        WRITE 1,TERM:PAUSE 10         
           IF MENU=1 THEN
        WHILE MENU=1:WEND
         GOTO AYARLANDI
        ENDIF                 
         GOTO TERM_KONT 
RETURN
'-------------------------------------------------------------------------------
NEM_KONTROL:
       GOSUB TEMIZLE
NEM_KONT: 
       lcdout $fe,$80,"   NEM LiMiTi   "
       lcdout $FE,$C0,"AYARI:",DEC2 NEM
       
           IF YUKARI=1 then NEM=NEM+1
        WHILE YUKARI=1:WEND
           IF NEM=01 then NEM=121
           
           IF ASAGI=1 then NEM=NEM-1
        WHILE ASAGI=1:WEND
           IF NEM=121 then NEM=01
           
        WRITE 2,NEM:PAUSE 10         
           IF MENU=1 THEN
        WHILE MENU=1:WEND
         GOTO AYARLANDI
        ENDIF                 
         GOTO NEM_KONT
       RETURN
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''       
SAATAYAR1:
       lcdout $fe,1
           IF MENU=1 then SAATAYAR1
        gosub EKRAN0

SAATAYAR:
        PAUSE 200
       lcdout $fe, $c7, dec2 SAAT
       lcdout $fe,$0e
       lcdout $fe, $10
              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
        gosub EKRAN0
DAKIKAAYAR:
        PAUSE 200
       lcdout $fe, $ca, dec2 DAK
       lcdout $fe,$0e
       lcdout $fe, $10
              E=0
       button MENU, 1, 255, 255, E, 1,ZAMAN_B
       button YUKARI,1,255,255,E,1,DAKARTTIR
       button ASAGI,1,255,255,E,1,DAKAZALT
DAKARTTIR:
           IF YUKARI=1 then DAK=DAK+1
           IF DAK=60 then DAK=0
         goto DAKIKAAYAR
DAKAZALT:
           IF ASAGI=1 then DAK=dak-1
           IF DAK=255 then DAK=59
         goto DAKIKAAYAR
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, MEM, 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
     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

    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, 0, 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
 
EKRAN0:
lcdout " SAATi AYARLA "
lcdout $fe,$c0,"SAAT : ",dec2 SAAT,":",dec2 DAK,":",dec2 SN
return 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   
END


Devre ile ilgili tüm dosyalar
http://www.dosya.tc/5HNFy2/16F877ileKulu_kaMakinesi.rar.html

lütfen arkadaşlar bana bu konuda yardım edin arkadaşlar bu programı daha sade bir şekilde nasıl yazabilirim
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 07:45:25
Mucit23,

Programın yazılma mantığı gerçekten kötü. Yanlış anlaşılmasın işin kontrol kısmından bahsediyorum. Yoksa programa bakarsan %50 den fazlası zaten ETE kodlarıdır (kimse belirtmemiş ama ben belirteyim).
Her şeyden önemlisi programda değişkenler kullanılmasına rağmen yinede bütün bilgi sürekli eeproma yazılıp oradan okunup işleme sokulmaktadır. Eeproma önceden bir şey yazmadan oradan okuma yaparsanız ilk okumada 255 değerini okursunuz daima.
Sorun buradan kaynaklanıyor. Bu konuda bir tedbir alınmamış.
Programın aşağıdaki kısmına bir bakarsan;
ISIKONTROL:
         read 1,TERM
         if TERM<ISI1-0 then   
           LOW Role1         
         ELSE
         ...
         ...       
RETURN

İlk çalıştırmada TERM değeri 255 olarak okunacak ve bu değer ISI1 değerinden büyük olacağı için Role1 aktif olacaktır. Aynı sorun Nem kontrol kısmında da mevcut. Çözüm ilk okumalarda 255 değerinin okunma ihtimaline karşın bu değerin değiştirilmesi şeklinde uygulanmalıdır. Nasıl dersen,
ISIKONTROL:
         read 1,TERM
'         IF TERM=255 then TERM=0     '......çözüm bu işte
          if TERM<ISI1-0 then   
            LOW Role1         
          ELSE
            if ISI1<TERM+0 then HIGH ROLE1
         ENDIF
       
RETURN


Daha sade bir program yazmak istersen mantığı değiştirmen gerekir.
Bütün kontrol kısmını çıkar yeniden yaz. Bilgi değiştiği zaman eeproma yazılsın ama ilk çalıştırmada bir kere programın başında eepromdan okunsun. Hepsi bu kadar.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 09:12:54
Hocam ilginiz için teşekkür ederim

Programda değişiklik yaparak hiç bir şekilde microcode studioda derleyemiyorum "Fattal error :Out of memory "yani hafıza yok diyor programı nasıl derlemişler hala çözemedim aslında bence bu program için 16 f serisi yetersiz kalıyor 18 f serisi ile yapılması şart gibi görünüyor ama yine aynı şekilde basicdede 18 f serisi için program yazamıyorum bi ayarı yapılması gerekiyormuş. Protonda yazmam gerek programı

Ayrıca dün ilginç bir şeye şahit oldum aynı programı başka bi 877 yükleyince ısı kontrol kısmı çalıştı orada sorun yok ama lakin bu seferde nem kısmında sorun var nem kısmı olduğundan çok fazla değerler gösteriyor ve nem çıkışı daima bir konumunda
Motor kısmı ise biraz daha karışık ayarladığım zamanların dışında çalışıyor her dakikanın başında motorun çalışma süresini kaç saniyeye ayarlamışsam o kadar çalışıp duruyor. Şimdilik sorunlar bunlar inş çabucak çözüm getiririm
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 09:21:54
Benimde derlemede bir sorunum yok. Sorun senin MCS ve PBP kurulumunda.
PBP yu C ana klasörüne kurman tavsiye edelir.
Çalıştığın dosya isimlerinde Türkçe karekter olmamalı. AYrıca yol (path) uzunluğu 65 karekteri geçmemelidir.
Verilen hata hafıza hatası değildir. Olsa bende de olurdu. Muhtemelen derleyicin eskidir.

Program bu hali ile 5800 civarında word  yer tutuyor. Makismum 8192 olması gerek sanırım.  Dolayısıyla hafıza ile ilgili bir sorun yok henüz.

Programda EXIT diye bir etiket var. Onu başka bir isimle değiştir.

OLCUMAL:
           GOSUB T_Start
        SHIFTOUT DTA,CLK,1,[KONTROL]
           INPUT DTA
         PULSOUT CLK,10
                 HATA=0
             FOR W=0 to 65500
              IF DTA=0 then EXIT   
            NEXT W
                 HATA=1
EXIT:


Ete

Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 09:24:09
Tamam hocam deniyeyim şu anda bilgisayarımda microcode studio plus yüklü siz hangi versiyonunu tavsiye ediyorsunuz yada  yükleme ve kurulumda bana önereceğiniz bir konu varmı
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 09:29:07
Hiç bir zaman Plus kullanmadım. Gereksiz. Onun yerine normal olan ve free olan MCS yi kullanıyorum.
MCS sadece bir editör ahım şahım bir fonksiyonu yok zaten. O olmuş bu olmuş fark etmez ama kullanmadığın özellikleri olan bir şeyi kullanmak yerine sade olanı tercih etmek daha akıllıca olmazmı?.

aşağıdaki linki incele.

https://www.picproje.org/index.php?topic=27652.0

Linke direk tıklarsan yüklemiyor. Onun yerine kopyala ve yapıştır yöntemini kullan. Adminlere duyurulur!!!!!!!!!!!!!!!!
Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 09:52:32
Hocam ne diyeyim allah sizden razı olsun Allah size uzun ve rahat bir ömür versin .Dediklerinizi uyguladım ve şimdi derleyebiliyorum  :) sayenizde bişeyler öğrendim
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 10:13:02
hocam şimdilik ısı ve nemde sorun kalmadı daha yeni devreyi çalıtırdım ısı ve nemde sorun yok şimdilik tek bir sorun kaldı cevirici motor kısmı motorda nedense ayarladığım saatler dışında çalışıyor her dakikanın vbaşında motorun çalışma süresini ne kadara ayarlamışsam o kadar çalışıyor ve duruyor anlayamadım hocam bu sorun için bana önereceğiniz bi değişiklik varmı sizceneden olabilir
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 10:47:46
Motor Röle3' ilemi aktif oluyor?

Eğer öyle ise programın o kısmına birlikte bakalım;

DONUSEBAK:
           READ $0,SAYI
           READ $10,ZAMAN
           READ $11,ZAMAN1
           READ $12,ZAMAN2
           READ $13,ZAMAN3
           READ $14,ZAMAN4
           READ $15,ZAMAN5
             IF SAYI=1 THEN
             IF SAAT AND ZAMAN AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN1 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN2 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN3 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN4 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
            IF SAAT AND ZAMAN5 AND SN=0 THEN
           HIGH ROLE3
          ENDIF
          ENDIF
         RETURN

Bir defa aynı eeprom okuma sorunu burada da mevcut. Bunların hepsine okunan değer 255 ise değer=0  ilavesi gerekiyor.
Sonra;
Sence aşağıdaki komut ne anlama geliyor?
IF SAAT AND ZAMAN AND SN=0 THEN

Bence kullanım amacına ters gelen bir komut bu. Aslında anlamı Saat=1 ise ve Zaman=1 ise ve SN=0 ise Then demek oluyor.
Ama burada yanlış sonuçlara sebep olmakta bu komut. Bence sorun burada;
Ohalde doğrusu nedir?
             IF SAAT=ZAMAN  AND SN=0 THEN  HIGH ROLE3

Şeklinde olmalı. Açıklamak gerekir ise o andaki saat değeri ile motorun dönme saati eşit ise motor dönmeli.
Bu birinci zaman ve diğer zamanlar için aynı olmalıdır.

Kolay Gelsin
Ete

Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 11:08:51
hocam anlayamadım
Dediğiniz gibi motor röle 3 ile aktif oluyor burada epromdan okunan değerler için 255 olmasını önlemek için aşağıdaki gibimi yazılması gerekiyor

DONUSEBAK:
           READ $0,SAYI
           READ $10,ZAMAN
           READ $11,ZAMAN1
           READ $12,ZAMAN2
           READ $13,ZAMAN3
           READ $14,ZAMAN4
           READ $15,ZAMAN5
             IF SAYI=1 THEN
                 IF ZAMAN=255 THEN ZAMAN=0
                 IF SAAT=ZAMAN  AND SN=0 THEN 
                 HIGH ROLE3
                 ENDIF
           
                 IF ZAMAN1=255 THEN ZAMAN1=0
                 IF SAAT=ZAMAN1  AND SN=0 THEN 
                 HIGH ROLE3
                 ENDIF
                 
                 IF ZAMAN2=255 THEN ZAMAN2=0
                 IF SAAT=ZAMAN2  AND SN=0 THEN 
                 HIGH ROLE3
                 ENDIF
                 
                 IF ZAMAN3=255 THEN ZAMAN3=0
                 IF SAAT=ZAMAN3  AND SN=0 THEN 
                 HIGH ROLE3
                 ENDIF
                 
                 IF ZAMAN4=255 THEN ZAMAN4=0
                 IF SAAT=ZAMAN4  AND SN=0 THEN 
                 HIGH ROLE3
                 ENDIF
                 
                 IF ZAMAN5=255 THEN ZAMAN5=0
                 IF SAAT=ZAMAN5  AND SN=0 THEN 
                 HIGH ROLE3
                 ENDIF
          ENDIF
         RETURN


Eğer yanlış anlamadıysam kodun doğru yazılışı böyle olması gerekiyor
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 11:24:52
Evet yadıkların doğru. İlk zaman ayarları yapılıncaya kadar bu ayarların sıfır yada sıfırdan farklı bir şekilde mesela hiç bir şekilde ulaşılamayan bir saat değerine 70 gibi bir değere eşitlenebilir. Sıfır yaparsan gece yarısı saat değeride sıfır olacağı için eşitlik sağlanabilir. Aslında hiç dokunmasan belki 255 de kalmaları daha uygunda olabilir . İnsan sesli düşününce bu kısımda epromdan okunan değerler 255 de kalabilir tabiiki ilk ayarı verinceye kadar. İlk ayar verinceye kadar motorun aktif olmamasını sağlamak lazım.
Emin olayım dersen 255 okunan değerleri 70 yap istersen.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 11:45:20
Hocam dediklerinizi uyguladım fakat sorun  yine aynı şekilde belliki bizim farkedemediğimiz başka bir sorun var aslında yapamıyorsak eğer o kadar uğraşmanıza gerek yok hocam sizi fazla yormak istemiyorum.Benim için önemli olan ısı ve nemdi onlarda sorun kalmadı. motorda her dakikanın başında çalışyor bende çalışma süresini minimuna indiririm bu şekilde motor 4 saatte bir değilde her dakikanın başında adım adım hareket eder bu böylece 21 gün boyunca devam eder
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 11:47:59
Sen sorunu tam olarak bana açıklarmısın. Ona göre bakayım.
Birde mümkünse pic'in eepromunu bir oku ve bana 0-10 adresleri arasında ne kayıtlı onlarıda söyleyiverki ona göre karşılaştırma yapabileyim.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 11:58:20
Hocam sorunu tam olarak açıklayayım
programda ana menüden cevirici motor kısmına girdiğimiz zaman ilk önce motor açıkmı kapalımı onu şeçiyoruz, açığı seçtikten sonra motorun dönüş saatleri ni girmemiz isteniyor.
   kuluçka makinelerinde yumurtaların en az 4 saatte bir çevrilmesi gerekir buda 24 saatte 6 kez döndürülmesi anlamaına geliyor tekrar menüye dönersek ;
sırasıyla yumurtaların dönüş saatlerini giriyoruz
00,04,08,12,16,20
dönüş saatlerini bu şekilde giriyoruz yani bu şekilde saat 00 birkez döner durur saat 4 oldumu tekrar döne bu böylece devam eder
tekrar menü tuşuna bastığımızda bu seferde motorun kaç saniye boyunca çalışacağını girmemiz istenir bunu saniye cinsinden 0 ile 59 arasında bir sayı girilerek yapılır .
tüm ayarlamaları yaptıktan sonra normal çalışma moduna geri döndüğümüzde motorun ayarladığımız saatlerde değilde her dakikanın başında kaç saniye dönmesi gerekiyorsa o kadar dönüyor
Örnek vermek gerekirse
diyelimki saat 12:08:32 bu şekilde motor çalışmıyor ama saat 12:09:00 olduğu anda motor kaç saniye dönmesini istemişsek okadar dönüp duruyor bu her dakikanın başında tekrarlanıyor ana sorun budur hocam

yanlız bu eprom okuma işini anlamadım bunu nasıl yapıcam


Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 12:09:06
Sorunu anladım. Muhtemelen eeproma saat değil dakika değerleri kayıt edilmiş olmasın?.
Ama her dakika sıfırlandığında bu olay meydana geliyorsa sorun başka yerdedir bakayım.

Eepromu okumak için pici yerinden sök ve programlayıcıya tak. READ komutunu çalıştır ve eeprom değerlerine bak.
Orada sıfırncı adresten itibaren okuduğun değerleri bir yere not et. Bu değerler sorunun bulunması için önem arzediyor.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 12:14:38
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 12:35:27
Brenneri bende tanımıyorum.
Ete

Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 12:48:00
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 14:56:05
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 15:09:59
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 15:16:53
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 15:27:47
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.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 09 Haziran 2010, 15:30:28
Mucit23,

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

Hoşçakal.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 09 Haziran 2010, 15:31:43
Tabiki hocam sizin gibi ilimli insanlara her zaman kapımız açıktır buyrun gelin  :) :)
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 10 Haziran 2010, 11:28:08
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




Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 10 Haziran 2010, 12:35:25
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 10 Haziran 2010, 18:41:39
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 11 Haziran 2010, 13:22:25
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 11 Haziran 2010, 15:24:27
Evet okuma ve yazma farklı. DS1307 I2C çalışıyordu yanlış hatırlamıyorsam.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 11 Haziran 2010, 15:25:38
Tamam Hocam teşekkür ederim
Başlık: Ynt: kuluçka makinası yardım
Gönderen: maviveda - 12 Haziran 2010, 16:45:29
sayın hocam son hex dosyasını burda paylaşmanız mümkünmü acaba teşekkürler.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 13 Haziran 2010, 07:54:24
Hocam derken kimi kast ettiniz bilmiyorum zira burada herkes hoca artık.Her ne kadar ben düzeltmiş olsamda proje sahibi Mucit23 dür. Onun buraya koyması gerekir.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 14 Haziran 2010, 10:33:05
Tabiki vereyim herkes fayadalansın istediği gibi değişiklikler yapsın
Buyrun  ;)
http://www.dosya.tc/dWfjrH/son_al__ma.rar.html
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 14 Haziran 2010, 17:13:54
Merhaba arkadaşlar merhaba Ete hocam :)
arkadaşlar bugün devreyle ilgilenirken aklıma şöyle bişey geldi bende hemen işe koyuldum
bundan önceki son verdiğim programda günde 8 defa çevrim işlemi yapılıyordu yani 3 saatte bir kez çevirici motoru çalıştırıyordu.Benim aklıma gelen şey ise menüde motorun 1 gündeki çevirme saatleri yerine motorun kaç saatte bir çevirileceğini ayarlamak.Şimdi sizlere soruyorum;sizce eğer motor 3 saatte bir dönecekse tekrardan motorun dönüş saatlerini ayarlamak mantıklımı sizce bence çok gereksiz.Ben bunu düşünerek programda motor kaç saatte bir çevirilsin diye bir menü ekledim. Bu menü ile motorun kaç saatte bir çevirileceği 1 ile 4 arasında ayarlanıyor örnek vereyi
diyelimki 1 e ayarladık
bu sefer motor saat başı çalışır.
ikiye ayarlarsak motorun dönüş süreleri 00,02,04,06,08,10,12,14,16,18,20,22 motoru bu saatlerde çalışır
eğer 3 e ayarlarsak bu sefer 3 saatte bir çeviriliyor aynısı 4 içinde geçerli
bu şekilde program çok daha sadecelşti programın boyutu küçülmüş oldu.Eskidem program 6583kword iken şimdi 5426kword oldu.
Ben sadece en yüksek verim için çalışıyorum internette bu iş için tüm bilgileri okudum ve olabildiğince programa yansıtmaya çalışıyorum.Umarım faydalı olurum
Tüm dosyaları ekledim pcb,isis,hex vs
http://www.dosya.tc/PajxVh/sonhali.rar.html
Başlık: Ynt: kuluçka makinası yardım
Gönderen: maviveda - 15 Haziran 2010, 18:15:25
Sayın Mucit23 suan en son hex dosyasını indirip denedim gözlemledigim bazı sorunları aktarmak istiyorum cevirme motorunu 8 sn cevir e ayarladım suan 8 dakika gecti hala role kapanmamakta. ekrandaki saatin saniyeleri 7 sn de bir ekrana yansıyor birde sıcaklık kısmındaki dereceleri hassas olamsı acısından bucuklu yapabilirmiyiz? örnegin 37.2 veya 37.8 vs. teşekkürederim....
Başlık: Ynt: kuluçka makinası yardım
Gönderen: maviveda - 16 Haziran 2010, 21:48:09
sayın mucit23 devreyi 40 saatten fazla çalıştırdım ve gözlemledıgım bı hatayı daha aktarmak ısterım bunca saat calışmıs olmasına ragmen displaydeki 1. gün 2.güne geçmedi... projenız gerckten guzel devre tasarımında hata bulunmuyor sadece bi kac programsal hata mevcut bızımle paylaştıgınız için teşekkürederiz...
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 18 Haziran 2010, 16:53:09
Merhabalar
3-4 gündür benim projeyle uğraşıyordum kaç gündür internete giremediğim için mesajlarınızı görmemişim;
Benim devrede hiç bir sorun kalmadı herşey tıkır tıkır çalışıyor sorun mutlaka sizde olmalı mümkünse pici tekrardan programlayıp deneyiniz bu dediklerinizin olmaması lazım
Başlık: Ynt: kuluçka makinası yardım
Gönderen: maviveda - 18 Haziran 2010, 23:45:38
sayın mucit23 devreyi herşeyiyle kontrol ettim tasarımda sıkıntı yok pic i belki 10 defa tekrar tekrar programladım ama sonuc aynı son dosya hatalı olabilirmi acaba?yada tekrar yükleyebilirmisin son iki dosyayıda yükledim degişmedi.teşekkürler
Başlık: Ynt: kuluçka makinası yardım
Gönderen: maviveda - 21 Haziran 2010, 01:27:28
evet devreyi başından sonuna kadar inceledim pic i 3 4 defa farklı programlayıcılarda  programladım sonuc aynı...
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 21 Haziran 2010, 12:46:42
http://www.upload.gen.tr/d.php/s12/djjepbwv/son_hali.rar.html (http://www.upload.gen.tr/d.php/s12/djjepbwv/son_hali.rar.html)
buyur emin olmak için tekrardan bu kodlarla pici programladım bu kodlarla devrem çalışıyor bi değişiklik olmadı sorun sende olmalı
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 21 Haziran 2010, 13:16:28
Benzer sorunları forum sitelerinde yüzlerce defa gördüm. Hemen hepsinin sebebi aşağıdakilerden birisi çıktı.
1. Piyasadaki DS1302 nin kristalleri her nedense son derece kalitesiz. En azından bizim piyasadakiler sanki bozuk mallar toplanmışta bizim piyasada satılıyormuş gibi. EN iyisi çalışan bir küçük saat devresinden bir kristal sökmek olur. Sorun genelde kaliteli bir kristal ile çözülmektedir.
Bazı bozuk kristaller bir müddet çalışmakta sonra arada bir durmakta ve sonra yeniden çalışmaktadır. Kristal frekanslarıda çok bozuk olduğundan saatelerde çok fazla ileri geri çalışma durumu meydana gelmektedir.
2. Nadir de olsa DS1302 ninde bozuk çıktığı görülmüştür. Değiştiridikten sonra devre normal çalışmaya başlamıştır.
3. DS1302 nin devreye yerleştirilmesi ve özllikle kristal bağlantısının etrafının GND ile nasıl çevrileceği data sheet de gösterilmiştir. Bu tedbirin alınmadığı PCB lerde devre genelde sorunlu çalışmaktadır. Hiç sorun çıkmadığı devrelerde olmuştur ama çoğunluk sorunlu çalışmaktadır. Bu nedenle data sheet de kristal bağlantısının nasıl yapılması gerektiği gösterilmiştir.

DS1302 nin pil bağlantı ayağı vardır. Prensip olarak pil yada besleme bacaklarındaki voltajların hangisi büyük ise DS1302 otomatik olarak oradan besler kendisini. Data sheet den hangi bacağın pil hangi bacağın +5V beslemesi olduğuna bakılmalı ve PCB de buna dikkat edilmelidir.


Ete

Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 21 Haziran 2010, 16:48:15
hocam Verdiğiniz bilgiler için teşekkür ederim maviveda arkadaş için kesinlikle faydalı olacaktır
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 02 Temmuz 2010, 18:15:39
Sayın Ete abi yorumlarınız okudum ve devreyi yaptım ares cizimindeki eleman degerleri isisinkinden farklı arese göre yapılan devrede maviveda arkadasın dedigi gibi hatalar görülmekte.direnc degerlerini isis cizimindeki gibi takıldıgında devree normal calışıyor fakat tek sorunu var nem kontrolü yapmıyor.örnegin sınırı 60 yaptıgımızda devre röleyi 61 de çekiyor NEM kısmı tam ters olmuş sizce asm kodunda nerenın degişmesi gerekir.
2.sorum projenın sahibi mucit23 bey'e öncelikle paylaşımlarınızdan dolayı forum olarak teşekkürederiz.Devrenin sorunsuz çalıştıgını idda etmişsiniz ama dedigim gibi nem kısmı kontrol etmiyor girilen degerin üstündeyken röle çekiyor.bütün eleman ları ve baglantı şekillerini birebir inceledim direnc degerleri dışındaki bütün herşey dogru,ben yazılımdan başka bir sorun göremedim.peki siz ne dersiniz bu duruma sorun bizdemi yoksa sizin  verdiginiz hex temi? teşekürederim.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 02 Temmuz 2010, 19:13:27
Alfa,

Programa baktım. Okunan Ortam Nemi , Set edilen değerden büyük ise röle çekiyor. Program bu şekilde ayarlanmış.
Bunun neresi ters?
Bunun anlamı şudur. Ortam nemi yüksek ise röle çekecek ve buna bağlı bir fan vs. çalışıp içerideki havayı dışarı atarak yerine taze hava alacak ve böylece nem oranını düşürecektir. Yada buna benzer bir şey olmalı.

Senin mantığında ise Ortam nemi (okunan nem) set edilenden düşük ise röle çeksin ve ortama nem versin şeklinde olmalı. Ben bu konunun uzmanı değilim . İşi iyi bilen birisi cevaplarsa hangisinin daha doğru olduğunu belirtirse program ona göre değiştirilebilir.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 03 Temmuz 2010, 10:46:47
Sayın Ete abi ben istiyorum ki nem set edilen degerde sabit kalsın.60 girildiyse  59 röle çeksin 60 oldugunda  bıraksın.yani deger 60 da sabit tutulsun.bu şekilde bi düzenleme yapılabilirmi.birde rica etsem gün kısmına bi bakarmısın bi anormallik varmı.bazen gün degişmiyor ve lcd de karakterlerde bozulma oluyor.Saygılar.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 05 Temmuz 2010, 15:57:28
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.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 05 Temmuz 2010, 17:01:30
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 05 Temmuz 2010, 21:20:46
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.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 07 Temmuz 2010, 13:50:20
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 .
Başlık: Ynt: kuluçka makinası yardım
Gönderen: askuzucu - 07 Temmuz 2010, 13:54:57
@alfa;
rölenin normal-açık ve normal kapalı olmak üzere iki kontağı vardır.Biri olmuyorsa diğerini kullanabilirsin.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 08 Temmuz 2010, 01:25:19
Mucit 23 öyle diyosunda röle degerin üstüne cıkınca calışıyor. ısı ayarı gibi yapman mümkün değilmi?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: mustafacan - 08 Temmuz 2010, 16:27:44
yani ısı ayarında toleransmı olmasını istiyorsunuz?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 08 Temmuz 2010, 19:13:09
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.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 12 Temmuz 2010, 11:57:01
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ı
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 12 Temmuz 2010, 12:44:03
yorulmaz06 devreyi kaç volt la besliyorsun?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 12 Temmuz 2010, 12:55:55
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ş
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 12 Temmuz 2010, 14:52:39
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...
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 13 Temmuz 2010, 19:04:31
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: 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.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 13 Temmuz 2010, 19:55:49
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
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 14 Temmuz 2010, 12:37:46
Sevgili hocalarım
Çok çok az program bilgimle kodları incelerken ETE hocamın derslerinde rutubet hesap kısmının
RUTHESAP:
           ISI=ISI1*10+ISI2
           p1=(26542-(54722**ham+ham))**ham-40     
           P2=655+(HAM*5)+(HAM**15917)      
           P3=(P2**(ISI*10+2480))-(P2**2730)+P1   ' kompanse edilmiş değer
           U1=p3/10:U2=p3//10
           IF ham>3710 THEN
              u1=0:U2=0
              GOTO SENSORYOK
           ENDIF 
           return
olduğunu gördüm
kuluçka makinasının programında ise
RUTHESAP:
              'ISI=ISI1*10+ISI2
              p1=(26542-(54722**ham+ham))**ham-25     
              P2=655+(HAM*5)+(HAM**15917)      
              P3=(P2**(ISI*10+2480))-(P2**2730)+P1   
              U1=p3/10:U2=p3//10
           IF ham>3710 THEN
              U1=0:U2=0
        ENDIF 
return
böyle
yani birinde p1=(26542-(54722**ham+ham))**ham-25
diğerinde    p1=(26542-(54722**ham+ham))**ham-40
benim nemi çok yüksek görmem bununla alakalı olabilirmi?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 14 Temmuz 2010, 13:27:20
Bende ankaradayım ama bende %68 gösteriyor sensor olarak ne kullandın?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 14 Temmuz 2010, 13:44:34
sht71 kullandım
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 14 Temmuz 2010, 15:10:17
ben sht11 kullandım biraz pahalı ama iyi iş görüyor.datasheet ine bakmak lazım ikisi farklı oalbilir
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 14 Temmuz 2010, 15:19:10
SHT11 ile SHT71 arasında yalnızca kılıf farkı var. Belki braz hassasiyet farkıda vardır ama her ikisinide kullandım. Ölçüm değerlerinde bir farklılık görmedim.
Hatta aynı ande iki sensörüde bir birinin aynısı iki devrede aynı anda kullandım. Her ikiside aynı değeri gösterdi.
Bu nedenle bu gibi şeylere kafanızı takmayın.

BU sensörü ilk kullandığımda internette bile henüz örnek ne devre nede hesaplama şekli ile ilgili bir bilgi var idi.
Oturdum excelde tamamen integer hesaplama yöntemi ile bir hesaplama şekli oluşturdum. Araya 32 bit hesaplama mantığınıda ilave ederek sonuca ulaştım. Ancak sonradan İnternette daha kısa yazılan ama üretilen kod açısından farkı olmayan örnekler çıktı.
Bunlarla benim hesaplama yöntemimide karşılaştırdım. Sonuç yine aynı idi.
Sonuç olarak verdiğim formüller doğrudur. Bazıları isis simulasyonunda çıkan farklı değerler nedeni ile benim kodları değiştirip kendilerine göre uyduruyorlar. Bu yanlış. İsteyen istediğini yapabilir tabiiki ama kodlarla oynamak yalnızca sonucun yanlış çıkmasını sağlar bunuda belirtmek isterim.

Bakın ilk kullandığım hesaplama şekli aşağıdadır.

ISIHESAP:  T1=(-4000+HAM)/100
           T2=((-4000+HAM)//100)/10
           RETURN
'-------------------------RUTUBET HESAP ALT PROGRAMI----------------------------
RUTHESAP:  P1=28*HAM
           P2=div32 100
           P1=P2*HAM
           P2=div32 1000
           P1=405*HAM
           P3=div32 100
           C=(P3-P2-400)
           B=(1000+(8*HAM))/10
           ISI=T1*10+T2
           If ISI>250 then
             P1=((ISI-250)*B)
             P2=div32 1000
             RUT=C+P2
           else
             P1=((250-ISI)*B)
             P2=div32 1000
             RUT=C-P2
           endif
           U1=RUT/100:U2=(RUT//100)/10
           RETURN
Bütün değişkenler word tipindedir.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 14 Temmuz 2010, 15:24:16
İyi hoş konuşmussunda ete abi şimdi benim aklıma kurt düştü bu son verilen hex te senin orjinal formulünmü var değiştirilmiş mi,eger degiştirildiyse senin izninle bizde ona göre düzenleme yapalım...senin kullandıgın formul nedir acaba?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 14 Temmuz 2010, 15:30:11
Yukarıda verilmiş benim kullandığım. Derslerde de açıklamış idim zaten.
Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 14 Temmuz 2010, 16:50:52
bilgiler için teşekkürler ETE hocam
p1=(26542-(54722**ham+ham))**ham-25  bu satırı sizin örneklerinizde olduğu gibi ham-40 olarak değiştirip deniyeceğim
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 14 Temmuz 2010, 17:31:38
peki ete abi bu derecenin set ayarında ben dereceyi ondalıklı olarak ayarlamak istiyorum onun için ne gibi bir yol izlemeliyim programda?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ete - 14 Temmuz 2010, 19:12:11
Bu iş için tek bir sistem var. Elde edilen sonuç 10 katı olarak hesaplanmalıdır.
Örnek vermek gerekir ise 35 derece için 350 bulunmalı bunu 10 ile mod alma işlemi yaparsanız size ondalık kısmını verecektir.
350/10 size tam sayı kısmını 350//10 ise size ondalıklı kısmı verecektir.
Programda bulunan değerlerin 10 ile çarpılmış halini hesapla ve sonucu 10 ile mod alma işlemine sok olsun bitsin.

Ete
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 14 Temmuz 2010, 21:25:32
teşekkürederim ete abi.valla sen olmasan bizim gibi bu işe yeni başlayanlar ne yapacaktı ALLAH razı olsun.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: picker - 19 Temmuz 2010, 23:05:34
Konuyu okudum da... 14 yıl önce sadece rölelerle kurduğum mantık kapılarıyla bir kuluçka makinası yapmıştım.

Bir mantık hatasına değinmek istiyorum. Demişsiniz ki 4 saatte bir motorun dönmesi için saatleri giriyoruz sisteme.

Buna ne gerek var?

Ben bıldırcın için yapmıştım, saatte bir 45 derece sağa, 45 derece sola döndürmek gerekiyordu. Ve dönüş saatlerini girmeye filan da gerek yoktu. Sizin için de gerek yok.

Bence tmr0 ile 1/128 prescaler kullanın. Bu prescaler ayarında tmr0 1 taşması 4MHz kristal ile 32,768 milisaniyede gerçekleşir.
Her taşmada sayac değişkenini 1 arttırın. Sayac değişkeni 30 olduğunda 1 saniye (çok yaklaşık olarak) geçmiş olacaktır.
sayac değişkenini bu noktada sıfırlayın.
saniye diye bir değişkeni sayacın her 30 olmasında 1 arttırın. saniye 60 olunca da dakika değişkeni için aynı işlemi yapın.
4 saat 240 dakika yapar. dakika değişkeninin her 240 olması halinde motoru çalıştırın.

Sağ ve sol limitler için limit switc koyun. Motor çalıştığında mesela sağ limit swice basılı olacaktır. O zaman sola basana kadar çalışmaya devam ettirin. Bu arada sayacı da durdurun.

Yani motorun çalışma saatlerini programlanabilir yapmakla uğraşmayın. Hiç bir kuluçka makinası bunu yapmaz. Eğer bunu siparişle yapıyorsanız, alıcınız ya işten anlamıyor, ya da işi yokuşa sürüyor.

Çok çok programlanabilir olan motorun kaç saatte bir döneceği olabilir. Saat kaçlarda döneceği değil...

Bu özelliği siz ekliyorsanız, hiç kimse saat kaçlarda tepsiyi bükeceği programlanabiliyor diye bir kuluçka makinasını almaz.

Kuluçka makinası, konulan 100 döllü yumurtanın kaçının yumurtadan çıktığı, yumurtadan çıkanların kaçının sağa sola düşmeden sağ kalabildiği gibi performanslarla alınır.

100 döllü yumurtadan daha fazla verim elde etmek için de içerideki ısı ve nem ölçümü ve dağılımının çok iyi olması gerekir. Bunun için 2 veya 3'er sensör ile kontrol yapmaya enerji harcamanız çok daha verimli bir cihaz yapmanızı sağlayacaktır.

Selam ve saygılar


Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 20 Temmuz 2010, 15:51:30
Arkadaşlar kusura bakmayın bu aralar çok fazla projeyle uğraştığım için konuyla fazla ilgilenemedim.
Hayırlısıyla benim ilk civcivler çıktı hepsi çok sağlıklılar aslında bi iki tane fire verdi onun sebebinide buldum ben hata yapmıştım ısı sensörünü makinanın üst taraflarına koymuştum bu yüzden ortam sıcaklığı biraz yüksek görünüyor sensör 38 derece gösterirken yumurtalıkların seviyesindeki sıcaklık 36,5 - 37 derece civarındaydı bence enbüyük sorun buydu gerçi şimdi projemi dahada geliştiriyorum şimdiki projemde iki adet ısı sensörü kullanıyorum bitanesi altta diğeri yani sht 11 üstte olacak set değeri bu iki sensörün ortalama sıcaklığı alınarak çıkan değerle karşılaştırılacak ve iki sensör arasındaki ısı farkı 2 dereceden büyük olunca makinanın yanlarındaki ısı dengeleyici fanlar çalışacak ısı dengelenince yandaki fanlar kapanacak ayrıca devreyle ilgili tüm bilgileri aynı anda görmek için 20x4 lcd ekran kullandım programını bitirdim sayılır 16F877 ağzına kadar doldu neredeyse kristal frekansınıda 20 mhz ye çıkarmayı düşünüyorum Ayrıca ekranda tarih gün gibi bilgilerde görülecek şimdilik düşüncelerim bunlar
Alıntı Yappıcker
AYrıca yanlış hatırlamıyorsam son verdiğim programda ısı ayarlama sistemi senin dediğin gibi yapmıştım sen sadece 1 ile 4 arasında kaç saatte bir girileceğini seçiyorsun okadar gerisini program hallediyor
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 20 Temmuz 2010, 16:18:54
Sayın mucit23 hocam
emek verip yaptıgın projeyi bizlerle paylaştığın için teşekkür ederim. devreyi kurdum çalıştırdım ama nemden verim alamıyorum sürekli çok yüksek gösteriyo. yakınımdaki bir eczanede bulunan digital nem ölçerle karşılaştırdım 30-35 derece fazla gösteriyo makinanın içinde ise çok daha fazla. 140 150 lerde gösteriyo acaba benim sht71 arızalı olabilirmi.
bu  ikinci sht71 ilki 7805 e taktığım soğutucu bacaklarına şase yapınca ekranla birlikte mefta oldu. acaba bu şase sırasında sht ye bağladığımız direncin falan değeri değişmiş olabilirmi. yeni bitane daha sht alayım diyecem ama sht71 45 lira ankarada. sence bu sorun neden kaynaklanıyo olabilir? yardımcı olursan sevinirim.
yeni projeni sabırsızlıkla bekliyorum kolay gelsin
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 20 Temmuz 2010, 16:23:09
projeyi bitirip çalıştırınca paylaşacağım inşaallah sht 11 bende çok düzgün çalışıyor sen sht 71 kulanmışsın arada kılıfharicinde pek fark olduğunu düşünmüyorum ama bende sht 11 sorunsuz çalışıyor ölçümler çok doğru karşılaştırmalar yaptım arada pek fark yok sende istersen biraz karşılaştırmalar yap test et ortam nemi çok yüksek olabilir bilmiyorum bende
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 20 Temmuz 2010, 17:41:24
mucit23 bey yeni projenizi merakla bekliyoruz teşekkürler.size bir sorum olacak saga ve sola cevirme işini nasıl hallettiniz benim bildigim kadarıyla bu devre sadece tek yöne çeviriyor?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: yorulmaz06 - 20 Temmuz 2010, 20:23:10
syn alfa. herkesin sistemi farklı mesela benim motor hep bir yöne dönüyor. ustalarımız daha iyi bilir ama sağa sola dönmeyi şöyle yapabilirsin. devreye bir role daha ekleyip tek saatlerde birinci röle çift saatlerde ikinci röle çektirebilirsin ama 2 saatte bir ayarlarsan hep bir tarafa döner 1 saat veya 3 saatte bir dönsün dersen olur gibi. yinede ustalarımız daha iyi bilir. ben sana kendi sistemimi tarif edeyim. 10 rpm redüktörlü motor aldım 5 kg ya kadar rahat kaldırabiliyo.
(http://img716.imageshack.us/img716/5331/motorc.jpg)
resim çizmeyi pek beceremem kusura bakmayın ama umarım size bir fikir veriri
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 23 Temmuz 2010, 15:50:45
yaptığım sistem çok iyi oldu mekanik olarak çok verimli çalışıyor Yaptığım sitemi kelimelerle anlatamam en iyisi çalışırken bir videosunu çekmek böylesi daha açıklayıcı ve fikir verici olur
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 23 Temmuz 2010, 18:48:09
Bizde merak la bekliyoruz yeni projeni başarılarının devamını dilerim.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 23 Temmuz 2010, 19:03:08
devreni indirdim fakat simulasyonda sorun var lcd de hiç bişey görünmüyor son verdigin kodları derledim gene çalışmadı ama ilginç birşey dikkatimi çekti program f877A ya göre yazılmış simulasyonda kullanılan 18f452 bunlardan hangisini kullanacagız ?
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Evren KILIÇ - 24 Temmuz 2010, 16:08:59
merhaba arkadaşlar ben ete hocanın yapmış oldugu (16F628A)ısı nem kontrol devresini kuluçka makinasına uyarladım ilk yaptıgım devre oldukça kararlı çalışıyor bir çok termometre ile denedim (a class civalı) fakat 2. devremde ilkine göre 0,6 derece fazla öllçüyor bunun kalibrasyonu nasıl yapabilirim bu konuda yardımcı olabilecek birisi varmı

DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 1 'LCD RS bacağı Hangi Bite bağlı ?
define lcd_RWREG    PORTB
define LC_RWBIT     2
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
OPTION_REG.7=1
@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_ON
@ DEVICE pic16F628A, PWRT_ON
@ DEVICE pic16F628A, PROTECT_OFF
@ DEVICE pic16F628A, MCLR_OFF
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
'@ DEVICE pic16F628A,BOD_off
'---------------------------değişkenler------------------------------
    ILK     VAR     BIT
    Y       VAR     BIT
    KONTROL VAR     BYTE    
    DUR     VAR     BYTE       'EN SON SHT SENSÖR OKUMA BÖLÜMÜ 
    ISI1    VAR     BYTE       'BU PROGRAMDA VAR.
    ISI2    VAR     BYTE       'YAPILDI. İYİ ÇALIŞIYOR.
    ALARM1  VAR     BYTE       
    ALARM2  VAR     BYTE       
    U1      VAR     BYTE         
    U2      VAR     BYTE
    C0      VAR     BYTE
    Z       VAR     BYTE
    ALRM    VAR     BYTE
    SEC     VAR     BYTE
    H0      VAR     HAM.BYTE0
    H1      VAR     HAM.BYTE1
    HAM VAR     WORD
    RAW     var     word
    RAI     var     word
    ISI     VAR     WORD
'    RUT     VAR     WORD
    NEM     VAR     WORD
    ALT     VAR     WORD
    P1      VAR     WORD
    P2      VAR     WORD
    P3      VAR     WORD             
    C       VAR     WORD
    B       VAR     WORD
    W       VAR     WORD
    CLK     VAR     PORTA.0
    DTA     VAR     PORTA.1  'PORTA.2 DE ROLE BAĞLI OLACAK
    ISARET  VAR     BIT   'sensor değeri 0 ise artı, 1 ise eksi
    SIGN    VAR     BIT   'alarm ısı isareti 0 ise artı 1 ise eksi
    HATA    var     BIT
    RAW2 VAR WORD  'EK
    NEM2 VAR WORD  'EK

  '-----------------------------B A Ş L A N G I Ç ---------------------------   

    CLEAR:TRISA=%00111000:TRISB=0:CMCON=7:Z=1:low PORTB.2 
'    %00 ÇIKIŞ         
'    %11 GİRİŞ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
    PAUSE 200:ISARET=0
    LCDOUT $FE,$40,$6,$9,$9,$6,$0,$0,$0,$0        'derece işareti dataları   
    LCDOUT $FE,$48,$04,$0e,$0e,$0e,$1f,$04,$04,$0
    LCDOut $FE,1
'    data @$20,"TERMOMET":DATA @$28,"  V.13   "  'PROGRAM ADI VE VER NO
'     GOSUB OKU
'    IF ALT>400 THEN
'       ALT=005:GOSUB ISIYAZ:ENDIF
'    IF NEM>1000 THEN
'       NEM=100:GOSUB NEMYAZ:ENDIF   
    gosub reset :GOSUB T_START:SEC=0
'  ***************************'EK *********************************************** 
    LOW PORTA.6  'NEMLENDİRİCİ
    LOW PORTA.7 'ISITICI
    LOW PORTB.0 'ISI NEM OUT

    ALT=377
    NEM=550
   

     
'-------------------------------------------------------------------------------   
BASLA:  SEC=1-SEC
        IF SEC=0 then ESAS
        KONTROL=%00000011:HAM=0   'SICAKLIK ÖLÇME
        GOSUB OLCUMAL
       'HAM=4000 sıfır dereceye tekabül ediyor, HAM=3000 -10 derece oluyor.
'        ham=7850
        RAI=HAM
          Gosub ISIHESAP:GOSUB EKRAN1
            IF ALRM=1 THEN
              LCDOUT $FE,2,1
            ELSE
              LCDOUT $FE,2," "
            ENDIF
        PAUSE 50
        KONTROL=%00000101:HAM=0 'RUTUBET ÖLÇME
       GOSUB OLCUMAL
     '  ham=710        'HAM=3710 bu değer %100 rutubete eşdeğerdir.
        GOSUB RUTHESAP:GOSUB EKRAN2
       
'--------BU ARAYA ISI VE RUTUBETE BAĞLI KONTROL RUTİNİ YERLEŞTİRİLECEK--------------------

ESAS:     IF PORTA.3=0 THEN           'SELECT TUŞU PORTA.3 DE
             WHILE Z<22
               ILK=0
               GOTO SECIM
             WEND 
           ENDIF   
           
        IF PORTA.5=0 then
            ALRM=1-ALRM:GOSUB DURUM
            WHILE PORTA.5=0
            WEND
        ENDIF
       
       IF PORTA.4=0 then
            ALRM=1-ALRM:GOSUB DURUM
            WHILE PORTA.4=0
            WEND
         ENDIF
'------------------------------------------------------------------------------------------
       GOSUB GERIHESAP
       IF (Y=0) then
       if (RAI=<RAW) THEN   'ISI ayarlanandan düşük ise
       HIGH PORTA.7          'ısı aç
       ELSE                  'değil ise
       LOW PORTA.7            'ısı kapat
        ENDIF
        endif   
                   
       IF NEM>P3 THEN          'nem ayarlanandan düşük ise
       HIGH PORTA.6             'nem aç
       ELSE                     'değil ise
       LOW PORTA.6               'nem kapat
       ENDIF
 
       ATLA:   Z=1
        SLEEP 1
'        GOTO BASLA
         GOTO OUT
  '------------------------------------------------------------------
  '         BENİM İLAVE
  OUT:     
        RAW2=RAW+40        'RAW2 DEGİŞKENİ ISI SET'İN 0,4 DERECE ÜSTÜ
        IF(RAI=>RAW2)THEN 'AYARLANAN ISI SET DEĞERİNİN 0,4 DERECE ÜZERİNDE İSE
        HIGH PORTA.2      'ISI OUT ON
        ELSE              'DEGİL İSE
        LOW PORTA.2       'ISI OUT OFF
        ENDIF
       
        NEM2=NEM+50
        IF P3=>NEM2 THEN  'AYARLANAN NEM SETDEĞERİNİN %10 ÜZERİNDE İSE
        HIGH PORTA.2       'NEM OUT ON
        ENDIF

        IF P3=NEM+1 THEN   'NEM AYARLANAN SET DEGERİNE GELDİ İSE
        LOW PORTA.2         'NEM OUT OFF
        ENDIF
       
        GOTO BASLA
'------------------------------------------------------------------
AC:     PORTA.2=1::Y=1:ALRM=1:PORTA.2=0
ACBIR:
'        LCDOUT $FE,2
'        LCDOUT "   ISI DUSUK   "
        Z=0:ILK=0:PAUSE 100
        RETURN

KAPA:   PORTA.2=0:Y=0:ALRM=0:PORTA.2=1
KAPABIR:
'        LCDOUT $FE,2
'        LCDOUT "  ALARM KAPALI  "
        Z=0:ILK=0:PAUSE 100
        RETURN

DURUM:  IF ALRM=0 THEN
           low PORTA.2
           gosub KAPABIR
        ELSE
           HIGH PORTA.2
           GOSUB ACBIR
        ENDIF
        Z=0       
        RETURN
'---------------------------------------EKRANA YAZ ------------------------------------------------
EKRAN1: LCDOut $FE,2       
        if ISARET=1 THEN
          LCDOut "  ISI :-",DEC2 ISI1 , "," , DEC1 ISI2," ",0,"C ":RETURN 
        endIF
        LCDOut "  ISI : ",DEC2 ISI1 , "," , DEC1 ISI2," ",0,"C ":RETURN
EKRAN2: LCDOut $FE,$C0:
        ALARM1=ALT/10:ALARM2=ALT//10
'        LCDOUT "RAI=",#RAI,"HAM=",#HAM
    LCDOut "  NEM : ",DEC2 U1 , "," , DEC1 U2,"  % "
RETURN
'----------------------------------------------------------------------------------
SECIM:  pause 50:LCDOUT $FE,1     
IKINCI: Z=20
IKIBIR: GOSUB EKRAN3
        IF PORTA.5=0 THEN
           IF SIGN=1 THEN
             alt=alt-1
             IF alt=65535 THEN
                alt=1:SIGN=0
             ENDIF   
             GOTO ARACIK
           ENDIF
        ALT=ALT+1 
        ENDIF
        IF PORTA.4=0 THEN
           IF SIGN=1 THEN
              alt=alt+1:GOTO ARACIK
           ENDIF   
            ALT=ALT-1
          IF ALt=65535 THEN
            SIGN=1
            ALT=1
          ENDIF :ENDIF
ARACIK: GOSUB ISIYAZ:PAUSE 15
        IF PORTA.3=0 THEN
            IF Z=20 THEN IKIBIR
            GOTO NEMALRM:ENDIF
        Z=22:GOTO IKIBIR
       
NEMALRM:
         GOSUB EKRAN4
         IF PORTA.5=0 THEN 
            NEM=NEM+1
            IF NEM=1001 THEN NEM=1000
         GOTO NEMARA
         ENDIF
         IF PORTA.4=0 THEN
            NEM=NEM-1
            IF NEM=65535 THEN NEM=0
         ENDIF
NEMARA:  GOSUB NEMYAZ:PAUSE 25
         IF PORTA.3=0 THEN
            IF Z=22 THEN NEMALRM
         GOTO BASLA:ENDIF
         Z=30:GOTO NEMALRM     

EKRAN3: LCDOUT $FE,$80," ALARM-ISI AYARI"
       
TOP:    LCDOut $FE, $C0
        ALARM1=ALT/10:ALARM2=ALT//10 
        IF SIGN=1 THEN
           LCDOut " ALARM: -",#ALARM1 ,"," , DEC1 ALARM2," ",0,"C "       
           goto TOPCIK
           ENDIF
        LCDOut " ALARM:  ",#ALARM1 ,"," , DEC1 ALARM2," ",0,"C "       
TOPCIK: PAUSE 150
        RETURN 
                 
EKRAN4: LCDOUT $FE,$80," ALARM-NEM AYARI"
        LCDOut $FE, $C0
        ALARM1=NEM/10:ALARM2=NEM//10
        LCDOut " NEMALARM: ",#ALARM1 ,"," , DEC1 ALARM2,"%"
        GOTO TOPCIK
       
       
'------------------------------- İŞLEM START ------------------------------------------------------
T_START:
        OUTPUT DTA:OUTPUT CLK
        HIGH DTA
        LOW CLK
        PAUSE 1
        HIGH CLK
        LOW DTA
        PAUSE 1
        LOW CLK
        PAUSE 1
        HIGH CLK
        PAUSE 1
        HIGH DTA
        LOW CLK
        RETURN

'-----------------------------R E S E T -----------------------------------------------------------
RESET:  OUTPUT DTA:OUTPUT CLK':TRISA.0=0:TRISA.1=0'
        high DTA=1
        FOR W=0 TO 9
        HIGH CLK
        pause 1
        LOW CLK
        Next W
        Return
'-----------------------SENSORE KOMUT GÖNDER -----------------------------------
OLCUMAL: GOSUB T_Start
        SHIFTOUT DTA,CLK,1,[KONTROL]
        INPUT DTA
        PULSOUT CLK,10
        HATA=0
        FOR W=0 to 65500
           IF DTA=0 then CIKIS
        NEXT W
        HATA=1
CIKIS: 
        IF HATA=1 then
         gosub SENSORYOK
       endif
       SHIFTIN DTA,CLK,0,[H1]
       OUTPUT DTA
       LOW DTA
       PULSOUT CLK,10
       INPUT DTA
       SHIFTIN DTA,CLK,0,[H0]
       PULSOUT CLK,10
       RETURN
'----------------------ISI HESAP ALT PROGRAMI-----------------------------------     
ISIHESAP: 
           if ham<4000 then
              ISARET=1 'sıcaklık eksi değerde demek
              ISI1=(4000-HAM)/100 'ısı kalibre
              ISI2=((4000-ham)//100)/10'ısı kalibre 
              goto ISISON
            endif
           ISI1=(HAM-4000)/100 'ısı kalibre
           ISI2=((HAM-4000)//100)/10'ısı kalibre
ISISON:    if HAM>16384 then
             ISI1=0:ISI2=0
           endif 
    RETURN
GERIHESAP:
           IF ISARET=1 THEN
               raw=4000-(ALT*10)
            else
               raw=4000+ALT*10 
           ENDIF
             
             RETURN                   
'-------------------------RUTUBET HESAP ALT PROGRAMI-------------------------------------------------
RUTHESAP: 
           ISI=ISI1*10+ISI2
           p1=(26542-(54722**ham+ham))**ham-40     
           P2=655+(HAM*5)+(HAM**15917)      
           P3=(P2**(ISI+2480))-(P2**2730)+P1   
           U1=p3/10:U2=p3//10
           IF ham>3710 THEN
              u1=0:U2=0
              GOTO SENSORYOK
           ENDIF 
           return       
'---------------------------------------------------------------------------------- 
         
OKU:   
       READ 8,ALT.BYTE0
       READ 9,ALT.BYTE1
       READ 10,SIGN
       READ 15,NEM.BYTE0
       READ 16,NEM.BYTE1
       RETURN
       
ISIYAZ:
       WRITE 8,ALT.BYTE0:PAUSE 10
       WRITE 9,ALT.BYTE1::PAUSE 10
       WRITE 10,SIGN ::PAUSE 10
       RETURN     

NEMYAZ:
       WRITE 15,NEM.BYTE0:PAUSE 10
       WRITE 16,NEM.BYTE1:PAUSE 10
       RETURN 
       
SENSORYOK: LCDOUT $FE,$02,"   SENSOR YOK   "
           LCDOUT $FE,$C0," LUTFEN TAKINIZ " 
           PAUSE 1000               
           RETURN
        END                     
       
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Evren KILIÇ - 24 Temmuz 2010, 18:51:19
arkadaşlar sorun çözüldü ihtiyaç duyabilecek arkadaşlar için kodları aşağıdaki gibi değiştirdim  ete hocanın değine göre bu sensörün hatasından meydana gelebiliyor ama asıl degerin 4000 olması gerekiyormuş
dağişen kodlar :ISIHESAP: 
           if ham<4000 then
              ISARET=1 'sıcaklık eksi değerde demek
              ISI1=(4060-HAM)/100 'ısı kalibre
              ISI2=((4060-ham)//100)/10'ısı kalibre 
              goto ISISON
            endif
           ISI1=(HAM-4060)/100 'ısı kalibre   - 0,6 derece
           ISI2=((HAM-4060)//100)/10'ısı kalibre
ISISON:    if HAM>16384 then
             ISI1=0:ISI2=0
           endif 
    RETURN
GERIHESAP:
           IF ISARET=1 THEN
               raw=4060-(ALT*10)
            else
               raw=4060+ALT*10 
           ENDIF
             
             RETURN                   
 
Başlık: Ynt: kuluçka makinası yardım
Gönderen: samsun33 - 24 Temmuz 2010, 22:36:05
arkadaşlar ben bu makineyi paçalı küçük süs tavuklarını çıkartmak için kullanmak istiyorum.bana bu devrenin en son çalışan halinin isis ve ares çizimleri  parça model listesi ile bas ve hex dosyalarını verebilir misiniz.parçaları il dışından kargo ile spariş edeceğimden dolayı model farkından sorun çıkmasını da istemiyorum.çünkü ideğiştirmek sorun olacak.ayrıca devrenin sürekli güncelleşmesi kafamı karıştırdı en son hali ne oldu.birde ben ares çizimini proteus 7.4 ile de açamadım versiyon eski diyor.hangi versiyonda çizildi.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Alfa - 24 Temmuz 2010, 23:42:58
evrenk devreyi bir koy bakalım.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 21 Kasım 2010, 18:54:05
Alıntı yapılan: samsun33 - 24 Temmuz 2010, 22:36:05
arkadaşlar ben bu makineyi paçalı küçük süs tavuklarını çıkartmak için kullanmak istiyorum.bana bu devrenin en son çalışan halinin isis ve ares çizimleri  parça model listesi ile bas ve hex dosyalarını verebilir misiniz.parçaları il dışından kargo ile spariş edeceğimden dolayı model farkından sorun çıkmasını da istemiyorum.çünkü ideğiştirmek sorun olacak.ayrıca devrenin sürekli güncelleşmesi kafamı karıştırdı en son hali ne oldu.birde ben ares çizimini proteus 7.4 ile de açamadım versiyon eski diyor.hangi versiyonda çizildi.

Buyur arkadaşım Devrenin en son çalışan hali aşağıdaki linktedir .şema ve pcb dosyalarını isis7 ve üstünde açılacak şekilde düzenledim. 7.4 ile açılması gerek.
http://hotfile.com/dl/84037348/8442335/kuluka_son_hali.rar.html (http://hotfile.com/dl/84037348/8442335/kuluka_son_hali.rar.html)
Başlık: Ynt: kuluçka makinası yardım
Gönderen: erhanzeynel - 21 Kasım 2010, 23:58:44
Alıntı yapılan: evrenk - 24 Temmuz 2010, 18:51:19
arkadaşlar sorun çözüldü ihtiyaç duyabilecek arkadaşlar için kodları aşağıdaki gibi değiştirdim  ete hocanın değine göre bu sensörün hatasından meydana gelebiliyor ama asıl degerin 4000 olması gerekiyormuş
dağişen kodlar :ISIHESAP: 
           if ham<4000 then
              ISARET=1 'sıcaklık eksi değerde demek
              ISI1=(4060-HAM)/100 'ısı kalibre
              ISI2=((4060-ham)//100)/10'ısı kalibre 
              goto ISISON
            endif
           ISI1=(HAM-4060)/100 'ısı kalibre   - 0,6 derece
           ISI2=((HAM-4060)//100)/10'ısı kalibre
ISISON:    if HAM>16384 then
             ISI1=0:ISI2=0
           endif 
    RETURN
GERIHESAP:
           IF ISARET=1 THEN
               raw=4060-(ALT*10)
            else
               raw=4060+ALT*10 
           ENDIF
             
             RETURN                   
 

Sayın @everenk programınızda if ile başlayan satırda 4000 kullanmanıza ramen diğer satırlarda 4060 olarak devam etmişsiniz. İlk satırdaki if karşılaştırması ölçülen ısı değerinin + ya da - olduğuna karar verir.

Yani bu hesaplamada 4000 ile başlayan değerler 0 derece orjini olup hepsi eşit olmalı.

Ayrıca SHT datasheetlerini incelediğinizde ölçüm sonuçlarının tam lineer olmadığını, sensörün teknik verilerindeki hassasiyette ölçüm alabilmek için daha karmaşık işlemler yapılması, daha doğrusu ek bir düzeltme hesaplaması yapılması gerektiğini göreceksiniz. Farklı sıcaklıklarda farklı ölçüm hataları gözlemleyebilirsiniz. Bunlar yaklaşık 0.8 derece civarı olacaktır.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: YK44 - 28 Şubat 2011, 22:53:39
arkadaşlar verdiğiniz linkler calışmuyor indiremiyoruz ilgilenirseniz sadece 1-2 kişi değil bu işe gönül veren herkes faydalanır.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: Mucit23 - 28 Şubat 2011, 23:10:07
Buyrun doosyaları tekrar yükledim.
http://hotfile.com/dl/108011897/7d693b1/lk_versiyon.rar.html
Başlık: Ynt: kuluçka makinası yardım
Gönderen: AS1T - 25 Eylül 2014, 12:25:30
Merhabalar. Öncelikle Mucit23 arkadaşım kuluçka sevenlere ön ayak olduğun için teşekkür ederim. Teknik lise elektronik bölümü mezunu olarak ( 8 sene geçti üzerinden ) kendim yapabileceğime inandığım projenizi hayata geçirmek istiyorum. Yaklaşık 2012 temmuz ayında paylasımlarına ulasmıstım fakat biraz ara verdim ve tekrar paylasımlarına ulaştım. Bi kaç tane kuluçka makinam var gayette stabil çalışıyorlar ama kendim full otomatik ve büyük buzdolabından makina yapmayı düşünüyorum. Hazır satılan sistemlerde gün tarih saat sayan gösteren ekranlar olmadıgı için sizin paylaşımlarınızı tekrar buldum. Benim ögrenmek istedigim 4x20 lcd ekran yerine 128x64 veya 240x128 yada en son ihtimal 4x40 lcd ekran kullanabilirmiyiz?

Konunun üzerinden epey bi zaman geçmiş affınıza sıgınarak yorum yazıyorum.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: ECZUGURCUM - 31 Mart 2015, 18:03:54
mrb mucit 23, bi arkadasıma, amcama ve değerli bir hocama lazım olduğu için onlara yardımcı olmak anlamında tamamen karsılıksız(ki ben eczacıyım) bi kuluçka makinesi yapayım dedim,sizin tasarladığınız bu kontrol devresini yaptım sensör olarak sht 11 yerine sht10 kullandım ve sonuçta Ü=03,3  nem%00 bu sorunu ete hocaya da sordum,kendisine sor dedi.sizin yaptığınız örnekte devre gayet ii calısıyor gözüküyor, aynı sorun başka arkadaslarda da olmus programda sorun yok gibi. sizin kendi kullandığınız hex sitedeki ise benim devre neden calısmıyor
Başlık: Ynt: kuluçka makinası yardım
Gönderen: bozoklu01 - 28 Mayıs 2016, 23:55:48
SHT10'un data sheet'ine bakın 11 ile aynımı ? bence değildir . Ekranda gördüğünüz değerler sensörün devre tarafından algılanmadığı anlamına gelir hiç sensör takmasanızda bu değerleri görürsünüz.
Başlık: Ynt: kuluçka makinası yardım
Gönderen: PeAcE41 - 04 Eylül 2017, 09:37:20
Konu eski ama belki elinde @Mucit23 hocanın devresi olanlar yüklerse iyi olacak konudaki hiçbir link çalışmıyor...
Başlık: Ynt: kuluçka makinası yardım
Gönderen: cooldishes - 15 Temmuz 2018, 01:26:05
Peace41 arkadasim mucit23 arkadasin devresi sende varsa yükleyebilir misin kulucka en son halini
Başlık: Ynt: kuluçka makinası yardım
Gönderen: rebeldecazador - 03 Ağustos 2018, 13:30:31
hocam Verdiğiniz bilgiler için teşekkür ederim maviveda arkadaş için kesinlikle faydalı olacaktır










_______________________________________________________________________________________________________
ステッピングモータエンコーダ (https://www.skysmotor.com/category-33-b0-%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80%E3%83%BC.html)|ブラシレスDCモータ (https://www.skysmotor.com/category-37-b0-%E3%83%96%E3%83%A9%E3%82%B7%E3%83%AC%E3%82%B9DC%E3%83%A2%E3%83%BC%E3%82%BF-BLDC-.html)