2 modda çalışabilen verici devre

Başlatan yolcu27, 06 Temmuz 2016, 10:17:01

yolcu27

8 kanal rf alıcı verici devresini denedim çalıştırdım . hem toggle şeklinde vericiyi denedim hemde bas bırak şeklinde denedim ayrı ayrı programı yükleyince vericiye çalışıyor. Fakat ben iki moduda tek kumanda tek kod ile kullanmak istiyorum bunun içinde porta.1 i pulldown yaptım +5v ile de arasına anahtar koydum.   aşağıda kodları ve şemayı veriyorum bir bakabilirseniz. sorunum isiste çalışırken asıl devrede +5 e cekince butonları algılamıyor algılasa bile birakınca sönmüyor ledlerim. isiste biraz basılı tutunca led yanıyor bırakınca sönüyor en azından bukadar çalıştıgını gördüm.  sizde bir bakıp hataları söylerseniz sevinirim. İyi bayramlar

ete

#1
Toggle çalışma ile Basbırak çalışma ayırımı vericide yapılmamalı. Verici sadece ne göndermesi gerekiyor ise onu yollamalı.
Ancak yollanan bilgiye ilave olarak VERI yanında çalışma şeklinide yollamak gerekir ki alıcı buna göre işlem yapsın.
O halde veri yollanırken yanına birde TIP yollamak gerekiyor. PORTA.1=1 ise TIP=1, değilse TIP=0 olacaktır.
Bu tür sistemlerde dizi başı  belirteci olarak en fazla 3 karekter kullanılırsa gecikme yaşanmadan ve karışma olmadan sistem çalışır. Senin yaptığın gibi 320VOLT ifadesi çok karekterli olduğu için bu kadar karekterin alınması gerekecektir. 320VOLT yerine VOL kullanmak daha akıllıca olurdu.
Şimdi bu açıklamaya uygun olarak verici kısmını yeniden yazalım;
Öncelikle değişken tanımlama kısmına ;
TIP VAR BYTE şeklinde bir değişken tanımlayalım. Aslında bize BIT değişkeni lazım ama veri yollarken sıkıntı olmasın diye BYTE kullanıyoruz.
Daha sonra MAIN kısmınada şunları yazıyoruz.;
MAIN: 
      IF PORTA.1=1 THEN
         TIP=1       
      ELSE
         TIP=0
      ENDIF
                 
      IF PORTB<255 THEN
        VERI=PORTB
        GOSUB VER
        WHILE PORTB<255:WEND
        GOSUB VER
      endif

      PAUSE 10
      GOTO MAIN
     
VER:
      VERI=~VERI
      serout PORTA.0,813,["VOL",VERI,TIP]
 
      RETURN
           
END

VERI=~VERI komut satırı  basılan tuş bilgisini ters çevirerek basılan tuş değerine çevirmek için kullanılmıştır.
Hiç bir tuşa basılmaz ise pullup lardan dolayı PORTB=255 dir bunu ters çevirince PORTB=0 olacaktır.
PORTB.4 tuşuna basıldığı zaman 255-16=239 olan port değeri ters çevrilince direk 16 bilgisini verecektir. Bu şekilde anlaşılması daha kolay olacağı için ters çevirerek kullandım.
Son olarak yollanan bilgiye birde TIP eklediğimizi söyleyerek alıcı programa geçelim.
Alıcıda yine TIP isimli bir değişken tanımlıyoruz.
Gelen bilgi ,
serin PORTA.0,813,["VOL"],veri,TIP
satırı ile alıyoruz..
Sonra basılan tuş bilgisini direk Veri değişkeni ile alıyor ve çalışma şeklinide TIP değişkeni ise çalışma şeklini tutmaktadır.
Temel mantık şöyle önce basılan tuşu belirliyorz. Onuda Select Case VERI ile belirliyoruz. Diyelimki basılan tuş=16 (PORTB.4)
Case 16 komutu bu tuşun basılmış olması durumunda altındaki kodları çalıştırıyor.
CASE 16
     IF TIP=1 THEN
       TOGGLE PORTB.4
     ELSE
       PORTB.4=1
       GOTO BASLA
     ENDIF   

TIP=1 ise Toggle çalışacağı için TOGGLE PORTB.4 komutunu kullanarak bunu sağlamış oluyoruz.
TIP=0 ise Bas-Bırak çalışacak demektir. O zaman Yalnızca ilgili pini HIGH yapıp programı en başa yönlendirmek gerekir.
AYnı tuş basıldığı müddetçe yalnızca ilgili tuş haigh olacak ve program sürekli en başa gidecektir.
Ama tuş bırakıldığında program CASE kontrol sonuna ulaşacak ve orada TIP=0 ise PORTB tamamen sıfırlanarak basbırak çalışma şekli sağlanmış olacaktır.
Hepsi bu kadar. İşte ALıcı program ama yalnızca tuş abağlı olan pinlerin kodlarını yazdım. Diğerlerini gerekirse sen kendin ilave edersin.
BASLA:
serin PORTA.0,813,["VOL"],veri,TIP 'PORTA.1 320VOLT VERİSİNİ AL
  SELECT CASE VERI
   CASE 0
   GOTO BASLA
'   CASE 1
'   TOGGLE PORTB.0
'   CASE 2
'   TOGGLE PORTB.1
'   CASE 4
'   TOGGLE PORTB.2
'   CASE 8
'   TOGGLE PORTB.3
   CASE 16
     IF TIP=1 THEN
       TOGGLE PORTB.4
     ELSE
       PORTB.4=1
       GOTO BASLA
     ENDIF   
   CASE 32
     IF TIP=1 THEN
       TOGGLE PORTB.5
     ELSE
       PORTB.5=1
       GOTO BASLA
     ENDIF     

   CASE 64
     IF TIP=1 THEN
       TOGGLE PORTB.6
     ELSE
       PORTB.6=1
       GOTO BASLA
     ENDIF
   CASE 128
     IF TIP=1 THEN
       TOGGLE PORTB.7
     ELSE
       PORTB.7=1
       GOTO BASLA
     ENDIF       
   
   END SELECT

   PAUSE 100
   IF TIP=0 THEN portb=0
goto BASLA


Ete

yolcu27

Çok açıklayıcı olmuş hocam geceye doğru deneyecegim  alıcı vericide değişiklik yapmak gerekiyormus. Sizin bir çalışmanizda gormustum alıcı kısmında ters çevirme vardı porta ya bağlı ledler bas bırak şeklinde portb ge bağlı olanlar toggle şeklinde idi. Şimdi daha da oturdu aklıma sonucu yeniden paylasirim sizinle iyi bayramlar

yolcu27

hocam devreyi isis de denedim çok iyi hiç sorun yok tam istediğim gibi olmuş. Fakat uygulamada şöyle bir sorunla karşılaştım. 
TIP=0 bas bırak modunda sorunum yok (bazen led takılı kalıyor fakat oda sanırım alıcı vericinin ucuz çin malı olanlardan bundan kaynaklanıyor diye düşünüyorum. )

TIP=1 ise Toggle modunda ise şu sıkıntım var . birinci butona bastım yandı ikinciye bastım yandı ücüncüye bastım yandı dördüncüye bastıgımda alıcıdaki ledlerin hepsi birden sönüyor. Genel anlamda bu oluşuyor üçüncü yada dördüncü basışımda ledlerin tamamı sönüyor. bu neden kaynaklanıyor olabilir?

ete

Ledelrin hepsinin sönmesi TIP=1 verisinin alınmamasından kaynaklanır. Başka bir sebep göremyorum.
Kullandığın RF çiftleri pek tutarlı çalışmıyorlar anlaşılan.
Bana kalırsa 433 Mhz lik modüllerden kullan Bunlarda genellikle SAW rezonatörü vardır frekans kayması olmaz. Diğerlerinde nadir olarak bulunuyor.
Ayrıca bir denemede şöye yapabilirsin,
     WHILE PORTB<255:WEND
        GOSUB VER
      endif
bu satırları bul ve GOSUB VEr satırının altına bir tane daha GOSUB VER ekle.

Ete

yolcu27

#5
Dediğiniz kodu deneyeyim ekleyip.

aldığım çin malı olan ürünler şunlar 5 tane almıştım ucuz görünce Bluetooth için sipariş verirken denk gelmişlerdi.

http://tr.aliexpress.com/item/Free-shiping-Best-prices-1-pair-2pcs-433Mhz-RF-transmitter-and-receiver-link-kit-for/1511729349.html


elimde birde dirençnetten aldıgım 8 bacakklı alıcı 4 bacaklı verici takımı var bununlada deneyeyim olmazsa birde.

http://www.direnc.net/433MHZ-RF-ALICI-VERICI-TRIMERLI-TAKIM,PR-1581.html

sizin bir öneriniz varmı acaba fiyat performans ürünü olarak gördüğünüz

huseyin0579

Usta ikinci link'te verdiğin modül daha güzel çalışıyor.

huseyin0579

#7
modül için alıcıda +12v verirsen iletişim mesafesi iki katına çıkar ve bu sadece alıcı modül için geçerli bir durum verici +5v maksimum voltaj değerin olacak!...

Burak

#8
Alıntı yapılan: huseyin0579 - 07 Temmuz 2016, 16:17:41
modül için alıcıda +12v verirsen iletişim mesafesi iki katına çıkar ve bu sadece alıcı modül için geçerli bir durum verici +5v maksimum voltaj değerin olacak!...

Alıcıda 12V kullanılamaz!! TTL lojik seviyeleri aşıp , hem RF modüle , hemde işlemci alıcı UAR birimine zarar verirsiniz .. 12V sadece verici modülde kullanılabilir ama bu da sadece RF modülün beslemesine uygulanabilir , MCU yine 2,5 - 5 volt arasında beslenmelidir , üstündeki seviyelerde işlemci beslemesi zarar görecektir ..

Ayrıca iki kat hiç bilimsel bir ölçüm ifadesi değil ! Bu mesafe artışları radyo frekans teknoloji sistemlerinde Desibel-Mesafe orantısı ile ifade edilir ..

Yönlendirme yaparken dikkatli ifadeler kullanalım çünkü bu yazıları foruma uğrayan her yaştan , her meslekten araştırmacı her birey okuyabiliyor .. !

Burak
Ω Gens Una Sumus Ω

huseyin0579

#9
Hocam özür dilerim sadece verici modül de bu voltaj iki farklı şekilde kulanılabilirmi? alıcı modül +5v  olacak . Datasheet dosyasında 6'.cı sayfada alıcı modül bağlantı şemasına bakabilir'misiniz!...

huseyin0579

Hocam rx ve tx modül datasheet dosyalarını ekliyorum. Modüller için teknik özellikler açıklamasında maksimum 12v yazıyor. Bu voltaj değeri modül için herhangibir değişim ifade etmiyormu?

Burak

#11
Bak sana öncelikle şu konuda bir uyarıda bulunmak zorundayım .

1. Burayı mesaja boğma , mümkünse tek post'ta söyleyeceklerini yayınla ..
2. Sorularını açık ve net şekilde sor , mesela ben ilk soruyu anlamadım ..

Şimdi bana ilk soruyu daha açık ve net şekilde , mümkünse tek bir mesajda açıkla , hatta yine mümkünse bir örnekle ..

"verici modül de bu voltaj iki farklı şekilde kulanılabilir mi?" sorusu ne demek ? Ben anlamıyorum .. Hangi voltaj ? Bağlantı örneği var mı ? MCU gerilimi mi yoksa RF Verici yada alıcı beslemesi mi ? Neyden bahsediyorsun tam olarak ?

Ayrıca ilk verdiğin PDF dosyasında UDEA modüller için aşağıdaki resimdeki ifadeler mevcut .. Ama konudaki söz bahsi geçen modüller uzak doğu malları olduğu için UDEA'nınkiler gibi kendi IC regülatörü board üzerinde bulunmamaktadır .. Zaten MCU'lu çalışma için verilen örnek devre şemasıda ekteki gibi yayınlanmış UDEA tarafından ...

Yüksek voltajda çalıştırılabilen bir RF modül üzerindeki RF PA entegresi daha düşük sinyal seviyelerindeki bilgileride daha hassas alabilmekte elbette ama bu özellik her RF RX'te yok ..

Burak
Ω Gens Una Sumus Ω

yolcu27

sanırım bahsedilen 12 v seviyeleri bendeki bu çin malı modüller için geçerli değil baktım ettim hep 5 v yazıyor ilanlarda.

ama dediğiniz gibi bir kaç yerde 12v ibaresine denk gelmiştim modüllere bakarken fakat alıcı verici hangisi hatırlamıyorum.

iki tip alıcı var biri kristalli diğeri bobinli sanırım hangileri daha sağlıklı oluyor sizce bu konuda bilgiye ihtiyacım var? yani mesafeden ziyade frekans kaymasını engellemek adına hangisini kullanmak daha iyi olur?

Burak

#13
Kristalli olan çok daha randımanlı çalışır ... Çünkü , diğerinin ayar bobini sıcaklık gibi etkenlerden dolayı zaman zaman Henry değerinde değişimlere uğrar ve modülasyon yada demodülasyon frekansı kayar ..

Burak
Ω Gens Una Sumus Ω

yolcu27

#14
4 cıkıslı olan pt2272m alıcılı hazır 315mhz kumanda bugün geldi. bu sanırım bas bırak şeklinde calısıyor kitlemeli değil.

ben bunun çıkışı ile direk transistör aracılığı ile röle sürebilirim sanırım d0 cıkısına led bağladım 5v ile arasına direnç koyarak yaktım alıcıda anten kullanmadım vericinin kendi radyo anteni gibi anteni var. sanırım bunun anteni de 23cm olacak yanlış hatırlamıyorsam.

Şimdi benim istediğim ben bu do-d1-d2-d3 cıkıslarını portb ye çeksem. pic1628a ile portb den aldıgım bu giriş ile de röle sürsem kilitlemeli olarak çalıştırabilirmiyim röleleri?




@ DEVICE pic16F628A 'işlemci 16F628 
@ DEVICE pic16F628A, WDT_OFF'Watch Dog timer kapalı 
@ DEVICE pic16F628A, PWRT_ON 'Power on timer açık 
@ DEVICE pic16F628A, PROTECT_OFF 'Kod Protek kapalı 
@ DEVICE pic16F628A, MCLR_off 'MCLR pini kullanılıyor. 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak


TRISA=%00000000
TRISB=%00001111

PORTA=0
PORTB=0
cmcon=7



PAUSE 100

BASLA:
if portb.0=1  then
WHILE portb.0=1:WEND
toggle portb.7
endif
if portb.1=1 then
WHILE portb.1=1:WEND
toggle portb.6
endif
if portb.2=1 then
WHILE portb.2=1:WEND
toggle portb.5
endif
if portb.3=1 then
WHILE portb.3=1:WEND
toggle portb.4
endif


goto basla

Powered by EzPortal