kuluçka makinası yardım

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

Alfa

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?

yorulmaz06

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.

resim çizmeyi pek beceremem kusura bakmayın ama umarım size bir fikir veriri

Mucit23

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

Alfa

Bizde merak la bekliyoruz yeni projeni başarılarının devamını dilerim.

Alfa

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 ?

Evren KILIÇ

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                     
       
[email]evren1623@hotmail.com[/email]

Evren KILIÇ

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                   
 
[email]evren1623@hotmail.com[/email]

samsun33

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.

Alfa

evrenk devreyi bir koy bakalım.

Mucit23

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

erhanzeynel

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.

YK44

#86
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.

Mucit23


AS1T

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.

ECZUGURCUM

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