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.
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
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/08/10 Etiketler: alıcı, kod, led uygulamaları, microchip pic projeleri, picbasic, Rf, verici, yazılım
Paylaşımınız için teşekkürler…Peki bunun çekim aralığı nedir öğrenebilirmiyiz…yada bir op-ampla yükseltebilirmiyiz…
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
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
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.
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.
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
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 =)
@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.
Teşekkür ederim şimdi farkettim =)
kolay gelsin
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 ..
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.
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
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
@ 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.
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.
@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
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.
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.
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.
Ş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.
Evet kesin yapmam lazım şuan bununla uğraşmaktayım.Yardımcı olursanız çok iyi olur.
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
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.
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
piclerin besleme voltajlarını. reset bacağı v osilatölerini kontrol edin.
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 …
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
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
bu proje f628a ya göremi f84 e göremi?
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
kenan arkadaşım voltajı arttırın besleyici isis te tamdır fakat devrede enerji kaybı olur