Belirli sayı ve süredeki kare dalgayı yakalama hakkında yardım..

Başlatan eln07, 26 Ağustos 2022, 13:51:04

eln07

Merhaba Arkadaşlar benim bir sorum olacak.

Telefon hatındaki 430 Hz lik bir kapandı sinyali var bunu LM567 ile tone decoder yapıp yakaladım.

Bu sinyali LM567 in çıkışından transistör ile ttl hale getirdim picin portA.4 ayağına verdim.

şimdi
normal konuşma sırasında 430hz lik insan sesleri de var ama kapandı sinyali gibi sabit ve kararlı değil.
- benim bu sesler dışında bu sinyali yakalayabilme ihtimalim varmı.?
- bu sinyal toplamda 10 adet geliyor ve yaklaşık 420ms açık 420ms kapalı olarak.

bunun başka bir yöntemi varmıdır yada bu konu hakkında bilgisi olan varsa ve bir yardım ederse çok sevinirim.
çok teşekkürler şimdiden.

alisumer

süresi ve sayısı belli şartların var zor olmasa gerek harici kesme olan bir bacaktan işi daha kolay yaparsın ama şu entegrenin bilgi kağıdından hiç birşey anlamadım tüm sinyalleri mi çeviriyor sadece senin istediklerini mi  dışa aktarıyor eğer sadece 430 h z yi çıkışa veriyor ise hen yüksek puls hem düşük puls  sayman gerek yeni nesillerde hangi konumda olduğunu işaretleyen bayraklar var şu an adını hatırlayamadım datasından bakınız

if say =20 then ; 10 yüksek 10 düşük sinyal toplamı
goto kapat 
else
....
KESME:
bayrak kontrol ; kesmenin yüksekmi düşük mü olduğunu anla
PULSIN PORTA.4,1,WD 
if WD > 410 and WD < 430 then
Say = say+1
else 
say = 0
endif
goto CIK
DUSUK:
PULSIN PORTA.4,0,WD 
Say = say+1
....
....
CIK:
retfie

eksiği yanlışı ile yukardakine benzer mantıkta bir kod iş görür sanki
Hep meraktan

Serk@n

Alıntı yapılan: eln07 - 26 Ağustos 2022, 13:51:04Merhaba Arkadaşlar benim bir sorum olacak.

Telefon hatındaki 430 Hz lik bir kapandı sinyali var bunu LM567 ile tone decoder yapıp yakaladım.

Bu sinyali LM567 in çıkışından transistör ile ttl hale getirdim picin portA.4 ayağına verdim.

şimdi
normal konuşma sırasında 430hz lik insan sesleri de var ama kapandı sinyali gibi sabit ve kararlı değil.
- benim bu sesler dışında bu sinyali yakalayabilme ihtimalim varmı.?
- bu sinyal toplamda 10 adet geliyor ve yaklaşık 420ms açık 420ms kapalı olarak.

bunun başka bir yöntemi varmıdır yada bu konu hakkında bilgisi olan varsa ve bir yardım ederse çok sevinirim.
çok teşekkürler şimdiden.


420 ms. açık-kapalı bulunmasından bir sonuca ulaşılabilir, ses frekansından ayırt edilebilir diye düşünüyorum.

Fakat 430 Hz. bilgisini telekom teyit ediyor mu? Genelde çift frekansları kullanıyorlar ki ses ile karışmasın. Bu bilgiyi tekrar kontrol edebilir misin?

Sonrasında sana bu frekansı tespit için başka bir yöntem anlatabilirim.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

eln07

Merhaba
Cevap için teşekkür ederim .
Soruna gelince entegre notch filtre gibi çalışmıyor band pass olarak çalışıyor bu da 430hz +- 60hz gibi bir değere kadar indirebildim kondansatorleri değiştirerek.
Oda 490hz ve 370hz arası calisiyor ama kondansatorleri değiştirip o farkı daha aşağıya çekmek istiyorum.

Telekom değil de birkaç firma ile görüştüm santraller,abone tarafi değil de santral tarafı kapatınca bu 430 hz lik 9 10 adet sinyali veriyor. Benim uygulama yapacağım santralde bu özellik var .

Interup kullanımına gelice ben daha önce interup hiç kullanmadım.
Birde bu tasarımda pic sadece bu tonu bekliyor olacak o yüzden interup yerine daha geniş rahat rahat pici bu sinyali sayabilecek şekilde yazmak istiyorum.

Her türlü fikre de açığım.

İnterup kullanmayı da denemek istiyorum yani bir başlangıç olsun.
 
Buradaki amaç abone telefonu açık bıraksa dahi hattı otomotik kapatmak.

Telefon mekanik switcli bir telefon değil manyetik switch var.
Ahize yerine konulmasa dahi telefon bir sonraki görüşmeye hazir hale gelicek şekilde bir yazılım hazırlamam lazım.

Teşekkürler.

Serk@n

Bu işlemi ya sinyalin açık-kapalı kalma sürelerini tespit ederek yada goertzel algoritması ile yapabilirsiniz.

Sinyali bir osiloskop ile inceleme imkânınız var mı?
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

eln07

merhaba scobum yok ama bir arkadaşıma ses dosyasını gönderip dijital scopta analiz ederek bu frekans ve süre bilgisine ulaştık.
Kullanacağım dailer ın bağlanacağı santralin kapatma tonunu ekte atabilirsem atıcam ton bu.
Bu eki görüntüleyemezsiniz.

Serk@n

Alıntı yapılan: eln07 - 06 Ekim 2022, 19:16:41Kullanacağım dailer ın bağlanacağı santralin kapatma tonunu ekte atabilirsem atıcam ton bu.
Bu eki görüntüleyemezsiniz.

Bu cümleyi tam anlayamadım.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

eln07

yani arama modülünü kullanacağım santral kapattığın da verdiği ton u kaydedip lm567 yi bu ton ile test ettim.
o santralin "kapattım" tonu bu.

Serk@n

Tamam anladım. Arama modülünüz nasıl bir şey? Hazır bir devre mi yoksa analog çıkıştan mı sağlıyorsunuz.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Serk@n

Eğer analog bir çıkışınız varsa istediğiniz frekansta sinüs dalga (görünümü sinüse en yakın) nasıl ses üreteceğinizi hesaplayabilirim.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

eln07

Merhaba analog çıkışım şöyle ;
TEA1062 ile yapılmış bir telefon gibi düşünün pic yardımı ile KS58015 entegresi dtmf üretip arama yapıyor ve bu arama işlemini normal santrale bağlı bir hat yada telekom a ait bir hat üzerinden yapabiliyor burada tea1062 alma ve gönderme seslerinin aktarılması görevi için kullanıldı.
şimdi bu 430hz sinyal sadece santrale ait olduğu için kapatma olayının algılanmasında bir tone decoder lazım oldu bende lm567 yi bu iş için kullandım yani bu tonu lm567 ile algılayıp ttl olarak pic in a.4 nolu ayağına verdim normalde 0 ton geldiğinde 1 olacak şekilde devre güzel çalışıyor.

ben bu yazılımda algoritma kuramadım.bu ton toplamda 10 tane 1(H) 10 tanede 0(L) olarak santral tarafından üretiliyor.
sıkıntım bu.
pılsin komutumu kullansam daha sağlıklı olur.
timer kesmesimi
yoksa while wend döngülerimi kala kaldım.


sistemdeki dez avantaj şu konuşma yani insan seslerinin arasında 430 - 500 hz çok fazla var ama bu tonun uzunluğu ve kararlılığı kadar değil.
Aslında manchester kodu ile ilgilenen arkadaşlar bu işi rahat çözer gibi geliyor çünkü veriyi 1 0 olarak alınca 0101010101010101 olarak geliyor .
sıkıntım bu..
teşekkürler ederim ilgin için.

başını ağrıttığım için de özür dilerim .
 

Serk@n

Est. rica ederim. Telefon hattı ile yapılan devreler benim de ilgimi çok çekiyor.

Maalesef işin ar-ge kısmı çok emek istiyor.

430 hz.i var iken 1, yokken 0 sinyalini alıyorsunuz. Ama insan sesi de bu aralığın içinde olduğu için bu dijital veri karışıyor.

Bu karışmanın sonunda ne olabilir? Sizin 1 verinizin süresi uzayabilir yada 0 olan yerler 1 verisine dönüşebilir.

Ama hâlâ elimizde net olan birşeyler var. 1 verisinin süresi kısalmıyor. Ayrıca 0 bölümü tamamen 1 e dönüşse bile 10 kere tekrar eden sinyal, bunun sürekli olmasını engelliyor.

Bunu deneme-yanılma ile ar-ge çalışması ile tecrübe etmek gerekir. Belki de 3 kere ardarda en az ..... süreli gelen 1 sinyali sizin için fazlasıyla yeterli olur.

Santralin zaten bunu 10 kere tekrar etmesinin sebebi de budur. Yanılma payını azaltmak...

Lojik 1 sinyalinin süresini ölçme işlemini, süreyi ölçen hazır komutlarla veya sinyal görüldüğü gibi başlayan sayaç oluşturmakla yapabilirsiniz.

Ama herşeyden evvel bu kontrolleri sürekli yapacak bir timera ihtiyacınız var. Çok kısa zaman aralıklarıyla programdan bağımsız olarak algoritmanız timer komutlarının bulunduğu bölgeye gidecek, burada sinyalinize bakacak, sinyal var-yok ve ne zaman başladı-bitti kayıtlarını hemen yapıp oradan ayrılacak ve sinyal varsa esas işlemini ana programda orada kaydedilen verilerle yapacak.

İyi çalışmalar.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Serk@n

#12
Şunu da özellikle vurgulamak istiyorum:

Timerda sadece hızlı kayıt işlemleri yapabilirsiniz. Orada vakit alacak işlemler yapılmaz. Vakit alacak işlemler ana yazılımda yapılır.

Program Timerdan hemen işini halledip çıkması gerekir. Orada ne kadar oyalanırsa diğer ana programdaki işlemler aşırı yavaşlayabilir.

Mesela 8 kHz.'lik bir timerda 125 usn süreniz var.

Bu durumda diyelim ki 70 usn harcarsanız program işleminizin yarısından fazlasını sizin timerınızda harcayacak demektir.

Hatta 125 usn geçerse programınız timerda hapsolur. Ana programa geçmeye fırsat kalmadan tekrar timera girer.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

eln07

yanıt için çok teşşekürler.
başlarda yazmamış olabilirim ama cihazın ana döngüye geri dönmesine gerek yok tek işi güçü bu sinyali bekleyip hat rölesini serbest bırakmak olacak.
dediğin gibi ar-ge yapacağız artık .
herşey için çok teşekkür ediyorum.
allah razı olsun.


Serk@n

Cümlemizden. Rica ederim. Ben de size algoritma hakkında birşeyler hazırlamıştım. Göndereyim belki işinize yarar.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Powered by EzPortal