Ynt: IR alıcı alınan datalara göre islem yapma

Başlatan baran123, 04 Nisan 2015, 23:20:22

baran123

Elimde bir kumanda var kamerada bakınca mor ısık bellı oluyor calıstıgına emınım yanı.16F628 ile bir devre kurdum rx pinine datayı bağladım fakat dusları almıyor.

2 led bagladım 4 mhz krıstal, rx pinini dataya bagadım bu pini 10 k ile pull-up yaptım.daha sonra alıcının vcc ucunu 100ohm ile vcc ye bagladım ve bu pine 16v 4.7u kapasitor ile gndye verdim. gnd-gnd de direk ama hic bir tepki olmuyor.
Kumandanın kodları su sekılde ımısı

#
# this config file was automatically generated
# using lirc-0.8.6(default) on Tue Jun  1 23:07:23 2010
#
# contributed by TEN (http://vdr-portal.de/board/profile.php?userid=5965)
#
# brand:                       I24
# model no. of remote control: I24 - remote controller
# devices being controlled by this remote: LED strip by eBay seller miufat
#

begin remote

  name  I24
  bits           16
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       9069  4465
  one           591  1663
  zero          591   536
  ptrail        590
  repeat       9070  2218
  pre_data_bits   16
  pre_data       0xFF
  gap          108277
  toggle_bit_mask 0x0

      begin codes
          Brightness+              0x01FE
          Brightness-              0x817E
          OFF                      0x41BE
          KEY_POWER                0xC13E                    #  Was: ON
          KEY_R                    0x21DE                    #  Was: R
          KEY_G                    0xA15E                    #  Was: G
          KEY_B                    0x619E                    #  Was: B
          KEY_W                    0xE11E                    #  Was: W
          orange                   0x11EE
          pea_green                0x916E
          dark_blue                0x51AE
          dark_yellow              0x31CE
          cyan                     0xB14E
          brown                    0x718E
          KEY_YELLOW               0x09F6                    #  Was: yellow
          KEY_LIGHTS_TOGGLE        0x8976                    #  Was: light_blue
          pink                     0x49B6
          straw_yellow             0x29D6
          sky_blue                 0xA956
          purple                   0x6996
          FLASH                    0xD12E # Manual name: 7 color jumpy change
          STROBE                   0xF10E # Manual name: All fade out & in
          FADE                     0xC936 # Manual name: 7 color fade change
          SMOOTH                   0xE916 # Manual name: 3 base color jumpy
      end codes

end remote


benım kodlar ıse su sekılde
#include <16F628.h>
#device ADC=10
#fuses XT, NOBROWNOUT, NOLVP, NOWDT
#use DELAY(CRYSTAL = 4MHz, CLOCK = 4MHz)
#use RS232(BAUD=2400, RCV=PIN_B1, STOP=1, PARITY=N)

#define LED  PIN_A1
#define LED1 PIN_A0

char data[16];

void main(void) {
   set_tris_a(0x00);
   output_a(0x00);
   
   output_high(LED);
   
   while(TRUE) {
      if(input(PIN_B1) == 0) {
         gets(data);
         delay_ms(50);
         if(data == 0x21DE)
            output_high(LED1);
         if(data == 0xA15E)
            output_low(LED1);
      }
   }
}


mesaj birleştirme:: 05 Nisan 2015, 13:29:49

birde soyle bır sey denedm artı hattından 100 ohm ıle bır lede girip ledin ucunu rx  bagladım kumandadan bır tusa basılı tutunca led yanıp sonuyor alıcı saglam gibi ama kodda bir hata var data == 0x kısmında bir hata yapıyorum ama ...

ayhani

Hocam iki devrenin GND-GND
                              TX-RX uçlarını kablo ile bağlayarak denedinizmi? Böyle çalışıyorsa programda sıkıntı yok demektir.
En iyi bildiğim şey hiçbir şey bilmediğimdir.

baran123

kumanda kısmı devre değil bildiğimiz tv kumandası gibi kapalı kutu ama tip olarak farkı mınık bır sey
data alma ıslmınde problem yok gıbı fakat alınan datayı duzgun ısleyemıyorum galıba

jrcapa

#3
Evet, datayı alış şekliniz yanlış gibi. Hex formatındaki datalar 2 byte. getc komutu ile gelen datayı diziye aktarıp yorumlamak daha kolay olabilir.

int data[2];

void main() {

if(kbhit()) {
for(i=0;i<2;i++) {
data[i]=getc();
}}

if(data[0]==0xDE && data[1]==0x21)  // 0x21DE
{  output_high(LED1); }

}


Bir de kumanda 2400 baud hızında mı haberleşir?

ayhani

Alıntı yapılan: Baran Ekrem - 05 Nisan 2015, 00:26:52
kumanda kısmı devre değil bildiğimiz tv kumandası gibi kapalı kutu ama tip olarak farkı mınık bır sey
data alma ıselamınde problem yok gıbı fakat alınan datayı duzgun ısleyemıyorum galıba

Hocam elinizde lojik analizör varmı? Yoksa şu saleenin çakma olanlarından hemen alın çok işinize yarar. Lojik analizörü alıcının pinine bağlarsanız size ne data gelmiş kaç baudla gelmiş görebilirsiniz. Bazen gelen datada baud kayması bile sorun oluyor. Böyle devrelerle çalışacaksanız acilen bir analizör alın ucuz birşey.
En iyi bildiğim şey hiçbir şey bilmediğimdir.

baran123

#5
şöye yapmamıza rağmen olmadı.Logic anlyzer yok maalesef bir ara almayı panlıyorum.Kumandanın baudnu bımıyorum maalesef tek elimde olan o paylastıgım kumandanın data kodarı. :/

void main(void) 
{
   set_tris_a(0x00);
   output_a(0x00);
   output_high(LED);
   
   int data[2];
   
   while(1)
   {
      if(kbhit()) 
      {
         for(int i=0; i<2; i++) 
         {
            data[i]=getc();
         }
      }
      if(data[0]==0xDE && data[1]==0x21)  // 0x21DE
      {  
         output_high(LED1); 
      }
   }
}

sadogan

Protokol  direk seri iletişimi ?
Ir kumandalar manchester coding deyilmi ?

Erol YILMAZ

Kumanda sinyalleri incelenmeli öncelikle.
Neyin kumandasi bu arada?

baran123

Bir kitapda da böyle yapmıştı
Serdar Çiçek Ccs c

sadogan

Alıntı yapılan: Baran Ekrem - 05 Nisan 2015, 01:08:19
Bir kitapda da böyle yapmıştı
Serdar Çiçek Ccs c
38 khz lik bir taşyıcı üzerinde o kendine has bir iletişim.

baran123

Kumanda bu i24 remote controler yazıyor ustunde o kadar baska hıc bısı yok


jrcapa

Alıntı Yap38 khz lik bir taşyıcı üzerinde o kendine has bir iletişim.
Evet, verici kendine özgü data gönderiyor alıcı da ona göre . Arkadaş renk kodlarını yazınca detaylar biliniyor sanmıştım. Baud hızı, protokoller vs. bilinmeden pek mümkün değil haberleşmek.

baran123

baud'u baska turlu bulma sansımız yok mu ? resim paylastım ustte daha once goren olmadımı ? led driver kumandası olarak da satılıyor galıba

ayhani

Hocam güzel bir link buldum galiba. Aşağıdaki linkte basit bir seti port devresi ve linkteki programlarla gelen veriyi okuyabiliyorsun galiba.

http://www.majority.nl/projects_remote_control.htm
En iyi bildiğim şey hiçbir şey bilmediğimdir.

skara1214

Alıntı yapılan: sadogan - 05 Nisan 2015, 01:05:49
Protokol  direk seri iletişimi ?
Ir kumandalar manchester coding deyilmi ?
evet hocam manchester coding bende deneme yapmıştım bir sefer 32 bit data yolluyor tek tuşa basıldığında
Herkes ölür ama herkes gerçekten yaşamaz