ZERO CROSSING KESME PROBLEMİ

Başlatan ~ENES~, 24 Ağustos 2014, 21:50:27

~ENES~

Değerli ete hocam ve arkadaşlar.. yaptığım bir projede ac motor hız kontrolü yapıyorum ... Devre üzerinde 4x7 seg. display var iki tane kesme oluşturdum rb0 da sıfır geçişleri algılayıp motor hızını kontrol ediyorum tmr0 ile de ekrana verileri basıyorum ... Gelelim sorunuma program rb0 kesmesine gidince bekleme süresi var bu bekleme süresi ekranda titreme yapıyor hatta lamba bağladım lamba da bazen anlık olarak birkaç saniyde göz kırpması gibi yanıp sönüyor .. bunu engellemenin yolu var mıdır veya farklı bir yöntem olarak ne önerirsiniz.. Yardımlarınızı bekliyorum hayırlı akşamlar ...(kodlar ektedir)
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

ete

#1
Programını genel anlamda değerlendirdim. Buna göre
Aşağıda yer alan satırların yerine tek bir satır yazabilirsin.

IF ISI=28 THEN SAYAC1=0
IF ISI=26 THEN SAYAC1=0
IF ISI=24 THEN SAYAC1=0
IF ISI=22 THEN SAYAC1=0
IF ISI=20 THEN SAYAC1=0
IF ISI=18 THEN SAYAC1=0
IF ISI=16 THEN SAYAC1=0
IF ISI=14 THEN SAYAC1=0

yerine

IF (ISI>13 and ISI<29) AND (ISI//2=0) THEN SAYAC1=0

Kesme kısmında 
 
KESMERB0:
 
PAUSEUS FANham
LOW TRIYAK
PAUSEUS 10
HIGH TRIYAK

yerine

KESMERB0:
 
PAUSEUS FANham
HIGH TRIYAK
PAUSEUS 50
LOW TRIYAK
yazman gerekiyor.

Kesme kısmındaki yöntemin yanlış. Tamamen ters yazmışsın. Sıfır noktasından geçince triac OFF konumuna otomatik olarak geçer. Kesme oluşur oluşmaz sen DIM süresi kadar bekler sonra triac'ı ateşlersin yaklaşık 10-100 us bekleyip Triac gate voltajını kesersin. Ancak Triac kesime gitmez ancak ve ancak sıfır noktasından geçerken triac otomatik kesime gider. Bu durumda sen ne yapmış oluyorsun?
Kesme oluşunca Dim süresi kadar bekliyor ve sonra LOW TRIAC deyip triac gate voltajını kesiyorsun. Gate voltajı sürekli açık olduğu için sıfır noktasından sonra triac yeniden ateşleniyor dim süresi kadar bekliyor ve sonra gate voltajını kesiyorsun ama 10us bekleyip yeniden gate voltajını açıyorsun. Bu durumda triac tamamen ters çalışmış oluyor. Halbuki doğrusu, sıfır noktasında triac kesime gidecek o noktada gate voltajı da LOW da olacak ki sıfırdan kurtulunca yeniden ateşlenmesin. Dim süresi kadar beklenecek ve sonra triac ateşlenecek.
Açıkladığım şekilde düzeltmeni yap ve dene bakalım. Yinede titreme olacağını tahmin ediyorum. Zira TMR0 kesmesi diğer kesmeyi az a olsa sekteye uğratacak gibi gözüküyor. Denemesi bedava.

Ete

~ENES~

hocam opto olarak moc3021 kullandım fakat optonun picle sürülen kısmında optonun + ucu beslemeye - ucu pice verilmiş dolayısıyla ters yapmak zorunda kaldım (önce low sonra hıgh ) bu konuda sorun yok tmr0 olmadan dimlemeyi zaten yapabiliyorum.. Sorunum rb0 daki beklme süresinden kaynaklanan ekrandaki titremeyi nasıl önlerim titreme bekleme süresi 8500 us olunca haliyle cok daha fazla oluyor bu sorunu nasıl çözerim ... Mesela ekranı farklı bir şekilde sürsem veya zero crosing kısmını farklı bir şekilde yapabilir miyiz ? Hatta ekranı tek 74hc595 ile sürsem acaba titreme olurmu yine ?
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

ete

Sorularının cevabı ancak deneme yolu ile cevaplanabilir.
Deneyip bakmaktan başka çaren yok gibi gözüküyor.

Ete

~ENES~

Hocam peki display sürmenin farklı bir yolu veya sıfır geçişleri algılamanın farklı bir yöntemi var mıdır bildiğiniz ?
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

ete

Sıfır geçiş algılamanın başka yolu yok. Ancak display sürmeyi illaki kesme kullanarak yapmak zorunda değilsin. Max7219 entegresini kullanırsan daha basit şekilde display sürebilir ve displayin programa olan yükünü kaldırabilirsin.

Ete,

gogoce

Bende tek islemcide bunu yapamadim cift islemci kullandim ete hocamin sayesinde isimi cok kolaylastirdi bir islemci dimleme yaparken digeri sadece analog okuyup displaye basiyor . en azindan havam oldu cift cekirdek diyebiliyorum .
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

~ENES~

Hocam sorunu çözdüm ... bendeki sıkıntı değişkenleri alt programda eproma yazarken (write komutu ) gecikme süresinden kaynaklanıyormuş aslında saçma gibi ama kaldırdım düzeldi eprom için farklı bir mantalite düşünüyorum buda bizlere tecrübe oldu ... ilginiz için teşekkür ederim...
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

Powered by EzPortal