avatar_elektro77

FAZ SIRASI DEDEKTORÜ

Başlatan elektro77, 23 Kasım 2018, 17:18:32

elektro77

#45
Ete hocam bu arada verdiginiz bu devreyi herfazin gerilimini olcmek icin kullandim. Yani bir diyot ve bir sürü direnc kullanmadan.
Fakat gnd leri picin gndsi ile birlestirmeden gerilim olcemiyorum. Ne yapmaliyim.
3 volt trafo kullan demistiniz ama o trafoyu bulamiyorum.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

#46
Zaten o şekilde yapıyorum. Ancak fazların RST - RTS - SRT - STR - TRS - TSR  olma durumu var. Hal böyle olunca işler epeyce karışıyor. Faz eksikliğini kesin timer çalıştırarak bulmak gerekiyor. Onu yaptım. Faz değişikliğini ise çok alternetifleri en azından R yi sabit alarak halletmeye çalışıyorum.
Programı öyle ayarlıyorumki R olarak kabul ettiğim faz kesme yaratırsa bunu 1.ci faz kabul ediyorum (Faz=1 oluyor)
İkinci kesmede ya S fazı yada T fazından gelme ihtimali var. Şayet S fazından geliyorsa FAZ=12 oluyor. Değilse Faz=13 oluyor.
Sonraki kesme mutlaka T fazından gelirse FAZ=123 oluyor bu doğru sıralamayı gösteriyor. Değilse S fazındankesme gelmiş demektir. O zamanda FAZ=132 olması gerekiyor.
Bu şekilde çalışıyor program.
Aşağıda çalışan kodlar mevcut, Dosyalarda ilişiktedir.
Alıntı Yap#CONFIG
  __CONFIG _CP_ALL & _WRT_256 & _CPD_ON & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
#ENDCONFIG 
'-------------------------------------------------------------------------------
define OSC 4
DEFINE LCD_DREG        PORTC    'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT        4        'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG        PORTC    'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT        3        'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG       PORTC    'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT       2        'LCD RS 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

DEFINE LCD_COMMANDUS   2000     'Command delay time in us
DEFINE LCD_DATAUS      50       'Data delay time in us

'-------------------------------------------------------------------------------
TRISA=%00000111
TRISB=%01110000
TRISC=%00000000
portb=0
PORTC=0
'------------------------------------------------------------------
ADCON1=%10001110                '7. bit 1 yapıldı 10 bit sonuç almak için.
INTCON=%11001000                'PORTB değişiklik kesmesi aktif
'T1CON =%00000000                'Bölme oranı 1/1yapılacak
CMCON=7
'-------------------------------------------------------------------------------
symbol faz_R=portB.4
symbol faz_S=portB.5
symbol faz_T=portB.6

FAZ VAR  BYTE 56
SIRA VAR BYTE 57
KONT var byte
TEMP VAR BYTE
SAY VAR BYTE
OLD VAR BYTE
BUL VAR BYTE

W VAR WORD   
Z VAR BIT
ILK VAR BIT
'---------------------------------------------------------------
LCDOUT $FE,1
PAUSE 250
LCDOUT $FE,$80,"LUTFEN  BEKLEYIN"
PAUSE 1000
KONT=2
TEMP=PORTB
ON INTERRUPT GOTO KESME

T1CON=%00000001
       TMR1H=$E4:TMR1L=$C5
  PIR1.0=0
  OLD=123
  SIRA=0
BASLA:
'       IF SIRA=1 THEN
'         LCDOUT $FE,1,"KONT=",DEC KONT
'       ENDIF 
       
       LCDOUT $FE,$C0," FAZ=",DEC FAZ'," KONT=",DEC KONT
       IF FAZ=123 AND OLD=FAZ THEN
      LCDOUT $FE,$80,"FAZ SIRASI:R-S-T"
      OLD=FAZ
      GOSUB DELAY
      ENDIF
          
      IF FAZ=132 AND OLD=123 THEN
         LCDOUT  $FE,$80,"FAZ SIRASI:R-T-S"
         OLD=FAZ
         GOSUB DELAY
       ENDIF
       
       IF PIR1.0=1 THEN
         Z=0:INTCON=0:
         WHILE 1
           IF Z=0 THEN
             LCDOUT $FE,$80,"DIKKAT FAZ EKSIK"
           ELSE
             LCDOUT $FE,$80,REP 32\16   
           ENDIF 
           PAUSE 150
           TOGGLE Z
         WEND         
'         LCDOUT $FE,$C0," FAZ=",DEC FAZ," SAY=",DEC SAY,"  "
       ENDIF

       GOTO BASLA
         
DELAY:
       FOR W=0 TO 1000:NEXT 
       RETURN         
                
      ' R  S  T                R T S     S R T     S T R     T R S     T S R
      ' 1  2  3  1  2  3       132132    213213    231231    312312    321321

DISABLE
KESME:
      SIRA=SIRA+1:IF SIRA=4 then SIRA=0
      IF FAZ_R=1 THEN '1            123 132 321 312 213 231  RST RTS SRT STR TSR TRS
         IF SIRA=0 THEN SIRA=1
'        If kont=3 then BUL=1
'        If kont=2 THEN BUL=3
        KONT=1
      ENDIF
     
      IF FAZ_S=1 THEN  '2
        IF KONT=1 THEN FAZ=12
        IF KONT=3 THEN FAZ=13                 
        KONT=2
      ENDIF 
     
      IF FAZ_t=1 THEN  '3
        IF KONT=2 THEN FAZ=123
        IF KONT=1 THEN FAZ=132                 
        KONT=3
      ENDIF
       
      TMR1H=$E4:TMR1L=$C5

      TEMP=PORTB
      INTCON.0=0     
      RESUME
      ENABLE

Ete


ete

Gerilim ölçerken elbette GND yi birleştirmen gerekir. Aksi halde ADC çalışmaz. Ama sıfır geçiş için GND birleştirmesi gerekmiyor.
GND ler birleşir ise ne gibi bir sonuç doğar açıkçası kestiremiyorum. Sorun olmaz gibi geliyor bana ama birleştirilmemesinden yanayım.
3watt lık küçük trafolar var hangi voltajda bulunuyo rise gerilim bölerek ayarlama yapman gerekir. Örneğin 6V luk tarfo olduğunu iyi biliyorum. DC ye çevirirsen 6V x 1,44=8,64V eder. Bunu 2 direnç ile bölerek 3 küsür volta düşürebilirsin.

Ete

elektro77

Yarin ilk isim denemek olacak hocam. Simdi hastanedeyiz 2 yasinda cocugum var ve ateai 39.5.
Bu arada piyasadaki kizilotesi tum ates olcerlerin cani cehenneme. Doktorlar bile kendi kullandiklari aletin yanilma payinin %40 oldugunu kabul ediyor.
Cani cehenneme
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Hattuşa

Alıntı yapılan: elektro77 - 30 Kasım 2018, 00:02:04
Yarin ilk isim denemek olacak hocam. Simdi hastanedeyiz 2 yasinda cocugum var ve ateai 39.5.
Bu arada piyasadaki kizilotesi tum ates olcerlerin cani cehenneme. Doktorlar bile kendi kullandiklari aletin yanilma payinin %40 oldugunu kabul ediyor.
Cani cehenneme

GEÇMİŞ OLSUN ustam

ete

#50
Geçmiş olsun umarım ciddi bir şey yoktur.
Çocuklar beta mikrobu denilen illetten dolayı havadan nem kapıyorlar. Ateş yükselmesi sıklıkla görülen bir olaydır. Malum kış mevsimindeyiz mevsimsel bir şeydir sanırım.

Sonunda isteiğim şekilde programı çalıştırmayı başardım. Bu iş aslında çok basit görülen ama gerçekte çok zor bir işmiş.
İstediğim şekil ne idi onu anlatayım. Belki daha akılcı öneriler gelir.
Elimizde 3 adet faz var bunlar R-S-T şeklinde sıralanması gerekir normalde. Ama diyelimki sıralamayı T-R-S şeklinde yaptım. Program bunu bana göstermeli veya dizilim yanlış olduğunda bana ikaz vermeli. Aynı şekilde fazın birisi eksik olursa yine bana ikaz vermeli.
Bu işin zorluğu nerede diyeceksiniz. Zorluk şurada, ilk program çalıştığında ilk gelen faz kesme yaratacak ama acaba hangisi olacak bu.? tesadüfen PORTB.5 den gelen ve benim S fazı dediğim pin kesme yarattı bunu ben birinci faz olarakmı değerlendirmeliyim? yoksa bunun yeri ikinci fazdır deyip onu faz-2 ye mi almalıyım. Bu varsayımlar arasında epeyce dolaştım.
Sonunda şöyle olmasına karar verdim. Her şeyden önce benim R diye isimlendirdiğim faz mutlaka PORTB.4 pinine bağlanmalı. S diye isimlendirdiğim PORT.5 pinine ve T diye isimlendirdiğim faz da PORTB.6 pinine bağlanmalıdır.
SIRA isimli bir değişkeni her kesme olduğunda bir artırarak 0-1-2 saydırıyorum ve 3 olunca SIRA=0 diyerek sıfırlıyorum.
Bu şekilde ilk kesme oluştuğunda SIRA=0 olduğundan dolyaı hangi pindenkesme oluşmuş ise onu PHASE[0] değişkenine veriyorum. Dİyelimki PORTB.5 den kesme geldi burası S fazı o halde PHASE[0]="S" oluyor. Ardından gelen kesme PHASE[1] oluyor ve böylece 3 adet fazı değişkenlerine veriyorum. Faz sırası tamamlandığında ekranda bunu gösteriyorum.
Şayet RST sırası bozuk ise program hemen flash yaparak ikaz veriyor. Gerekirse bir buzzer de eklenebilir.
İki kesme arası yaklaşık 3-4 ms lik bir süre alıyor. Komut gecikmelerinden dolayı bu süre biraz daha uzun algılanıyor.
TIMER1 sayacını çalıştırıp TMR1H=$E9:TMR1L=$70  ön yükleme değeri ki bu desimal olarak TMR1=59760 oluyor ve yaklaşık 5,78ms lik bir gecikmeye tekabül ediyor. Her kesme oluştuğunda ön yükleme değerini yenilediğim için TMR1 sayacı hiç bir zaman bayrağı set etmiyor. Ama fazın birisi eksilir ise iki kesme arası uzadığı iiçin TMR1 taşmaya uğruyor ve bayrak kalkıyor. Bunu gören programda anında FAZ EKSIK yada SIRA DEĞİŞİK şeklinde ikaz veriyor. Çünki fazın ekslimesi aynı zamanda sıranında değişmesine sebep oluyor. Zaten fazda eksik olsa sırada yanlış olsa bize ikaz gerekiyor. Böylece sistemi durdurulup gereken düzeltme anında uygulanabilir.
Bu sistem ile çalışan program ve devre ilişiktedir.
Faz eksikliğini denemek için faz girişlerinde yer alan switch lerden birini kaldırmanı yeterli.
Faz sırası hatası için faz girişlerinin yerini değiştirmeniz gerekiyor. Sıralama verdiğim şekilde olur ise zaten skopdan baktığınızda önce sarı hat kesme yaratıyor ardından ikinci sıradaki mavi hat ve ardından da kırmızı hattın kesme yarattığını kolaylıkla görebilirsiniz. Sıralama değişirse bu kesmelerin sırası değişiyor ve programda bunu kolaylıkla anlayabiliyor.
Bu hali ile program kullanılabilir hale gelmiştir. Bir hususa daha dikkat çekmek isterim. Buradaki Tmr1 süresi bu programa göre ayarlanmıştır. Şayet araya komut eklerseniz komut gecikmesinden dolayı süre farkedebilir ve program faz eksikliğini algılamayabilir. Bu durumda Timer1 ön yükleme değerini kısaltarak (yada uzatarak) faz eksiliğinde kesme yaratacak hale getirmelisiniz.

Kolay Gelsin
Ete

elektro77

#51
kızım için teşekkür ederim hocam. şu an hal ateşini düşürmeye çalışıyoruz.
Son şemanın birde fotosunu gönderebilir misiniz.
bende proteus 8.6 var sizin dosyayı açmıyor.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Aynı dosyaya ekledim. Yeniden yüklersen alabilirsin.
Şema aynı zaten yalnızca switch ekledim ve bağlantıları faz sırasına göre yaptım. Bu bağlantı şekli doğru oluyor. Sıralı bağlarsan farklı sıralama ikazı veriyor ki buda programın doğru çalıştığını gösteriyor.

Ete

ete

#53
Eksik olan fazıda ekrana yazdırsak fena olmaz diye düşündüm ve epeyce debelendikten sonra onuda hallettim.
İlişiktedir.
Ete

edit: programda gördüğüm bir hata yı düzelttim yükleyenler yeniden yüklesin.  01-12-2018

elektro77

HOCAM ELLERİNİZ DERT GÖRMESİN.
Ancak bazı sorunlarım var ilki aşağıdaki gibi bir hata alıyorum.
"Simulation is not running in real time due to excessive CPU load."
ve bazen bu ve buna benser  hatalar 2000 i aşıp simülasyonu durduruyor.
Ayrıca simülasyon esnasında fazı kesip tekrar verdikten sonra ekran ilk konumuna dönmüyor. simülasyonu tekrar başlatmak gerekiyor.
birde simülasyon 3 faz simülatöründe fazlar yukarıdan aşağıya S-R-T olarak gidiyor. bu şekilde bağlamadığım sürece program çalışmıyor.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#55
Ekteki dosyada adc eklenmiş yazılımınız var hocam. Voltajları okudum ama sizin kesme bozuldu galiba. bi bakabilir misiniz.
devrenin adc eklenmiş proteus 8.6 dosyasıda mevcut
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

3 adet Fazın kesme ile kontrolü işlemci için ağır bir yük zaten. Birde buna ilave işler eklenince işlemcı hızı yetersiz kalıyor.
Bu nedenle hızı 20 Mhz e çıkarmak daha uygun olacak.
Bu şekilde yapılmış çalışan devre ilişiktedir. Programınıda bu sisteme göre düzenledim.

Bu konuyla ilgili başka bir şey yapmak istemiyorum. Çok vakit alan sürekli uğraş gerektiren bir iş sıkıldım bu konudan artık.

Ete

dedim

eteustam;

Ben bu devreyı yapıcam ama bır kac seyı mrak ettım.simdi kopru dıyotun kaç amper olacagı ve dırenclerın kac watt olacagı onemlımı.optocuplor ne kullanmalıyım.1uf kondansatorun voltajı kaç olmalı.bilgi verirseniz sevinirim.

ete

#58
Köprü diyot 500 ma olabilir.
Dirençlere gelince AC tarafındaki 100K lar en az 1 watt olmalı diğerleri çeyrek watt olabilir.
Bu devre teorik devredir yapmadım ben. Yapınca az çok doğru malzeme ortaya çıkar. Bakarsın çok ısınan direnç var ise bir büyük watt değerini kullanırsın.
Opto olarak ne bulursan işini görür. 4N35- 4N36 gibi şeyler olur.

Ete

dedim

Alıntı yapılan: mehmet - 25 Kasım 2018, 17:55:19Bu şekilde çalışıyor.

DEMISSINIZ ama o kadarda denedım dedıklerınızıde yaptım yıne aynı yıne aynı

Powered by EzPortal