Elektronik / Mikrodenetleyici Projeleri/

RF Alıcı Verici Devresinde Yazılım Değişikliği

Sponsorlu Bağlantılar

PIC16F84A ile 6 Kanal 433 MHz RF Alıcı Verici Devresini Tuna Yıldız adlı arkadaş yapmış. İstek üzerine yazılımda değişiklik yaparak devrenin çalışma şeklini değiştirdim

Devre ilk hali itibariyle, bir butona basıldığında o butona karşılık gelen LED yanıyor fakat butonu bıraktığında sönmüyordu, ta ki başka bir butona basana kadar. Yani devrede sürekli olarak bir tane LED hep yanık kalıyordu.

Programda mantık itibariyle sadece butonlara basıldığı zaman veri bilgisi gönderiliyordu. Bende buna ek olarak butonlar hem basılı iken hem basılmadığı zamanlarda veri bilgisi göndererek, butonlar basılı iken ilgili LED’i yakan bıraktığın zaman da (benim eklediğim komutlar burada devreye giriyor.), söndüren bir hale getirdim.

433mhz_modifiye

IF PORTA.1=0 THEN
VERICI=10
GOSUB GONDER
ENDIF

Programın ilk halinde butonların kontrolü sadece yukarıdaki komutlarla yapılmış ve sadece buton basıldığı zaman işlem yapıyordu. Butonu bıraktığımızda hiçbir işlem yapmıyordu. Programın bizim istediğimiz gibi çalışması için aşağıdaki komut satırları bütün butonlar için ayrı ayrı yazıldı.

IF PORTA.1=1 THEN
VERICI=15
GOSUB GONDER
ENDIF

Temel olarak bizim eklediğimiz kodlar yukarıdaki kalıp ile aynı.

İlk programda sadece butonlar basıldığında veri gönderiliyordu, biz butona basılmadığı zamanda veri göndererek devreyi istediğimiz hale getirdik.

Devrenin alıcı kısmında ise aşağıdaki komut satırı kullanılıyordu. Görüldüğü üzere sadece HIGH konutu vardı ve bu komut sadece LED’i yakmaya yarıyordu.

IF ALICI=10 THEN
HIGH PORTB.0
ENDIF

LED’i söndürmek için bizde aşağıdaki komut satırlarını ekledik ve böylece butona basılmadığı zaman LED sönük kalıyordu. LED’i söndürmek için bizde LOW komutunu kullanarak LED’in sönük kalmasını sağladık

IF ALICI=15 THEN
LOW PORTB.0	
ENDIF

değiştirilen kodlar RF Alıcı Verici Devresinde Yazılım Değişikliği

Dosya indirme LINK listesi (TXT formatında) link-2349.zip şifre-pass: 320volt.com

  • ugurbaxi

    Paylaşımınız için teşekkürler…Peki bunun çekim aralığı nedir öğrenebilirmiyiz…yada bir op-ampla yükseltebilirmiyiz…

  • X-Fi

    cekim aralıgını alıcı verici kitler belirler piyasadaki 433mhz modüller max 50m idi yanlış hatırlamıyorsam daha kaliteli bişeyler bulup takarsan mesafe uzar

  • Myarbay

    Peki arkadaşlar bu verici devresini pil ile beslediğimiz zaman pilin ömrü ne olacak çünkü devre sürekli gönderme işlermini yapıyor .

    devrenin çalışması gayet güzel ama pilin ömrü çok uzun olmaz diye düşünüyorum

  • savas

    Merhaba hocam çalışma çok güzel olmuş. Çalışmalarınızın devamını dilerim

    Şorum şu burada devredeki butonlar yerine bir tane pot koysak karşıya analog sinyal yollayım ve diğer tarafta alıcıda analog olarak bunu alabilir miyiz.

    Aslında amacım şu alıcı kısmında bir tane motor olacak normal dc motor bu şekilde alıcıda motorun hızını ayarlayabilirim diye düşünüyorum mümkünmüdür.

  • trigdar

    Selam hocam bir sorum olacaktı devreyi çalıştırıyorum şöyle bir hata veriyor “Real time simulation failed to start” bu hata neden kaynaklana bilir,ne yapmam lazım şimdiden teşekkür ederim.

  • samet

    usta verici devresi nin yazılımı pıc 16f84 e göre değil 16f628 e göre yazılmış yazılımı pıc16f84 e göre değiştirebilirmisiniz

  • Göktuğ

    Merhaba.. Rf devreleri kavramak icin basit bir devre gibi görünüyor bu çok güzel.. Ancak Pic e yazılacak komutlar o kadar mı? GOSUB GONDER yazmışsınız ama GONDER değişkeni tanımlanmamış yani ben biraz anlayamadım. Açıklayan bir arkadaş olursa sevinirim =) Teşekkürler =)

  • Ramazan

    @Göktuğ bu sayfasa sadece yapılan değişiliklikler anlatıldı. devrenin tüm dökümanı ekli dosyada mevcut. dosyayı indirirsen gerekli olan herşey dosyada var.

  • Göktuğ

    Teşekkür ederim şimdi farkettim =)

  • Ramazan

    kolay gelsin

  • gazi

    merhaba alıcı verici devresini entegreye programladım entegrelerin 17 nolu çıkışlarını alıcı ve vericiye bağladım mı çalışmıyor yardımcı olabilirsenız sevinirim ..

  • Ramazan

    devrenizin bağlantılarını, elemanlarını iyice kontrol edin. hatta şöyle yapın alıcı-verici bağlamadan picin 17 numaralı bacaklarını birbirine bağlayıp o şekilde deneyin yine çalışmaz ise devrenizde bir sorun vardır. Çalışırsa alıcı-verici kitlerde vardır bir sorun.

  • maxwell

    merhabalar,
    bu devreyi 3 tane 16f628a ve 1 tane 16f877 ile tek kanaldan seri haberleşme sağlayarak haberleştirmek mümkünmüdür.(Sıra sıra 628 lerden gelen bilgiyi 877 alacak.)
    cevabınızı bekliyorum

  • gazi

    17 nolu çıkışları birbirine bağladım mı devre çalısıyor ama alıcı verici taktım mı çalışmıyor alıcı ve vericiler aynı frekanslı diye aldım ama çalışmadı :S

  • Ramazan

    @ Maxvell

    dediğini yapmak mümkün. bunun için yazıım ile biraz daha oynamak lazım…

    @Gazi

    kitleri aldığın yere bir uğra istersen. sorunun kitlerde anlaşılan.

  • maxwell

    Ben denedim de ilk başta sadece 16f84a ile yapmaya çalıştım, yalnız alıcı kodlarını değiştirmedim sadece verici kodlarından bazılarını değiştirdim “3 tane verici olarak 84a kullandım” fakat simülasyon çalışmadı.Pic programlamada yeni olduğumdan elbette yanlışım vardır.Siz benim için yazılımla biraz oynayabilir misiniz.

  • Ramazan

    @Maxvell

    Dediğin bu sistem oturup 5 dk da yazılacak bişey değil ne yazık ki. Alttaki linkte bir tartışma konusu var. tam senin istediğin gibi. olayın nasıl yapılacağı konusunda sana çok fazla fikir vereceğini düşünüyorum. Yazıyı incele takıldığın bir yer olursa yardımcı olurum yine.

    http://www.eproje.com/modules.php?name=Forums&file=viewtopic&t=5711

  • Maxwell

    Teşekkür ederim Ramazan Bey,

    Yazıyı inceledim fakat tam olarak faydalanamadım.Benim projem ona göre daha basit gibi, çünkü ben 3 sensörden gönderdiğim bilgiler sıra sıra gidecek yani sensörler arasında 20 şer metre olduğunu düşünürsek ve her gönderilen veri farklı farklı olduğundan hangi picden geldiği önemli değil de ne geldiği önemli çünkü piclerden “A” “B” “C” göndermem yeterli olacak buna göre işlemeler yapılacak buna göre arayüz hazırladım çünkü. Bu durumda veri gönderiminde çakışma olur mu sizce.Benim yaptığıma gelince:

    Yukarıdaki devreyi proteusta açtım ve verici kısmını kopyalayp alta 2 tane yapıştırdım ve birinci vericinin sadece 1. butonunu kullanıp diğerlerini devre dışı bıraktım.aynı işlemleri 2.buton ve 3.buton olarak kullandım fakat 3 ü aynı anda olunca çalışmıyor.bu konuda yardıma ihtiyacım var.

  • Ramazan

    işte sorunda tam dediğiniz noktada. birden fazla verici(aynı frekanslı) aynı anda çalışmaz. bunu önlemek için şöyle bir sistem tasarlaman lazım;
    kullanacağın devrelerde 1 adet MASTER(yönetici) olacak.

    diğer picler ise SLAVE konumunda olacak ve bunların hepsinde ayrı bir ID -Numara,isim ne dersen artık- olacak. MASTER pic ile bunların hepsinin aynı anda çalışmasını engellemen lazım. sistemde 3 tane SLAVE var ise bunlarda A,B ve C olarak isimlendirilmiş ise şöyle yapacaksın;

    MASTER pic ilk olarak A pici ile iletişime geçmek için “A” verisini gönderecek bu sırada diğer picler “dinleyici”(alıcı) olacağından “A” verisi hangisinde tanımlı ise o pic ile haberleşek ve MASTER’ın istediği veriyi gönderecek.(diğer picler yine dinleyici) MASTER, A picinden veriyi aldıktan sonra B pici ile haberleşmek için “B” verisini gönderecek. bu seferde sadece B pici MASTER’ın istediği veriyi gönderecek. Sonra “C” verisini gönderecek bu seferde sadece C pici MASTER’ın istediği veriyi gönderecek.

  • Maxwell

    Anladım o halde bunları araştırıp öğrenmek düşüyor bana, bu tarz örnek var mıdır acaba varsa paylaşarmısnız.
    yardımlarınız için çok teşekkürler.

  • Ramazan

    Şahsen bende yok. ama nette biraz araştırırsan RF MASTER SLAVE şeklinde bişeyler bulabilirsin. Devreyi yapmaya niyetin varsa yardımcı olurum teknik anlamda. Teknik anlamda takıldığın bir yer varsa yardım edebilirim.

  • Maxwell

    Evet kesin yapmam lazım şuan bununla uğraşmaktayım.Yardımcı olursanız çok iyi olur.

  • Turgay

    Okulda Pic i Assembly dilinde programlamayı öğreniyoruz. Ben de bu proje ödevim için böyle bişey yapmayı düşünüyordum. Kendi uğraşlarımla ve bir çok yanlışlarla Bu sistemi Assembly dilinde programlamaya uğraştım. Kısaca açıklarsam ; Alıcı pic ayrı verici pic ayrı programladım. Ancak daha yeni öğrendiğim için çok yanlışım vardır diye düşünüyorum. Aşağıda verici devresindeki pic için yazdığım program parçası var. Ancak benim yapacağım vericide portlar biraz farklı. Yani ; PortA ÇIKIŞ PortB GİRİŞ. Butonların hepsi B portuna bağlı. Yanlışım vardır elbet daha öğrenciyim :)

    Porgramın bir kısmı :

    BSF STATUS,5
    CLRF TRISA
    MOVLW h’FF’
    MOVWF TRISB
    BCF STATUS,5
    TEST
    BTFSS PORTB,0
    GOTO BUTON1
    BTFSS PORTB,1
    GOTO BUTON2
    BTFSSPORTB,2
    GOTO BUTON3
    .
    .
    BTFSS PORTB,5
    GOTO BUTON6
    GOTO TEST
    BUTON1
    MOVLW h’01’
    MOVWF PORTA,0
    GOTO TEST
    BUTON2
    MOVLW h’02’
    MOVWF PORTA,0
    GOTO TEST
    .
    .
    BUTON6
    MOVLW h’06’
    MOVWF PORTA,0
    GOTO TEST
    END

  • Turgay

    Alıcı devresindeki pic için de bir program yazdım ( Assembly )

    Program parçası :

    BSF STATUS,5
    CLRF TRISB
    MOVLW h’FF’
    MOVWF TRISA
    BCF STATUS,5
    TEST
    MOVF PORTA,W
    SUBLW h’01’
    BTFSS STATUS,2
    GOTO h_O2
    GOTO LED_1
    h_02
    MOVF PORTA,W
    SUBLW h’02’
    BTFSS STATUS,2
    GOTO h_03
    GOTO LED_2
    h_03
    MOVF PORTA,W
    SUBLW h’03’
    .
    .
    h_06
    MOVF PORTA,W
    SUBLW h’06’
    BTFSS STATUS,2
    GOTO TEST
    GOTO LED_6
    LED_1
    MOVLW b’00000001′ ; PORTB NİN 1 NOLU LEDİNİ YAK
    MOVWF PORTB
    GOTO TEST
    LED_2
    MOVLW b’00000010′ ; PORTB NİN 2 NOLU LEDİNİ YAK
    MOVWF PORTB
    GOTO TEST
    .
    .
    LED_6
    MOVLW b’00100000′ ; PORTB NİN 6 NOLU LEDİNİ YAK
    MOVWF PORTB
    GOTO TEST
    END

    Umarım anlaşılır olmuştur.

  • Mehmet A

    Merhaba devreyi şekildeki gibi oluşturup hazırladım.
    Pic16f84a 17. bacakları kendi arasında köprülediğim halde devreyi çalıştıramadım.

    Bilgi ve yardımlarınıza ihtiyacım var

  • Ramazan

    piclerin besleme voltajlarını. reset bacağı v osilatölerini kontrol edin.

  • kenan

    bu devreyi proje dersimiz için yapmaya karar verdik ve yaklaşık 3 haftadır uğraşıyoruz ve sonuç alamadık.bilen arkadaşlar varsa lütfen yardımcı olsunlar zor durumdayız .. burada devrenin simülasyonu var fakat uygulamada bu devreye rf alıcı verici modülü ekleyecekmiyiz? bu devreyi aynı şekilde kurduk simülasyonda ledler yanıyor fakat uygulamada yanmıyor lütfen acil yardım …

  • gazi

    bende denedim uygulamada olmadı alıcı verici bağlayınca ama alıcı verici uçlarını kablo ile birleştirdiğimde çalıştı alıcı verici ile yapamadım

  • EMRE

    BASILINCA YANAN BIRAKILINCA SÖNEN
    VERİCİ
    TRISA=%11110
    TRISB=%00000011
    PORTA=0
    PORTB=0
    VERICI VAR BYTE
    BASLA:
    VERICI=0
    IF PORTA.1=0 THEN VERICI=10
    IF PORTA.2=0 THEN VERICI=20
    IF PORTA.3=0 THEN VERICI=30
    IF PORTA.4=0 THEN VERICI=40
    IF PORTB.0=0 THEN VERICI=50
    IF PORTB.1=0 THEN VERICI=60
    SEROUT2 PORTA.0,396,[VERICI]
    GOTO BASLA
    END

    ALICI
    TRISA=255
    TRISB=0
    PORTA=0
    PORTB=0
    ALICI VAR BYTE
    ALICI=0
    PAUSE 500
    BASLA:
    SERIN2 PORTA.0,396,[ALICI]
    IF ALICI=0 THEN PORTB=0
    IF ALICI=10 THEN PORTB.0=1 : PAUSE 100
    IF ALICI=20 THEN PORTB.1=1 : PAUSE 100
    IF ALICI=30 THEN PORTB.2=1 : PAUSE 100
    IF ALICI=40 THEN PORTB.3=1 : PAUSE 100
    IF ALICI=50 THEN PORTB.4=1 : PAUSE 100
    IF ALICI=60 THEN PORTB.5=1 : PAUSE 100
    GOTO BASLA
    END

  • 2_parmak

    bu proje f628a ya göremi f84 e göremi?

  • sinan

    arkadaşlar rf alıcı verici set aldım ama hangi ucu pike hangi ucu vcc v.s bu şemayı yapmak istiyorum yardımınıza ihtiyacım var teşekkürler

  • emre

    kenan arkadaşım voltajı arttırın besleyici isis te tamdır fakat devrede enerji kaybı olur