1000 kişiden bir kişi için ! devam.... 320volt blog

Elektronik Devreler Projeler » Microchip PIC devreleri bilgiler, Yazar Projeleri Makaleler Elektronik Genel »

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

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

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 değiştirilen Picbasic Kodları

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

Yazar: Ramazan

Yazarımızın 320volt.com Blog üzerinde şu an okuduğunuz yazı dahil 16 yazısı bulunmaktadır. Yazarımız hakkında bilgileri ve diğer yazılarını görmek için bakınız;

Elektronik

 
  1. maxwell says:

    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

  2. gazi says:

    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

  3. Ramazan says:

    @ 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.

  4. maxwell says:

    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.

  5. Ramazan says:

    @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

  6. Maxwell says:

    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.

  7. Ramazan says:

    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.

  8. Maxwell says:

    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.

  9. Ramazan says:

    Ş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.

  10. Maxwell says:

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

  11. Turgay says:

    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

  12. Turgay says:

    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.

Yorum Sayfaları

Yorum yapın

Doğrulama: (kutuyu işaretleyiniz)

  • Lütfen Türkçe imla kurallarına dikkat etmeye özen gösteriniz.
  • Yorumunuz yönetici tarafından kontrol edilmeden yayımlanmaz.
  • Paylaşılan devrelerin malzeme listesini istemeyiniz. Olsa zaten paylaşılırdı şema üzerinden listeyi çıkartabilirsiniz
  • Gavatar sitesine avatarınızı yükleyebilirsiniz.