Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

röle zamanlama problemi

Başlatan ipek, 13 Temmuz 2009, 14:51:13

ipek

aynı anda 3 röleye kumanda edecek bir şey tasarlamaya çalıştım.
sonuçta devre çalıştı ama istediğim gibi değil doğal olarak bir işlemi bitirdikten sonra diğer işleme başlıyor fakat ben aynı anda uyum içinde başlasınlar istiyorum izafi olarak röleler 30saniye 60 saniye ve 90 saniye
açık kalıyorlar aynı süre'de kapalı kalıyorlar yani ilkel flip flop gibi düşünebiliriz.

http://rapidshare.com/files/255306728/ete.rar.html
[code]@ device pic12F675, XT_OSC, wdt_off, pwrt_on, protect_off

basla:

  high porta.0
  pause 500 'buraya yazdi?in deger kadar yanik kalir ;buray? 30sn yan 30san sön
  low porta.0
  pause 500  'buraya yazdigin deger kadar sönük kalir
     
  high porta.1
  pause 1000 'buraya yazdi?in deger kadar yanik kalir ;buray? 60sn yan 60san sön
  low porta.1
  pause 1000  'buraya yazdigin deger kadar sönük kalir

 
  high porta.2
  pause 2000 'buraya yazdi?in deger kadar yanik kalir ;buray? 90sn yan 90san sön
  low porta.2
  pause 2000  'buraya yazdigin deger kadar sönük kalir
 
  goto basla
 
  end
[code]

Saygılarımla..

Logan

ipek, istediğiniz bu tarz bir şey mi?

basla:

       HIGH PORTA.0  :  HIGH PORTA.1  :  HIGH PORTA.2
       PAUSE 30      :  LOW PORTA.0
       PAUSE 30      :  LOW PORTA.1
       PAUSE 30      :  LOW PORTA.2
       GOTO basla
İmza.

gladi

PORTA.0=0:PORTA.1=0:PORTA.2=0
BASLA :

A=0

FOR  I=1 TO 2

A=A+1

HIGH PORTA.0
PAUSE 500
LOW PORTA.0
PAUSE 500
TOGGLE  PORTA.1
IF A=2 THEN TOGGLE  PORTA.2
NEXT
GOTO BASLA
END


bole bişemi
misafir olan kimse, beraberce getiremediği birşeye kalbini bağlamaz.

ipek

dostlar ilginize teşekkürler .
verdiğiniz kod parcalarını çalıştıramadım. derleyecim pbp250

daha basite indirgeyim 3 adet çıkış portum var birinci portum ledi 30 saniye yakıyor 30 saniye sönük kalıyor. ikinci portum ledi 60saniye yakıyor 60 saniye sönük kalıyor üçüncü portum ledi 90 saniye yakıyor 90 saniye sönük kalıyor bu döngü böyle devam ediyor.
sorun yaptığım yada bulduğum dosyalar istediğim gibi çalışmıyorlar önce 30 saniye lik işlemi bitirip sonra 60saniyelik işlemi bitirip en son 90 saniyelik işlemi bitirip tekrar başa dönüp döngüye devam ediyorlar.
bana lazım olan bu timerlerin bir sıra halinde değilde bağımsız olarak 30,60,90 timer'i aynı anda çalışsınlar.

yada bir dip switch ile 30sn,60sn,90sn açık kapalı gibi bu'da olabilir

saygılarımla iyi tatiller
ETE hoca ortalarda yok galiba???

muhittin_kaplan

TMR  zamanlayıcılarını Kullanmanı Tavsiye Ederim

gladi

PORTA.0=0:PORTA.1=0:PORTA.2=0
BASLA :

A=0

FOR I=1 TO 2

A=A+1
FOR Z=1 TO 30
HIGH PORTA.0
PAUSE 1000
NEXT Z
FOR T=1 TO 30
LOW PORTA.0
PAUSE 1000
NEXT T
TOGGLE PORTA.1
IF A=2 THEN TOGGLE PORTA.2
NEXT I
GOTO BASLA
END


30 , 60 ,90  olması lazım ...denemedim (akşam deniyim )  yazılımla buna benzer  olur ... bilmiorum kodlamada bir yeri atladımmı , bu şekil ile belki bir iki oynama ile bu tutması lazım ... eger bu olmuyorsa ben bu işi bırakayım ... yada 3 çıkışlı pwm senin işini görür  ...


EDİT : çalıştı .. ben tabi 30 saniye yerine 3 saniye ayarladım .. çalışıyor ...
misafir olan kimse, beraberce getiremediği birşeye kalbini bağlamaz.

ipek

gladi sağolasın basic'te herhalde 3'cü denemem

mcs ve pbpro 250 var ete hocanın yazdıklarını kusursuz derliyorum
üzerinde dilediğim gibi oynuyabiliyorum fakat ilgi ve zaman ayırarak yazdıklarınızı bir türlü derliyemedim a declare edilmedi port a bulunamadı
gibi bir çok hata veriyor basic elim alışsın diye uğraşayım dedim fakat şimdiden sıkıldım basic bana göre değilmiş.tekrar tekrar teşekkür ederim ben bunu asemblerde yazayım bir saatte hallederim .uğraşmanıza gerek yok saygılar dilerim....

gladi

tam netten çıkıyordum ... 3 dediğim 3 saniye olarak derlemiştim bu alttaki tam senin istedigin gibi ...

belki yardımcı olur

16f84 e uyarladım

; PicBasic Pro Compiler 2.46, (c) 1998, 2005 microEngineering Labs, Inc. All Rights Reserved.  
PM_USED         EQU   1

   INCLUDE   "16F84A.INC"


; Define statements.
#define      OSC       10

RAM_START             EQU   0000Ch
RAM_END               EQU   0004Fh
RAM_BANKS             EQU   00001h
BANK0_START           EQU   0000Ch
BANK0_END             EQU   0004Fh
EEPROM_START          EQU   02100h
EEPROM_END            EQU   0213Fh

R0                    EQU   RAM_START + 000h
R1                    EQU   RAM_START + 002h
R2                    EQU   RAM_START + 004h
R3                    EQU   RAM_START + 006h
R4                    EQU   RAM_START + 008h
R5                    EQU   RAM_START + 00Ah
R6                    EQU   RAM_START + 00Ch
R7                    EQU   RAM_START + 00Eh
R8                    EQU   RAM_START + 010h
FLAGS                 EQU   RAM_START + 012h
GOP                   EQU   RAM_START + 013h
RM1                   EQU   RAM_START + 014h
RM2                   EQU   RAM_START + 015h
RR1                   EQU   RAM_START + 016h
RR2                   EQU   RAM_START + 017h
_A                     EQU   RAM_START + 018h
_I                     EQU   RAM_START + 019h
_T                     EQU   RAM_START + 01Ah
_Z                     EQU   RAM_START + 01Bh
_PORTL                 EQU    PORTB
_PORTH                 EQU    PORTA
_TRISL                 EQU    TRISB
_TRISH                 EQU    TRISA
#define _PORTA_0             PORTA, 000h
#define _PORTA_1             PORTA, 001h
#define _PORTA_2             PORTA, 002h
   INCLUDE   "PROJE1A.MAC"
   INCLUDE   "PBPPIC14.LIB"

   MOVE?CB   000h, TRISA
   MOVE?CT   000h, _PORTA_0
   MOVE?CT   000h, _PORTA_1
   MOVE?CT   000h, _PORTA_2

   LABEL?L   _BASLA   
   MOVE?CB   000h, _A
   MOVE?CB   001h, _I
   LABEL?L   L00001   
   CMPGT?BCL   _I, 002h, L00002
   ADD?BCB   _A, 001h, _A
   MOVE?CB   001h, _Z
   LABEL?L   L00003   
   CMPGT?BCL   _Z, 01Eh, L00004
   HIGH?T   _PORTA_0
   PAUSE?C   003E8h
   NEXT?BCL   _Z, 001h, L00003
   LABEL?L   L00004   
   MOVE?CB   001h, _T
   LABEL?L   L00005   
   CMPGT?BCL   _T, 01Eh, L00006
   LOW?T   _PORTA_0
   PAUSE?C   003E8h
   NEXT?BCL   _T, 001h, L00005
   LABEL?L   L00006   
   TOGGLE?T   _PORTA_1
   CMPNE?BCL   _A, 002h, L00007
   TOGGLE?T   _PORTA_2
   LABEL?L   L00007   
   NEXT?BCL   _I, 001h, L00001
   LABEL?L   L00002   
   GOTO?L   _BASLA
   END?   

   END


pbp nin yanında verdiği bonus ... 30 60 90 ... belki yardımcı olur ...







TRISA=%00000        'A portu Çıkış olarak ayarlandı
DEFINE OSC 10
I VAR BYTE
Z VAR BYTE
T VAR BYTE
A VAR BYTE


PORTA.0=0:PORTA.1=0:PORTA.2=0
BASLA :

A=0

FOR I=1 TO 2

A=A+1
FOR Z=1 TO 30
HIGH PORTA.0
PAUSE 1000
NEXT Z
FOR T=1 TO 30
LOW PORTA.0
PAUSE 1000
NEXT T
TOGGLE PORTA.1
IF A=2 THEN TOGGLE PORTA.2
NEXT I
GOTO BASLA
END


başka yapacagım bir şey yok ...  :cry:

herkeze iyi akşamlar
misafir olan kimse, beraberce getiremediği birşeye kalbini bağlamaz.

ipek

gladi hocam klavyene sağlık buradan kopyala yapıştır yaptığım için araya garip karakterler girmiş. sonuçta yazılımın çalıştı hata bende imiş.
628 ve 10mhz bana lazım olan 12f675 ve dahili osc 4mhz .bunun için kodu 12f serisine uyarladım çıkışlarım gp2,gp4,ve gp5
timer'lerle ve delay'lar ile oynayarak ilk 30 ve 60 stabile yakın yakaladım
fakat 90'lık kısmı 120 lerde bunun delay'ını oynarsam aşağı bozuluyor.
hani ATA'larımız demiş ya aşağı sakal yukarı bıyık misali yazılımda hiçbir hata bulamadım proteus'mu üzüyor beni anlayamadım Sabah ezanı'nı huşu içinde dinledim pes........!

not yardımların için ayrıca teşekkür ederim...

@ DEVICE pic12F675                      'islemci                                
@ DEVICE pic12F675, WDT_ON              'Watch Dog timer açik 
@ DEVICE pic12F675, PWRT_ON             'Power on timer açik 
@ DEVICE pic12F675, PROTECT_OFF         'Kod koruma kapali 
@ DEVICE pic12F675, MCLR_off            'MCLR pini kullanilMIYOR. 
@ DEVICE pic12F675, INTRC_OSC_NOCLKOUT  'Dahili osilatör 




TRISIO=%001011   ' portlar Çikis olarak ayarlandi 
DEFINE OSC 4 

ANSEL=0         'analog iptal
CMCON=7         'comparator iptal
  
I VAR BYTE 
Z VAR BYTE 
T VAR BYTE 
A VAR BYTE 


GPIO.2=0:
GPIO.4=0:
GPIO.5=0: 

BASLA : 

A=0 

FOR I=0 TO 2 

A=A+1 
FOR Z=1 TO 25
HIGH GPIO.2 
PAUSE 1000 
NEXT Z 
FOR T=1 TO 25
LOW GPIO.2 
PAUSE 1000 
NEXT T 
TOGGLE GPIO.4
IF A=2 THEN TOGGLE GPIO.5 
NEXT I 
GOTO BASLA 
END