RF haberleşme konusunda yardım lütfen

Başlatan vlkncn, 01 Aralık 2014, 00:50:57

vlkncn

sıcaklık ölçüp bunu kablosuz olarak iletmek için bi proje yapıyorum fakat rf kısmında sorun yaşadım. devreleri rf alıcı verici ile değilde kablo ile bağladığımda hiç bi sorun yok kararlı bir şekilde çalışıyor fakat rf ile bir türlü kararlı şekilde iletim yapamadım. değerler karşı tarafa iletiliyor fakat senkronize ve kararlı bir şekilde değil. mesela bi iletiyorsa 10 saniye sonra bi iletiyor diğer bilgiyi 30 saniye sonra iletiyor. antenlerle oynadığımda veya elimi havada dolastırdığımda anlık olarak o değeri iletiyor, sanırım manyetik alandan etkilenerek. parazit var düşüncesiyle bypass kondansatörü bağladım yine düzelmedi. anten olarak eski radyoların uzayan antenlerini kullanıyorum sorun onda mıdır? fakat bazı yerlerde anten kullanmadan bile iletebileceğini okudum. yazılımda uyandırma sinyalini şifrelemeyi kullanıyorum fakat sorunu bir türlü çözemedim. başka neden olabilir acaba bu sorun?

birde bu konudan bağımsız olarak kullandığım lcdler 16x2 mavi beyaz lcd. Lcd de her karakter için ayrılan bolumlerin pikselleri sürekli beyaz yani tepeden bakınca sadece beyaz kareler var olarak gözüküyor ama lcd ye acılı bakıldığı zaman beyaz arkaplanın içindeki yazılar seçilebiliyo bu sorun nedendir acaba?

ete

#1
Rf modüllerde anten boyu frekansla bağlantılı olarak hesaplanır. Rastgele boy verilemez. 433 mhz de anten boyu 17,3 cm dir. Uzayen anten yerine yalnızca bu boyda tel bağlamanız daha uygun olur.
Gerek alıcıda ve gerekse vericide anten yönü aynı olmalıdır. Biri yatay diğeri dik duramaz. Buna dikkat edin. Modüllerin bir birine çok yakın olmaları da bazen olumsuz etki yaratabilir. Aralarında en az bir kaç metre mesafe olmasına dikkat ediniz.

Lcd de kontrast ayarı sorunu olduğunu düşünüyorum. Lcd nin 3 nolu pini 10 K lık trimpotun orta ucuna verilmeli ve diğer iki uçtan biri +5V ta diğeride GND ye bağlanmalıdır. Bu durumda trimpot ile kontrast ayarı yapıp uygun görüntüyü yakalayabilirsiniz.

Ete

vlkncn

Hocam dediklerinizi uyguladım. Lcd tahmin ettiğiniz gibi kontrast ayarından dolayıymış ve düzeldi. Fakat rf modülde dediğiniz gibi sadece 17 cm lik bir tel kullandım yönleri aynı olacak şekilde ve birbirlerinden 3-4 metre uzaklaştırarak da denedim ama hala kararsız bir şekilde çalışıyor. Veriyi iletmezken elimi verici module dokundurduğumda o anlık veriyi iletiyor yine. Akım veya gerilimin yetersiz kalması gibi nedenden dolayı mı oluyordur acaba diye düşünüp sadece rastgele değişen bir sayıyı gönderecek şekilde ufak bi değişiklik yapıp denedim hiçbir sensör bağlı olmadan ama yine aynı şekilde çalıştı. Bunların dışında sorun ne olabilir acaba?

ete

Alıcı ile verici modül frekans uyumu tam değildir. Bazı modüller 433 Mhz bazıları 433,92Mhz de çalışıyor.
Hatta aralarda da değerler çıkabiliyor. Bunlar çok kısa mesafelerde bir birlerini görebilirler ama uzaklaşınca ancak el yaklaştırınca bir birlerini görebilirler.
Modül uyumunu kontrol ediniz.

Alıcı da USART kesmesi kullanmak bu tür sorunların bir çoğunu ortadan kaldırabilir.
Her zaman söylerim alma verme işlemi senkron işidir. Veren bilgisini verdiğinde Alacak olanın kapıda beklemesi gibi bir olay olması gerekir ki verileni alabilsin. O anda mikrosaniye bazında başka bir iş yapması halinde veri başını kaçırır ve alınması gerekenleri alamaz. Ama usart kesmesi kullanırsanız sizin yerinize işlemci veri kapısnda beklemiş olur ve gelen veri kesinlikle kaçırılmaz. Bence denemeye değer.

Ete

Burak

Alıntı yapılan: vlkncn - 01 Aralık 2014, 00:50:57
sıcaklık ölçüp bunu kablosuz olarak iletmek için bi proje yapıyorum fakat rf kısmında sorun yaşadım. devreleri rf alıcı verici ile değilde kablo ile bağladığımda hiç bi sorun yok kararlı bir şekilde çalışıyor fakat rf ile bir türlü kararlı şekilde iletim yapamadım. değerler karşı tarafa iletiliyor fakat senkronize ve kararlı bir şekilde değil. mesela bi iletiyorsa 10 saniye sonra bi iletiyor diğer bilgiyi 30 saniye sonra iletiyor. antenlerle oynadığımda veya elimi havada dolastırdığımda anlık olarak o değeri iletiyor, sanırım manyetik alandan etkilenerek. parazit var düşüncesiyle bypass kondansatörü bağladım yine düzelmedi. anten olarak eski radyoların uzayan antenlerini kullanıyorum sorun onda mıdır? fakat bazı yerlerde anten kullanmadan bile iletebileceğini okudum. yazılımda uyandırma sinyalini şifrelemeyi kullanıyorum fakat sorunu bir türlü çözemedim. başka neden olabilir acaba bu sorun?

birde bu konudan bağımsız olarak kullandığım lcdler 16x2 mavi beyaz lcd. Lcd de her karakter için ayrılan bolumlerin pikselleri sürekli beyaz yani tepeden bakınca sadece beyaz kareler var olarak gözüküyor ama lcd ye acılı bakıldığı zaman beyaz arkaplanın içindeki yazılar seçilebiliyo bu sorun nedendir acaba?

Merhaba ;

Bi kaç bişi sorucam belki yardımcı olabiliriz ..

1.Modüller markalı modüller mi ? (UDEA'dan mı , eBay'den alınma mı ?)
2.Modüllerin her birini (tx ve rx'i )kaç volttta besliyosun ?
3.Modüllerin bağlı olduğu şey pertinaks mı ? Lehim yapıldı mı ? yoksa deneme board'unda mı çalışıyor ?
4.Kaç Mhz olduklarınıda söylersen daha derinden irdeleyebiliriz..
5.Klasik 433 MHz verici - alıcı modüllerden ise geldiğinde vericinin üzerinde anten varmıydı ? Alıcı modülün ayar bobiniyle hiç oynadın mı ? (bir tornavida ile felan)
6.Şemadan gördüğüm kadarıyla donanımsal USART pinlerini kullanıyorsun yanlış anlamadıysamda C dilinde yazılmış kod , PicBasic temelli olduğumdan pek anlamam , ama Alıcı tarafta USART kesmesini kullandın mı ? Kullandıysan kesme ayarlarını doğru yaptın mı ?
Ω Gens Una Sumus Ω

vlkncn

Merhaba

Moduller udeanın arx34 ve atx34
ikiside regüleli 5v ile besleniyor. Ama bu 5 volt bütün devreyi beslediği için akım düşük olabilir.
şuan bütün devre deneme bordu üzerinde
433 Mhz likler
Vericide anten yoktu.alıcının bobiniylede oynamadım sanırım üzerinde ayar yapılabilcek bir bobinde yok.
evet usart pinlerini kullanıyorum yazılım c tabanlı.ekteki yazılımda kesme yok fakat ete hocamın tavsiyesiyle sonradan alıcı kısma kesmeyi ekledim biraz daha iyileşir gibi oldu ama hala kararlı bir şekilde çalışmıyor.

Burak

Alıntı yapılan: vlkncn - 04 Aralık 2014, 12:39:14
Merhaba

Moduller udeanın arx34 ve atx34
ikiside regüleli 5v ile besleniyor. Ama bu 5 volt bütün devreyi beslediği için akım düşük olabilir.
şuan bütün devre deneme bordu üzerinde
433 Mhz likler
Vericide anten yoktu.alıcının bobiniylede oynamadım sanırım üzerinde ayar yapılabilcek bir bobinde yok.
evet usart pinlerini kullanıyorum yazılım c tabanlı.ekteki yazılımda kesme yok fakat ete hocamın tavsiyesiyle sonradan alıcı kısma kesmeyi ekledim biraz daha iyileşir gibi oldu ama hala kararlı bir şekilde çalışmıyor.

Merhabalar ;

Ben kendi deneyimlerimden yola çıkarak belirtmeliyim ki bu tür RF modüllerde alıcı yanında kesme kullanmak hiç doğru değil , çünkü antene çarpan herhangi bir 430-440 mhz aralığındaki elektromagnetik dalgalar alıcının Data bacağını direkt toggle pozisyonuna geçiriyor ve program kesme bloğundan çıkamıyor , Yani gürültü hassasiyeti yüksek olduklarından , alıcının , modülasyon frekansına uygun olan bir sinyal yakalama durumu çok fazla oluyor , ve bundan mütevellit işlemci kesme bloğundan bir türlü kurtulamıyor . O yüzden kesmeyi unutalım .. Bu sebepten alıcı tarafında yazılımsal seri giriş komutu ile sinyal yakalamaya çalışalım .. (PicBasic'te Serin ve Serin2 olarak geçen komutlar)

Bu yazdığımı yaptıktan sonra , hem alıcı hemde verici yanın baudrate'inin yazılımdan anladığım kadarıyla 600 olduğunu gördüm , bu değeri 1200 ve 2400 olarak değiştirip dene .. Ama bu değerleri denerken kesin haberleşme mesafesi olarak kabul ettiğin bir mesafede denemelerini gerçekleştir .

Elini modüle dokundurduğunda çalışıyor olmasının tek bir manası var , Modül seni kullanarak 50 ohm'luk yüzey empedansını bir şekilde yakalıyor veyahut senin üzerinden EM dalgalarını iletme yolunu takip ediyor . Ben şiddetle antenleri 3mm'lik matkap ucunda helezon olarak ve olabildiğince sık bir şekilde 14 spin olarak sarmanı ve ardından TX'e dikkatli ve parlak bi şekilde lehimlemeni öneririm , bu kablonun kalınlığı metrik olarak 1 veya 1.2 mm arasında olsun .. 


Preamble olarak (TX'den ) ön sinyaller göndermek ÇOK MÜHİM , bu preamble dediğimiz sinyal 8 bitlik 10101010 veya 01010101 şeklinde olan bir sinyaldir alıcı ve verici arasında senkronizasyonu sağlar , dikkat ettiysen bu sinyal high low ttl bir yükten oluşur ve ardı ardına 10101010 yada 01010101 sinyalleri alıcı modülüveri almaya hazırlar .Preamble'ları aslında iletişim methodojisinde preamble ardından ilk olarak gönderilecek sinyalin ilk bitine bakarak seçeriz örneğin ;

Gönderilecek veri : % 11101000 olsun bu durumuda eğer ilk olarak LSB'yi yolluyorsak preamble olarak 01010101  seçilir ama ilk olarak MSB'sini yolluyorsak preamble 10101010 olarak seçilmeli , preamble veri yollanmadan önce 3 veya max 5 kez gönderilebilir , bu sayı baudrate'e göre değişir , Yani hızlı baudrate'te ben olsam 3 yavaş bir baudrate'te 5 kez gönderirim .

Not : ATX ve ARX modüllerin iyi haberleştiği baudrate kaçtır bilmiyorum datasheet'lerini açıp bakmadım ama o tarz modüllerin 2400 ve üzeri baudrate'lerde çok çok iyi çalışmadığını bilmen gerek ..  2400 -1200-600 ideal baudrate oranlarıdır teker teker hem alıcıda hemde vericide aynı olmaları koşuluyla denemek zorundasın.

Bunları denemen çok mühim .. Umarım yardımcı olur . Ardından karşılaşacağın sıkıntılarıda yazarsan sonuca daha hızlı ulaşırız .

İyi çalışmalar

Burak .

Ω Gens Una Sumus Ω

vlkncn

#7
dediklerinizi uyguladım fakat değişen bişey olmadı malesef. ama şöyle bişey farkettim:
alıcı devrede uyarı için ledler var nem değerini arttırıp (alıcıda ledi yakıp uyaracak şekilde) elimle antene dokunup o anlık verinin gitmesini sağladığımda ledin topraklamasını uzun yaptıgım için sanırım led yanıp sönmeye başladı(sürekli yanması gerekirken) ve nem değeri bu uyarı seviyesinde iken (led yanıp sönerken) sorunsuz bir şekilde benim temasıma gerek kalmadan veri iletimi oluyor. nem değeri normale donunce iletim kesiliyor yine benim temasımla anca iletiyor. ledin toprağını kısaltıp ledin yanıp sonmesini giderip(sürekli yandığında) denediğimde iletim yine olmuyor.

yani sonuç olarak alıcıdaki o led yanıp söndüğünde sorunsuz bir şekilde iletim oluyor. sürekli yandığında veya o led yanıp sönerken başka bir led daha yanmaya başlarsa iletim duruyor.

voltaj veya akım değerlerindeki bir sorundan dolayımı oluyor acaba bu? yada o ledin yanıp sönmesi ne kadar etki eder bilmiyorum ama manyetik alanda sürekli değişiklik yaptığı için (benim elimle dokundugumdaki gibi) mi etkileniyordur? voltajla alakalı ise alıcı ve vericiyi ayrı bir regüleli kaynaktan beslesem düzelebilir mi?

ete

Sorunun kaynağı ya modül frekansları az bir şey kayık, yada besleme voltajı parazitli yada akım olarak yetmiyor.
Özellikle beslemeyi değiştirerek besleme konusunu deneyebilirsin elbette.
Ete

ete

Bir yanlışı düzeltmem gerek. Kesme Kullanmak doğru değil demişsin ama bence çok doğru.
Zira kesme sistemi almaya hazır hale getirir anında. Gelen sinyal parazit sinyalide olabilir. Bu yüzden HSERIN komutuna ;
Hserin 5,ATLA,[WAIT("ISARET"),VERI1,VERI2...]
şeklinde bir timeout değeri (en düşük 5 en yüksek 100 gibi bir değer verilebilr) ile zaman dolunca nereye gideceğine dair bir etiket adı koyuyoruz. Böylece gelen parazit ise ISARET alınmayacağı için orada bekleyecek ve 5 ms dolunca ATLA isimli etikete atlayacaktır.
Gelen doğru bilgi ise zaten ISARET i alacak ve ardından gelen verileri alacaktır.
Bütün benzer projelerimi kesme kullanarak yaptım ve hiç sorun yaşamadım. Bende aksine kesme konusunu tavsiye ediyorum.

Ete

Burak

Alıntı yapılan: ete - 04 Aralık 2014, 14:57:03
Bir yanlışı düzeltmem gerek. Kesme Kullanmak doğru değil demişsin ama bence çok doğru.
Zira kesme sistemi almaya hazır hale getirir anında. Gelen sinyal parazit sinyalide olabilir. Bu yüzden HSERIN komutuna ;
Hserin 5,ATLA,[WAIT("ISARET"),VERI1,VERI2...]
şeklinde bir timeout değeri (en düşük 5 en yüksek 100 gibi bir değer verilebilr) ile zaman dolunca nereye gideceğine dair bir etiket adı koyuyoruz. Böylece gelen parazit ise ISARET alınmayacağı için orada bekleyecek ve 5 ms dolunca ATLA isimli etikete atlayacaktır.
Gelen doğru bilgi ise zaten ISARET i alacak ve ardından gelen verileri alacaktır.
Bütün benzer projelerimi kesme kullanarak yaptım ve hiç sorun yaşamadım. Bende aksine kesme konusunu tavsiye ediyorum.

Ete

Merhaba Hocam ;

Herzaman ki gibi sizden geri besleme almak çok güzel ; Sizin bir öğrenciniz olarak başardığım herşeyi size borçlu olduğumu düşünüyorum .. Unutmadan birkez daha çok teşekkürler ...

Konu ile ilgili olarak , RF modüller bile bildiğiniz üzere voltajdan tutunda her türlü iletişim parametresi konusunda seçici olabiliyolar , ben hep çinden gelme ucuz modüller kullanmıştım bugüne dek , bi türlü yıldızım barışmadı hserin ile . Serin2 veya serin komutlarında hex FFFF süresi kadar bekleme yapıyolar max yani dediğiniz gibi hserindeki timeout ayarı yok . Aslında tabii deneyerek sonuca ulaşmak en garantisidir her zaman . Ben Hserinde direkt kablo bağlantısında çok güzel sonuçlar aldım bugüne dek , RF'lerde hep bir problem oldu o yüzden öyle söyledim arkadaşıma ... Ama herzaman ki gibi en iyisini en güzelini siz bilirsiniz .

Bu arada aklıma gelen bir diğer öneri TX girişini 5v değilde 9V olarak denemeniz eğer ki akım yetersizliğinden şikayetçiyseniz çektiği akımı bir ölçüp yazarsanız güzel olur çünkü minimum 5-6 ma arasında olması gerekiyor 5v beslemede . Yanlış hatırlamıyorsam TX'ler 3-12V 'luk beslemeyle çalışabiliyorlar .

Kolay gelsin

Burak
Ω Gens Una Sumus Ω

erdoganacun

ETE  hocam  merhaba.. hocam  p10 panelli  18b20  projem var   bu 18b20  datasını RF  30 metreden  RF  p10 panele Taşımak istiyorum  yardımcı olurmusunuz hocam  16f628  veya  farklı   bir işlemciyle  nasıl yapabilirim

ete

bu iş her iki tarafa birer işlemci koyup verileri RF yolu ile ileterek yapılabilir.
P10 tarafındaki işlemcide Usart kesmesi kullanırsan daha iyi sonuç alırsın.
örnekleri sitede mevcut.
ete

erdoganacun


Powered by EzPortal