veri gönderimiyle ilgili bir soru

Başlatan veli dayı, 09 Ekim 2012, 10:16:40

veli dayı

arkadaşlar 16f628a ile diğer 16f628a yı haberleştirdim.vericiden ver=88 bilgisini gönderdim.alıcı da al=88 Bilgisi belirdi ve ledi yaktı.buraya kadar sorun yok fakat sonra alıcıdan al=10 yaptım yani vericiden gelen 88 bilgisini iptal edip alıcının kendi içinde al=10 değerini atamak istedim fakat olmuyor bir türlü al degeri sürekli 88 de kalıyor bunu değiştirebiliyormuyuz.yapmaya çalıştığım özetle  vericiden alıcıya bilgi giderse led yansın gitmesse sönsün istiyorum ama yapamadım yardım edermisin.

ete

Sorun elbette programda kullandığın mantıkta ama her nedense buraya bir şey koymamışsın incelememiz için.
Bu durumda sorun sanal olarak havada kalmış cevabınıda sanal olarak alacaksın.

Bu gibi durumlarda ledi yaktıracak 88 bilgisini bir kere yollaman ve veriyi yolladıktan sonra Veri=0 demen gerekir.
Muhtemelen veri değerini değiştirmediğin için verici sürekli oalrak 88 bilgisini yolluyor ve alıcıda sen veri=0 desende o yeniden 88 bilgisini aldığı için ledi yanık tutuyordur.

Alıcıda da benzer şekilde ledi yaktıktan sonra veri=0 demen yeterli olacaktır.
Ledin sönmesi için gereken emri bir başka veri değeri ile belirterek onuda ledin söneceği zaman alıcıya yollaman yada led yalnızca belirli sabit bir süre yanacak ise okadarlık yakıp ledi söndürmen ve veri=0 demen yeterlidir.

Ete


veli dayı

ETE hocam yamaya çalıştığım bir antilost devresi devre şöyle çalışacak picden veri gönderen verici çantada olacak bu sürekli veri gönderecek.veri gönderdiği müddetçe alıcı alarmı açmayacak.alıcıda kişinin kendi üzerinde olacak.ne zaman çantayı bir yerde unuttu.bir başka deyişle alıcı vericiden sinyal almayacak mesafede uzaklaştı işte ozaman alıcının alrmı ötsün istiyorum.simüle etmek için iki adet pic devresi koydum iletişim yollarınada bir adet buton koydum.butonun teması engelleyecek pozisyona gelmesi alıcının vericinin kapasama alanından çıktığını gösterecek.özetle bu devre iletim hattındaki butonu kapatınca led yanacak iletim hattını açıncada sönecek.ama bir türlü beceremedim.
   ipucu yada bir fikir verebilirmisiniz

ete

Sistemde bir verici birde alıcı olacak.
Verici sürekli olarak (her 500 ms de bir olması daha uygun. ALıcı ve verici pil ile çalışması gerekiyor sanırım.
Peş peşe veri yollarsan pil dayandırmazsın.
Hadi pil konusunu göz ardı edelim şimdilik.
Verici sürekli olarak 88 bilgisi yollasın.
Alıcı ise sürekli olarak veri alma konumunda olsun.
Alıcının mutlaka USART kesmesi kullanması gerekir yoksa sürekli yanlış alarm duyarsın.
ALıcı sürekli olarak 88 bilgisini alacak ve bir zamanlayıcı başlatacak. Diyelimki verici her 500 ms de bir veri yolluyor.
O halde alıcı en azından 1-2 sn içinde mutlaka veri almalıdır dememiz gerekir. O halde mantığımız şu olabilir.
Alıcı 88 Verisini aldı ve hemen sayıcıyı başlattı. Sayıcı word cinsinden olsun ve diyelimki 2 sn içinde 20.000'e kadar saydı.
Ohalde sayıcı 20000 değerini aşarsa ve 88 verisi gelmez ise Alarm=1 olacaktır.
Sayıcı sayarken veri=88 olarak gelirse sayac sıfırlanacaktır.  Sayıcı değerini ben rast gele söyledim. Toleransı biraz daha geniş tutabilir yada kısabilirsin.
KOlay bir iş.
Ama hemen belirteyim bu gibi sistemler veri alışverişi ile değil transreceiverlerin RSSI (Alma duyarlılık seviye çıkışı) ile yapılmaktadır. Bu bir analog çıkıştır. Verici ve alıcı aynı ortamda yakındalar ise RSSI çıkışı en yüksek seviyededir.
Aralarındaki mesafa diyelimki 10 m ye çıkarsa RSSI seviyesi çıkışını ölçersin ve sistemini bu mesafeye göre kurarsın.
RSSI çıkışını bir ADC pinine girer ve okursun. Okunan değeri not edersin. Diyelimkli 600 değeri okundu. O halde sürekli okuma yaptığın durumda RSSI seviyesi 600 ün altına düşerse verici ile alıcı bir birinden 10 m denfazla uzaklaşmış demektir. O halde alarmı çalıştırayım dersin olur biter. Bu hem daha kolay hemde daha emniyetli bir sistemdir.
RSSI çıkışı olan Transceiverleri incele. Mesela bir tanesi UDEA nın UTRC10-M modülüdür.

Ete


veli dayı

Ete hocam usart kesmesi hakkında en ufak bir fikrim bile yoktu sizin öneriniz üzerine iki gün form form dolaştım.Bulabildiklerimle ekte gönderdiğim devreyi yaptım çalıştırdım.Fakat devre bir süre istediğim gibi çalıştıktan sonra hata veriyor.watcdogla ilgili ama ne olduğunu anlayamadım.

    bu sorunu aşabilirsem sizin dediğiniz gibi vericiyi ara ara aktif ederek veri gönderip alıcıdada  for next döngüsü kurup belli zaman gecikmesi yapacam ama öncelikle yukarıda anlattığım sorunu bir aşmam gerekecek sizce ben nerede hata yapıyor olabilirim.

veli dayı

rssı özelliğini de araştırdım hocam ondada sinyalin geliş gücünü ölçüyoruz ya...sinyalin gücünü etkileyen başka faktörlerde varmış örneğin antenlerin birbirini görme mesafesi ve açısı bu durumda yine pürüzler çıkabilir diye düşünüyorum.ben yine usart kesmesiyle yapabilirsem daha iyi olacak.yardımcı olursanız sevinirim.

ete

Bu forumda aradığaın her türlü bilgi mevcut. Daha nasıl yardımcı olabilirimki? Direk kodlarımı yazayım?
Aşağıdaki linkte yapmış olduğum örneği incele.

http://etepic.com/index.php?topic=62.0

Ete

veli dayı

Hocam elinize sağlık güzel devre yapmışınız simülasyonda çalıştırdım.fakat sizin yazdığınız programları kendime uyarladığım zaman olmuyor yine watc dog reset atıyor diye bir uyarı veriyor.neyse sağlık olsun yine de çok çok teşekkürler.sizide rahatsız ettik kusura kalma!

veli dayı

hocam bence simülasyonda hata var ben bunu board da bir deneyeyim bir de öyle bakayım en iyisi

Powered by EzPortal