16f628 rf haberleşme

Başlatan gnsotomasyon, 22 Mayıs 2019, 16:23:52

gnsotomasyon

merhabalar 2 adet 628 chipi rf haberleştirmek istiyorum. kablolu olarak konuşuyorlar hiç sorun yok ama rf modülleri eklediğimde saçmalıyorlar. alıcıda 2ad led bağladım board üzerine kurulu şuanda. vericiden butona basınca ledler yanıp sönecek. kendi kendine "sanırım parazit yüzünden" vericiden komut vermesem de algılama yapıyor ve ledler yanıp sönüyor. picte sorun olabileceğini düşünüp hiç enerjiyi kesmeden araya kablo bağlantı yapıyorum aynen çalışıyor. rf modülünün data uçlarını ölçü aletiyle ölçtüğümde voltaj alıyorum ama doğru çalıştığını bilemiyorum tabiki ve osilaskopum yok yardımınıza ihtiyacım var uzunca araştırmalar yaptım çeşitli çalışan kodları denedim ama sonuç alamadım.

verici
#include <main6.h>
#use delay (clock=4000000)
#use rs232 (baud=300, xmit=pin_a7, parity=N, stop=1)
#define start pin_b0
#define stop pin_b1


void preamble(){    // (Preamble: donanım senkronizasyonunu sağlamak için.)
    putc(0x55);    
    putc(0x00);
    putc(0xff);
    return;
}

void main()
{


   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı

   set_tris_b(0b00000011);
   output_b(0x00);
   while(TRUE)
   {
      preamble();
      if (input(start))
      {
         output_high(pin_b4);
         putc('A');
      }
      
      if (input(stop))
      {
         output_low(pin_b4);
         putc('B');
      }
      
   }

}


alıcı
#include <main5.h>
#use delay(clock=4000000)
#use rs232 (baud=300, rcv=pin_a7, parity=N, stop=1)
#define start pin_b2
#define stop pin_b3
char a;
void main()
{
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı  
   set_tris_b(0b00000000);
   output_b(0x00);
   output_a(0x00);
   while(TRUE)
   {
         a=getc();               // Gelen bilgiyi a değişkenine ata
      if (a=='A')
      {
      output_high(start);
      output_low(stop);
      }
      if (a=='B')
      {
      output_high(stop);
      output_low(start);   
      } 
   }
}



dosyalar
https://mega.nz/#!KbpXzY7Q!zaW8qHKWVkjdgRTojnjOUOAitMgUSlY_gDAndpiwFZY

alisumer

aynı problem bende de oldu alıcıyı pc ses kartı osiloskopu ile kontrol ettiğimde  benim gönderdiğim sinyaller ile birlikte çok fazlada parazit sşnyal olduğunu gördüm alıcının ayar vidasinı çevirdim belki frekans kaymıştır diye hala bulamadım aynı frekansı  :o önerebileceğim sadece mantık var bende denemedim nrf ile uğraşırım daha iyi o mantık da alıcıyı olabildiğince parazitten yalıtmak yanındaki PC bile kafayı yedirtiyor ama ne yaparsan yap 400 mhz civarı çok yoğun kullanılıyor kaçış yok NRF çilesi sanada uğrayacak
Hep meraktan

fatih88

arkadaşlar pek piyasa iyi alıcı verici bulmak zor güvenilir bildiğim udea nın alıcı vericilerini kullanın ben bir sürü projede kullandım hiç problem cıkarmadı elimde ismi cismi belli olmayan alıcı verici ile bir deneme yaptım çalışmadı hc12 taktım yerine zımba gibi 200m denedim dahada gidilebilir confrig ayarını yaptıgında canavar hemde 100 ch frekans desteği var
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

gnsotomasyon

iki gündür içim içimi yiyor kimse cevap vermiyor diye. şükür dönüş yapanlar oldu.

Alıntı yapılan: alisumer - 23 Mayıs 2019, 16:40:59aynı problem bende de oldu alıcıyı pc ses kartı osiloskopu ile kontrol ettiğimde  benim gönderdiğim sinyaller ile birlikte çok fazlada parazit sşnyal olduğunu gördüm alıcının ayar vidasinı çevirdim belki frekans kaymıştır diye hala bulamadım aynı frekansı  :o önerebileceğim sadece mantık var bende denemedim nrf ile uğraşırım daha iyi o mantık da alıcıyı olabildiğince parazitten yalıtmak yanındaki PC bile kafayı yedirtiyor ama ne yaparsan yap 400 mhz civarı çok yoğun kullanılıyor kaçış yok NRF çilesi sanada uğrayacak

zaten kolay olsaydı bunu herkes yapardı. ama bu şekilde çalışan birçok cihaz var mesela arabalar. hiç karıştırmadan bulabiliyor. önce kodları basic ile yazdım ama kablolu bile istediğim gibi çalışmadı. bende ccs ile yazmayı denedim kabloyla harika çalışıyor. nette çok kaynak aradım bulamadım bütün kaynaklar arduino ile yapılmış. zaten acil durum butonu olarak arduino sipariş ettim 2 3 gün içinde elimde olur diye tahmin ediyorum. bir deneyeyim bakalım çalışacakmı. birde bluetooth ekledim siparişe onlada deneme yapıcam.

Alıntı yapılan: fatih88 - 23 Mayıs 2019, 19:04:27arkadaşlar pek piyasa iyi alıcı verici bulmak zor güvenilir bildiğim udea nın alıcı vericilerini kullanın ben bir sürü projede kullandım hiç problem cıkarmadı elimde ismi cismi belli olmayan alıcı verici ile bir deneme yaptım çalışmadı hc12 taktım yerine zımba gibi 200m denedim dahada gidilebilir confrig ayarını yaptıgında canavar hemde 100 ch frekans desteği var

evet ben en ucuzunu aldım biri 5tl di diğeri 25 tl. dedim ver 5tllik buda aynı işi yapıyor sonuçta. ama yapmıyormuş kodlarda ayrıca şifreleme ya da adresleme yapmak gerekmiyor mu ben yazılıma ekleyemedim ccs c de yeniyim. basic te ekleme basit. onla ilgilide yardımınıza ihtiyacım var. ayrıca udea nın alıcı vericisini araştırıcam. bu alıcı verici neden çalışmıyor oda önemli. adamlar yapıp piyasaya sürmüşlerse en azından iyi kötü gecikmeli falan çalışmalıydı.

alisumer

#4

 :-\
Hep meraktan

ete

Burası genel anlamda bir Basic platformu. Üyelere yardımcı olabilmek adına CCS ve diğer dillerde de yardımcı olmaya çalışıyoruz. Tabiiki bunu bilenler yapıyor. Ben C dilindeki isteklere genelde yanıt vermiyorum çünki çalışmadığım bir derleyici.

RF meselesine gelince, RF modüllere çamur atmayın. Hiç bir derleyicilerede çamur atmayın. Yok o iyidir bu kötüdür demenin bir anlamı yok. Her kese tercihini yapmış sende yapmışsın devamını getir yalnızca.

Daha yeni 5 TL lik modüller ile çok önemli bir proje yapıp teslim ettim. Önemli olan nasıl yaptığınızdır. Derleyici bir aracıdır. Sizin yazdıklarınızı tercüme eder. Demekki doğru yazamıyorsunuz. Sistemin kablo ile çalışıp RF üzerinden çalışmaması demek bir çok konuda eksiğiniz var demektir.
Bir RF alıcı verici sisteminin mantığını önce çözmelisiniz. Verici bir sinyal yada data yollar alıcı bunu önce demodule eder data yı ayıklar ve out ucundan çıkartır.
Bu bir zaman gecikmesidir. Kabloda bu yoktur. Data direk olarak alıcıya iletilmiş olur hemde temiz bir şekilde. Ayrıca haberlemede bir Baud Rate denilen ve birim zamanda yollanan bit sayısı olarak ifade edilebilecek bir parametre vardır. BU paremetre önemlidir. 6 Mhz altında çalışan işlemcilerde 9600 Baud rate kullanmayın. Sağlıklı olarak kullanabileceğiniz Baud rate 4800 dür. Bu hız bile sizin için yeterlidir. İKi hız arasındaki farkı hiç bir zaman anlayamazsınız. Çünki zaten alış veriş sizin algılayamayacağınız bir süre içinde gerçekleşiyor.
TF haberleşmesinde El sıkıma dediğimiz karşılıklı mutabakat önemlidir. Vericinin yolladığı bir bilgiyi alıcının alabilmesi ve alınan verinin değerlendirilebilmesi için ALıcı sistemin data almak için beklemede olması gerekir.
Hem bazı işleri yapıp hemde arada bir veri geliyormu diye bakan programlarda veri haberleşmesi sıkıntılı olur.
Bu nedenle alıcılarda mutlaka RDA kesmesi kullanmaya çalışın. Veri bir bilgi zinciridir. Başı, ortası ve sonu olmalıdır. Bunu bir trene benzetebilirsiniz. Alıcı alma işine, trenin ortasından girerse aldıkları bir işe yaramaz. Bu nedenle daima veri başı alıcıya bildirilmeli (preambl)  alıcıda veri başını bulup peşinden gelenleri alıp değerlendirmelidir.
Söyleyeceklerim bunlar.
Üyelerin aklını karıştıracak yalan yanlış değerlendirmeler yapmayın. Bu gibi durumlarda bundan sonra olursa o mesajları sileceğim.
Kendi işiniz bakın ve sürekli CCS ve Basic mıkayesesi yapmayı bırakın. Ne iile çalışacaksanız onunla çalışın diğerine çamur atmayın. Çünki onuda sizden iyi kullanların olduğunu unutmayın.

Ete

İlyas KAYA

#6
Mesafen çok kısa. Bu mesafe de Rf sinyal henüz yayılım seviyesine ulaşmamış olur. Minimum 1 metreden ve anten takarak deneyin. Antenler ise 17.5 cm 1mm kablo ile bobin yapmadan olmalıdır.

5 TL yada 10 tl farketmez. Sizin veri gönderim şekliniz RF ile göndermeye ve almaya müsaitmi mesele bu.
USART kullanıyorsanız zaten baştan hata yapıyorsunuz demektir. RF usart için çok da uygun değil. Bu nedenle manchester coding RF de ve IR haberleşmede kullanılır. 5TL lik RF modüller ve Manchester coding ile sorunsuz kumanda devreleri yapabilirsiniz. Sorunsuz kumanda devresi yoktur esasen.

RF in kendisi başlı başına sorundur.

Mesafe çok değil ise 863 , 2.4 Ghz yada wifi ile haberleşerek parazitlerin önüne geçebilirsiniz. En sonunda ESP01 ile alıcı verici yapıp piyasaya süreceğim :)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

gnsotomasyon

Alıntı yapılan: alisumer - 24 Mayıs 2019, 01:15:41şifreleme dediğin muhtemelen gnderinin başına eklediğimiz karakterleri diyorsan alıcı tarafında o karakterleri bekliyor pic ama bir türlü parazitten ulaşmıyor es kaza ulaşsada sonrasındaki veri içinde parazit giriyor her türlü curcuna açıkçası bende 5 tl lik alıcı verici kullandım muhtemelen ondandır ama daha önce kullandım deneme kartında 2 kanal adc ile servo kontrol ettim 9600 de parazit yok devreyi hazırladım tırt sebebini bulamadım


hocam burada yazdığınız kodları paylaşırsanız kendi yazdıklarımla karşılaştırabilirim. teşekkür ederim

Alıntı yapılan: ete - 24 Mayıs 2019, 07:41:25Burası genel anlamda bir Basic platformu. Üyelere yardımcı olabilmek adına CCS ve diğer dillerde de yardımcı olmaya çalışıyoruz. Tabiiki bunu bilenler yapıyor. Ben C dilindeki isteklere genelde yanıt vermiyorum çünki çalışmadığım bir derleyici.

RF meselesine gelince, RF modüllere çamur atmayın. Hiç bir derleyicilerede çamur atmayın. Yok o iyidir bu kötüdür demenin bir anlamı yok. Her kese tercihini yapmış sende yapmışsın devamını getir yalnızca.

Daha yeni 5 TL lik modüller ile çok önemli bir proje yapıp teslim ettim. Önemli olan nasıl yaptığınızdır. Derleyici bir aracıdır. Sizin yazdıklarınızı tercüme eder. Demekki doğru yazamıyorsunuz. Sistemin kablo ile çalışıp RF üzerinden çalışmaması demek bir çok konuda eksiğiniz var demektir.
Bir RF alıcı verici sisteminin mantığını önce çözmelisiniz. Verici bir sinyal yada data yollar alıcı bunu önce demodule eder data yı ayıklar ve out ucundan çıkartır.
Bu bir zaman gecikmesidir. Kabloda bu yoktur. Data direk olarak alıcıya iletilmiş olur hemde temiz bir şekilde. Ayrıca haberlemede bir Baud Rate denilen ve birim zamanda yollanan bit sayısı olarak ifade edilebilecek bir parametre vardır. BU paremetre önemlidir. 6 Mhz altında çalışan işlemcilerde 9600 Baud rate kullanmayın. Sağlıklı olarak kullanabileceğiniz Baud rate 4800 dür. Bu hız bile sizin için yeterlidir. İKi hız arasındaki farkı hiç bir zaman anlayamazsınız. Çünki zaten alış veriş sizin algılayamayacağınız bir süre içinde gerçekleşiyor.
TF haberleşmesinde El sıkıma dediğimiz karşılıklı mutabakat önemlidir. Vericinin yolladığı bir bilgiyi alıcının alabilmesi ve alınan verinin değerlendirilebilmesi için ALıcı sistemin data almak için beklemede olması gerekir.
Hem bazı işleri yapıp hemde arada bir veri geliyormu diye bakan programlarda veri haberleşmesi sıkıntılı olur.
Bu nedenle alıcılarda mutlaka RDA kesmesi kullanmaya çalışın. Veri bir bilgi zinciridir. Başı, ortası ve sonu olmalıdır. Bunu bir trene benzetebilirsiniz. Alıcı alma işine, trenin ortasından girerse aldıkları bir işe yaramaz. Bu nedenle daima veri başı alıcıya bildirilmeli (preambl)  alıcıda veri başını bulup peşinden gelenleri alıp değerlendirmelidir.
Söyleyeceklerim bunlar.
Üyelerin aklını karıştıracak yalan yanlış değerlendirmeler yapmayın. Bu gibi durumlarda bundan sonra olursa o mesajları sileceğim.
Kendi işiniz bakın ve sürekli CCS ve Basic mıkayesesi yapmayı bırakın. Ne iile çalışacaksanız onunla çalışın diğerine çamur atmayın. Çünki onuda sizden iyi kullanların olduğunu unutmayın.

Ete

ete hocam uyarınız için teşekkür ederim. dikkat edicem. 4mhz ile çalışıyorum ve baud değerim şuanda 300. rf modül konusunda videodaki modülün aynısını kullanıyorum. dediğiniz gibi tamamen benden kaynaklı bir hata. ama tam olarak nerede hata yaptığımı anlamadım. mutabakat konusunda sıkıntım var sanırım.

 
Alıntı yapılan: İlyas KAYA - 24 Mayıs 2019, 14:36:05Mesafen çok kısa. Bu mesafe de Rf sinyal henüz yayılım seviyesine ulaşmamış olur. Minimum 1 metreden ve anten takarak deneyin. Antenler ise 17.5 cm 1mm kablo ile bobin yapmadan olmalıdır.

5 TL yada 10 tl farketmez. Sizin veri gönderim şekliniz RF ile göndermeye ve almaya müsaitmi mesele bu.
USART kullanıyorsanız zaten baştan hata yapıyorsunuz demektir. RF usart için çok da uygun değil. Bu nedenle manchester coding RF de ve IR haberleşmede kullanılır. 5TL lik RF modüller ve Manchester coding ile sorunsuz kumanda devreleri yapabilirsiniz. Sorunsuz kumanda devresi yoktur esasen.

RF in kendisi başlı başına sorundur.

Mesafe çok değil ise 863 , 2.4 Ghz yada wifi ile haberleşerek parazitlerin önüne geçebilirsiniz. En sonunda ESP01 ile alıcı verici yapıp piyasaya süreceğim :)

yaparsanız müşterilerinizden biri ben olabilirim :)
bu arada ben sanırım okuma işleminde hata yapıyorum. çünkü ölçü aletinde alıcı data çıkışında değer farkı görünüyor.

fatih88

Dosya ekine basit ccs c ile alıcı verici yaptım umarım işine yarar bir dene düzgün çalışması gerekiyor
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

gnsotomasyon

#9
Alıntı yapılan: fatih88 - 24 Mayıs 2019, 20:55:04Dosya ekine basit ccs c ile alıcı verici yaptım umarım işine yarar bir dene düzgün çalışması gerekiyor

hocam devreni aynen kurdum. hex dosyalarını direk pic lere attım resmide mevcut. kablolu dahil hiç haberleşme olmadı. verici tx yani b2 ye, alıcı rx yani b1 pinlerine modülleri ve kabloları bağlayarak denedim. ayrıca verdiğin kodları kendim derlemek istediğimde derleyemedim. fuse ayarları ve #include <16F628A.h> için hata verdi. kodları kendi oluşturduğum dosyaya kopyalayıp derlemeyi başardım. yine bir değişim olmadı




resimde ne kadar net görünür bilemiyorum ama az çok tercüme etmeye çalışayım. picler sağlam onu biliyoruz. voltaj doğru geliyor. b2 pinine ölçü aletini bağladığımda sabit voltaj görüyorum. normalde kablolu çalışan devremde burda 2v civarında dalgalı görünürdü.

EDİT: arduino denememde çalıştı bu arada. ben pic te büyük bir hata yapıyorum ama bulamıyorum

alisumer

628A comperator iptalmi pullup ayarları vesaire ilk önce bi ayarlarına bak tekrardan herşey güzelse ve çalışmıyor ise usb seri çeviricin var ise alıcıyı buna bağla ve bilgisayardan bak bakalım data ne geliyor benim alıcı bozulmuş mesela elimi yaklaşsam sinyal değişiyor sapıtıyor alıcıya 9 volt bağladıktan sonra cozuttu halbuki 9 volt kendi datasında yazan değer anladığım kadarıyla çok hassas trimerli alıcılar mümkünse kristalli olanları öneriyorlar birde öyle dene kolay gelsin bu arada benim yazdığım kodlar basic asm karışımı idi ama bulamadım işini görürse basic yazarım buton kontrol
Hep meraktan

fatih88

Gördüğüm kadarıyla pic16f628 mclr bacakları 10k veya 4k7 ile 5v bağlanmamış gibi mclr uçları boşta kalmasın (mcu 4. Bacak)
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

Powered by EzPortal