avatar_rambili

12F675 kullanarak Basit kablosuz iletişim Pfrb.

Başlatan rambili, 30 Kasım 2014, 15:17:05

rambili

Merhaba ETE Hocam ve arkadaşlar ;

Uzun zamandır işlerin arasına dalmış ve her şeyle boğuşmak zorundaydım.

Gelelim problemimize;

Bulunduğum yerde yaklasık 15-20 mt yere kablosuz olarak role uçlarını götürmemiz gerekiyor. (Neden kablo ile değil derseniz kablo ile geçmek için yer müsait değil.)

Ben bir çok sitede ve kablosuz iletişim ile ilgili olarak bir çok araştırma yaptım. Ve şöyle bir devre hazırladım.

Similasyonda problemsiz olarak çalışıyor ama PİC hex attığımızda OSCLK için "3FFF yapayım mı?" [yes]  [No] olarak soruyor.
PİC Read ettiğimde 3F47 olarak okuyor.

Bilgilerinizi benimle paylaşırmısınız..

(Not ETE Hocanın havya projesi üzerine kuruldu. Bazı hatalar yapılmış olabilir)


Devre ve şemalar

Zaman su gibidir.
Bazen deli bir ırmak, bazende durgun akar.

ete

Bu işlemcinin program hafızasının en son adresine Dahili Osilatör çalışma değeri fabrikada yazılmıştır.
Bu değer olmadan işlemcinin dahili osc si çalışmaz yada en azından  doğru çalışmaz.
Programlarken programlama arayüzü o değeri önce pic den okur sonra yeniden üzerine yazar . Aslında sana sorulanda budur.
Dolayısıyla kendi orjinal değerini yazdırmanız gerekir. İşlemciye sil komutu verirseniz bu değerde silinir ve işlemci bu işlemden sonra sağlıklı çalışamaz. PICKIT2 programlayıcılarda bu değeri otomatik bulup yerleştiren bir seçenek vardır.
Kısaca en son adreste OSCCON değerini yeniden görecek şekilde işlemciyi programlamalısınız.

Ete

rambili

Sayın Hocam PICKıt2 klonunu kullanıyoruz.

Bunu yeniden yazıyoruz. Fakat Gerçekte çalıştıramadık. Bu konuda yardımcı olursanız mabule gecer.
Zaman su gibidir.
Bazen deli bir ırmak, bazende durgun akar.

ete

Böyle işleri sevmiyorum. Oradan buradan alıp programları kopyalamakla bu işler olmaz.
Bir sürü komut var ama anlamlarını bilmeden kullanmışsınız.
Vericide ANSEL registerinin ne işe yaradığını öğrenin ve ona göre o komutu düzeltin.
Ayrıca Pause 5000 yaklaşık 5 sn bir gecikme yaratır. Bşir 5 sn de programın sonunda var yani bir komut yollamak sende 10'yede bir olacak. Bu doğru bir şeymi sence.
Bu kadar bol keseden pause kullanmak sakıncalıdır. Amacına uygun kullanın gecikmeleri. Bana kullandıklarınız anlamsız geldi.
Anahtarın konumu test ettiğiniz bölümde Goto GONDER yazmasanız bence daha iyi. Zira program zaten oraya gidecek.
Verici programını hiç beğenmedim. Daha basit yazılabilirdi mesela şöyle;
BASLA: 'Dongüye gir.
if GPIO.4=1 then
  T=32
else
  T=16
ENdIF     
GOSUB GONDER
goto basla

GONDER:
        TOGGLE GPIO.1 :PAUSE 500 :TOGGLE GPIO.1
        SEROUT2 GPIO.5,396,["BLG",T]
        RETURN

Alıcı kısımına gelirsek. Bir pin'in dışarıdan bir şey alabilmesi için öncelikle o pinin Giriş olarak ayarlanması gerekir. Çıkış olarak ayarlanmış bir pin dışarıdan bir şey alamaz. O halde alıcı programda RF girişinin yapıldığı pin giriş olarak ayarlanmalıdır.
Bu elbette büyük bir hata. Bunun yanında küçük hatalar (yani programın çalışmasını etkilemeyen) da var. Bunları söylemeyeceğim. Yalnıca şunu söyleyeceğim. Anlamını bilmediğiniz komutları kullanmayın yada anlamlarını öğrenip ona göre kullanın.
Ete

Powered by EzPortal