433mhz rf

Başlatan erhanaltnts, 31 Mart 2015, 15:48:16

erhanaltnts

 hocam elimde 433 mhz bir alıcı verici modül var 12f675 ile sürüyorum vericiden butona bastıgımda alıcıda led yanıyor ama 15dk da bir led ben butona basmadıgım halde kendı kendıne yanıp sönüyor neden olabilir? arada bir tık tık yanıyor sönüyor led


ete

Bunun nedenini bilmem mümkün değil.
Programında veri paketinde bir işaretçi yok ise arada bir ledin yanması normal sayılır.

Ete

erhanaltnts

#2
verici devrem

Device = 12F675                      ' çalışacağımız cihazı belirledik
Set OSCCAL
Xtal 4                               ' 4 MHZ hızlı osilatörümüzü belirttik
Include "modedefs.bas"               ' RF komutları olan serin ve serout komutlarının çalışmas için gerekli kütüphaneyi ekledik
Symbol buton GPIO.1                               
CMCON=7
ANSEL=0
All_Digital true                                                               
SerOut GPIO.0,396,[$55,$55,$55,$55,$55 ]
SerOut GPIO.0,396,[$00,$00,$00,$00,$00 ]
SerOut GPIO.0,396,[$ff,$ff,$ff,$ff,$ff ]
BASLA:
If buton=1 Then
GoTo yolla
Else
GoTo BASLA
EndIf

yolla:
                          ' basla etiketi.

SerOut GPIO.0,396,["A"]    ' veri verme kodu. bu kodun çalışması için yukarıda modedefs.bas kütüphanesini ekledik.
SerOut GPIO.0,396,["A"]    ' verici pini porta.0 dır. bilgi buradan gidecek. verirken de önce A bilgisini gönderecek
SerOut GPIO.0,396,["A"]    ' ardından daha önce portb pinlerinden atadığı x y z t  bilgileri sırası ile gönderecek.
DelayUS 50
GoTo BASLA                          ' koşmaya başlayan programımızı tekrar başla etiketine gönderiyoruz.






alıcı devrem:

Device = 16F876A                 ' çalışacağımız cihazı belirledik
Xtal 20                          ' 4 MHZ hızlı osilatörümüzü belirttik

Declare LCD_DTPin =PORTB.4
Declare LCD_RSPin =PORTB.1
Declare LCD_ENPin =PORTB.3
Declare LCD_Interface = 4       
Declare LCD_Lines = 2
Declare LCD_Type = 0
Declare LCD_CommandUs = 2000
Declare LCD_DataUs = 50
All_Digital True                ' çıkış girişlerin dijital olacağıını belirttik 1=(5V) 0=(0v)
TRISA=%11111                    ' tris komutuyla hangi portların giriş çıkış olacağını belirrtik. 1 giriş, 0 çıkış için
TRISB=%00000000                 ' 16f84a da 5 adet a portu var bu yüzden % den sonra 5 adet birim girdim. b portu ise 8 adettir bu picte.
TRISC=%00000000
Low PORTA                       ' başlangıçta a portunu temizledim
Low PORTB                       ' b portunu da başlangıçta temizledik
PORTC = 0
INTCON=7
BASLA:
                       
SerIn PORTA.0, 396, [Wait("A")]   ' veri alma kodu. bu kodun çalışması için yukarıda modedefs.bas kütüphanesini ekledik.
DelayUS 10                                 ' alıcı pini porta.0 dır. bilgi buradan gelecek. alırken de önce A bilgisini bekleyecek
                                           ' ardından aldığı bilgileri sırası ile x y z t değişkenlerine eşitleyecek

Toggle PORTA.1
DelayMS 200

GoTo BASLA                                 ' koşmaya başlayan programımızı tekrar başla etiketine gönderiyoruz.



hocam su an lcd de bsey yazdırmak istemiyorum led cok gzl yanıyor butona bastıgım an ama 20sanıyede bir kendi kendine butona basmadan yanıyor

ete

#3
Verici programında, VER isimli byte değişkeni tanımla. Butona basılırsa VER=20 olsun değilse VER=0 olsun
Basla satırından evvel yer alan o serout komutlarını sil. Hiç bir işe yaramadıkları gibi zararı var.
Yolla Komut satırını aşağıdaki şekilde değiştir;
Yolla:
SerOut GPIO.0,396,[REP$AA\5,REP$00\5,REP$FF\5]
SerOut GPIO.0,396,[("E","T","E"),VER]
SerOut GPIO.0,396,[("E","T","E"),VER]
DelayUS 50
GoTo BASLA 


Alıcı programda ise  AL isimli byte değişkeni tanımla ve şu şekilde kullan;

BASLA:
SerIn PORTA.0, 396,[Wait("ETE"),AL]
IF AL=20 THEN
Toggle PORTA.1
  DelayMS 200
ENDIF
AL=0
GOTO BASLA

Ete

erhanaltnts

NEDEN IF AL=10 DİYORUZ 20 VE 0 RAKAMLARINI YOLLUYORUZ BİZ 10 NEDEN OLSUNKİ

ete

#5
Bana bağırma!!!!!  Büyük harfle yazdığın mesaj bu anlama geliyor. Bak ben bağırmadan yazıyorum.

Önce 10 düşünmüşüm demekki . Elektrik kesintisi nedeni ile pilim bitmeden önce alel acele cevap yazdım o kısmı yanlış olmuş.
Ya ikisinide 10 yap yada ikisinide 20 yap .

İşaretçi (ETE) ve peşinden yolladığın rakam senin bir nevi şifren oluyor. Hiç bir parazit bilgisi bu bilgileri peş peşe sana sağlayamaz. Bu nedenle veri güvenliği açısından bu iş böyle yapılır.

Ete

erhanaltnts

estagfurallah hocam nedemek bagırmak özür dilerim.bizim fabrikada saatte 100 litre mazot harcayan  jeneratörümüz var bu kesintinin bir an önce bitmesi lazım

Powered by EzPortal