avatar_ete

IR_HABERLEŞME PROJESİ

Başlatan ete, 21 Haziran 2015, 18:44:10

ete

Uzun zamandır proje hazırlamamıştım. Aslında hem konu bulmakta zorlanıyordum hemde zaman ayrmak pek mümkün olamıyordu. Bu aralar pek işim yok bende bir proje yapayım dedim. Bir arkadaşınızdan gelen istek üzerine IR_HABERLEŞME üzerine bir proje hazırlayayım dedim. İlişikteki dosyada , epeyce detaylandırdığım çalışma açıklamalarını ve programları bulabilirsiniz. Bu çalışma, SONY protokolü kullanılarak hem verici yapılması ki bu konuda iki ayrı metod kullandım. Hemde verilen bilginin alınmasına yöneliktir. Amaç hem IR sistemleri öğrenmek hem modulasyon tekniği hakkında bilgi edinmektir.
Umarım birilerine faydası olur.

Ete

Edit: RC5 sistemide ayrı bir proje dosyası şeklinde eklenmiştir. (25-06-2015)
        NEC sistemide ayrı proje dosyası olarak eklenmiştir.        (05-10-2015) Nec sisteminde iki proje vardır biri direk göz çıkışından (Ters olan)
                                                                                                                diğeri ise göz çıkışına eklenen transistör üzerinden (Düz olan)çalışır.



MS_59

Tamda bugünden beri IR haberleşme ile uğraşıyordum hocam çok sağolun teşekkürler
mehmet

Burak

Güzel ve sade bir anlatım olmuş Erol Abi , Ellerine Sağlık  :) ...
Ω Gens Una Sumus Ω

sonmoikan

Elinize sağlık Hocam, çok faydalı oldu bu proje.
ABDULLAH

ngunay

Hocam emeğiniz için çok teşekkür ederim.

ewreka

Çok teşekkürler sayın ete.

İleride yapmayı düşündüğüm bir şeydi.Çok işime yarayacak, sağolun.

ete

RC5 sistemini konu alan proje çalışmasıda ilk mesaj'a  eklenmiştir.

Ete

MS_59

Hocam birde NEC protokolüne örnek verebilirimisin
mehmet

ngunay

NEC protokolünüde kendimiz yapalım değilmi proteus...

blueboard

Ustalar kendileri rahatlıkla yazabilirler ama benim gibi acemiler için zor görünüyor.NEC için yazabilenler burada paylaşımda bulunurlarsa çok daha iyi olur. Beni kesinlikle hazırı elde etmeye çalışıyor diye düşünmeyin.Bu türden bir amacım yok. Kendimizi geliştirmek için var olanları inceleyerek ortaya yeni bir şeyler çıkarmanın daha mantıklı olacağını düşünüyorum.

ete

Nec protokolü sony protokolüne çok benziyor. En azından mantık veya sistem olarak benziyor.
Bit şekli biraz farklı headerbiraz uzun hepsi bu. Üzerinde çalışacağım. Sizde çalışın önce bitiren koysun çalışmayı buraya.

Ete

sonmoikan

#11
Nec protokolü için alıcı kısmına bir şeyler yapmaya çalıştım fakat verici kısmını tam beceremediğim için test edemedim,


TUSGIR:
     ; TUS=0:CIHAZ=0
       tus=255 : cihaz=255
       PuLSIN IR_Goz,0,PAKET
       
       ;sony
;      if PAKET<200 OR PAKET>270 then  RETURN
;      for I=0 to 11
;         pulsin IR_Goz,0,IR_AL(I)
;      next
;      Tus=127     
 
      ;nec
      IF PAKET < 850 THEN return
      FOR I = 0 TO 31             ' 32 bitli gelen pulsları yakala
         PULSIN IR_Goz,1,IR_AL(I)
      NEXT I
     

AYIKLA:
  ;NEC   ;CUSTOM KODU
  ' 32 bitlik veri içerisinde 4 byte veriyi 8 ER BİT AYIRALIM
 
  ;   for i =0 to 31
  ;       pulsin IR_Goz,0,IR_AL
  ;       If ((IR_AL<40) Or (IR_AL>180)) Then return
  ;       if IR_AL >= 75 then
  ;       IR_AL.0[i]=1
  ;       endif
  ;   next
 
  FOR I = 0 TO 7               ' ilk 8 bit
      IF IR_AL[I] > 150 THEN  ' > 150 x 10us => 1.5mS darbe süresi
         NEC_BYTE_1.0[I]=1
      ELSE
         NEC_BYTE_1.0[I]=0
      ENDIF
  NEXT I
 
  FOR I = 8 TO 15              ' ikinci 8 bit
      IF IR_AL[I] > 150 THEN
         NEC_BYTE_2.0[I-8]=1
      ELSE
         NEC_BYTE_2.0[I-8]=0
      ENDIF
  NEXT I

  ;DATA KODU
  FOR I = 16 TO 23              ' üçüncü. 8 bit
      IF IR_AL[I] > 150 THEN
         NEC_BYTE_3.0[I-16]=1
      ELSE
         NEC_BYTE_3.0[I-16]=0
      ENDIF
  NEXT I
 
  FOR I = 24 TO 31             ' dördüncü. 8 bit
      IF IR_AL[I] > 150 THEN
         NEC_BYTE_4.0[I-24]=1
      ELSE
         NEC_BYTE_4.0[I-24]=0
      ENDIF
  NEXT I
 
  ;yada  (daha kısa)
  ; tus = IR_AL & %11111111 'ilk 8 biti Maskele
  ; cihaz = (IR_AL >>16) & %11111111 'ikinci 3 biti Maskele 

tus   = NEC_BYTE_1
cihaz = NEC_BYTE_2

If cihaz=255 then goto tusgir
;nec end

;SONY
;       For I=0 to 6
;         if IR_AL(I)<80 then Tus.bit0[I]=0
;       next

;       Cihaz=%00011111
;       for I=0 to 4
;         IF IR_AL(7+I)<80 then Cihaz.Bit0[I]=0
;       next
;       RETURN
       
END
ABDULLAH

ete

NEC protokolü ile ilgili çalışmayı da ilk mesaja ekledim. Bu sistemde bit uzunlukları diğerlerine oranla uzun bu yüzden simulasyon biraz yavaş çalışıyor.
Üstelik alınması gereken bit sayısıda daha fazla bu neden le kod çözümü simulasyonda uzun sürüyor. gerçek devrede denemedim. Simulasyonda tuşlara biraz uzun basmanı gerekmektedir.
Deneyen olabilirse sevinirim.

Ete

blueboard

Ete Hocam, simülasyonda benim bilgisayarda tuşa basınca röle çekiyor ancak tuştan elimizi çektikten sonra uzunca süre beklediğim halde röle salmıyor.Bu hata benim makineden kaynaklanıyor olabilir mi?

ete

Bu simulasyonun hatası olsa gerek. Programda bunu yaptıracak bir şey yok çünki. Ancak yinede emin olmak için verici kısmına ufak bir ilave yaptım. Böylece sorun düzelmiş gözüküyor. Yaptığım ilave tuşu bırakınca birde TUS=0 bilgisi yollamak oldu.
Böylece alıcı TUS=0 bilgisini alınca otomatikman röleyi bıraktırıyor.

Dosyalar yerinede yenilendi.

Ete

Powered by EzPortal