Neden Kararsız ?

Başlatan ByTEK, 08 Ekim 2012, 23:24:00

ByTEK

Arkadaşlar Merhaba;

yapmış olduğum bir devrede hassas devir ölçmeden kabaca devri ölçüp belli aralıklarda ise farklı ledleri yakıyorum. algoritma olarak Timer0 1sn gececek şekilde ayarlı bu esnada rb0 kesmesinden gelen palsleri sayıyorum. devre olarakta pals sinyali optoyu tetikliyor. ondan çıkan sinyal gerilim izleyici opamp üzerinden 12f675'in harici kesmesine gidiyor. devre şuanda gayet iyi çalışıyor ama bazen kararsızlık yapıyor. genele vurunca sorun olmasada arada sırada erken ledi yakıyor ve söndürüyor. mesela saniyede 50 pals geldiğinde yanması gerekirken saniyede 40 geldiğinde arada yanıyor ve pek uzun kalmadan sönüyor.

Bu durumu önleyecek öneriniz nedir ? devre şeması ve yazılımı paylaşamam ticari olarak satmaya başlayacağım.. ama bu durumu çözmem gerekli.

Her türlü fikrinize açığım arkadaşlar..

yazılımdan olup olmadığını anlamak için aynı kodu basicte count komutu ile yazacağım eğer aynısını yaparsa sanırım devrede veya sinyali aldığım yerde sorun var diyeceğim..

Birde bu basicteki count komutunun arka planda çalışma mantığı nedir ? kesme ilemi çalışıyor yoksa başka bir algoritmasımı var ?

pisayisi

Opto dan çıkan sinyal, gerilim izleyici opampt tan değil de bir schmitt trigger üzerinden pice girer se bu hattan pice kuple olacak gürültüye karşı etkili olabilir. gerekirse küçük değerli paralel kapasite ile de Sensor devreden kaynaklanabilecek sorunları önleyebilirsiniz. Yazılım kısmında ise kesme ile pals sayılmakta daha hızlı yöntemi yok zaten, Muhtemelen kararsızlık durumları donanımla ilgilidir...
Murat

ByTEK

#2
ilginiz icin tesekkur ederim..

Sensor devresinde rc devresi var. Schmitt trigger devresi olarak hangisini onerirsiniz? Olabildigince az malzeme kullanmaliyim.. Hem maddi hemde plaket boyutum kucuk olmali. Daha once schmitt trigger kullanmadigim icin soruyorum kusuruma bakmayin..

Kolay gelsin..

mehmet

cd4093 aklıma gelen ilk elemanlardan birisi.

Saygılar...

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

ByTEK

sadece bir schmitt trigger için 4093 kullanmak olmaz diye düşünüyorum. bunun yerine içinde tekli veya ikili olan yada transistörle yapılan devreyi önerebilirmisiniz ?

pisayisi

74hc14 var tabi 6 adet eviren shmitt trigger devresi var içinde, Normalde ikisini kullanmanız gerekecek ardışık olarak böylece evirmeyen ve daha kararlı bir çıkış alabilirsiniz. Tekli olanlar var onsemi firmasının 5 pinli sot kılıf,tr den temini zor fiyatlarda aynı gibi aramaya taramaya deymez.
Murat

ByTEK

transistör ve dirençle yapılan schmitt triger mı yoksa entegre ile yapılanımı sizce daha iyi olur ?

XX_CİHAN_XX

Picin kesme girişinde zaten dahili schimitt trigger mevcut. İkinci bir tane eklemen pek birşeyi değiştirmez.
Devir hızın picin kesmeye vereceği cevap hızından daha hızlı olduğu için sorun yaşıyor olmayasın?
Kesme vektöründe oyalanmadan palsi sayıp hemen çıkman gerekli.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

ByTEK

evet haklı olabilirsiniz. Pic olarak 12F675 kullanmıştım Tmr0 ile yapmıştım ama şimdi tmr1 ile yapacağım. bakalım denemelerden sonra ortaya çıkacak..

XX_CİHAN_XX

Pals sayma girişi olarak GP2 yi kullandıysanız bu pin ST özellikli çalışacaktır. (Diğer pinler TTL yapıda çalışır!)
Bunun yanı sıra yine bu pini T0CKI (Tmr0 clock kaynağı girişi) olarak kullanabilir yada
GP5i T1CKI (Tmr1 clock kaynağı girişi) olarak kullanabilirsiniz. Her durum da bu pinler ST yapıda çalışacaktır.
(Not: GP5 sadece T1CKI girişi olarak kullanıldığı zaman ST yapıda çalışmaktadır)

Pinlerle ilgili tüm detaylar DataSheet 41190C-page 6 da bulunmaktadır.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

ByTEK

#10
evet inceledim. ST yapıda çalışıyor. Bu yüzden Araya 4093 koymak mantıksız olacaktır. onun yerine başka bir yol izlemek gerek. Birde devri hassas olarak ölçmesemde kafidir. önemli olan sadece yaklaşık devri alabilmek. ben yazılımdan şüphe duyuyorum..

mesaj birleştirme:: 10 Ekim 2012, 12:54:04

Aynı görevi yapabilecek pbp ile kod yazdım ve Count komutunu kullandım. O biraz daha kararlı çalışıyor.. Kesme ile yapınca nadirende olsa kararsızlık var. Bu count komutunun algoritması nasıldır arkadaşlar. Kodları basic ile yazmak istemiyorum en azından algoritmasını bilirsem kullandığım dilde yazarım.

M_B

merhaba hocam;
Sorunu  cozebildinizmi ? Merakımdan soruyorum.
Jal'ın yazım formatı hosuma gidiyor ama kullanmıyorum. ( ama jalv2 yi takip ediyorum kendi formunda bile )
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

ByTEK

Algoritmayı değiştirdim. ama henüz deneyemedim. önceki algoritmam şu şekilde çalışıyordu;

1) - TMR0 yaklaşık 1 sn kesme olacak şekilde ayarladım
    - RBO kesmesini aktif ettim ve palsleri saydırdım.

bu şekilde saniyedeki devir sayısını buluyordum. 60 ile çarpıncada direkt d/dk olarak sonuç çıkıyordu. ama bu 60'ar olarak artıyordu. aynı devre için basic dilini kullandım ama onda Count komutunu kullandım ve 1 sn deki palsleri saydım.. düzgün çalıştı ama arada onda da kararsızlıklar oldu.

Şimdi algoritmayı değiştirdim ama henüz deneme şansım olmadı.

şimdiki algoritma ;

1)- RBO dan gelen palsler ile TMR1 kesmesini kullanarak iki pals arasındaki zamanı ölçüyorum. mesela iki pals arası 20ms ise buda 50Hz'e eşit oluyor. 50Hz ise 3000d/dk ya eşit oluyor. böylece formül yazınca devri net olarak alıyorum.

Artık deneyince sonucu yazarım.. ilerleyen günlerde Jal ile 3 farklı yoldan takometre uygulamaları yapıp yayımlamayı düşünüyorum. yapmak isteyenlere örnek olacaktır. Birde ST veya opamp kullanmaktan ziyade opto ile yalıtılmış kare dalgaya çeviren devreyi kullanacam.. deneyince görecez bakalım..