Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

38kHz sinyal

Başlatan onertan, 15 Nisan 2021, 23:13:16

onertan

Merhaba arkadaşlar,
IR sinyal iletici devre üzerine çalışıyorum. Nec protokolüyle IR sinyali, 38kHz taşıyıcı üzerinde iletilir deniyor. Bununla ilgili birçok örnek te var ama kafamı karıştıran bir nokta;  bu 38kHz i 20mHz kristal kullanırsam hangi hesaplama ile oluşturabilirim. 20Mhz kristal kullanırsam nasıl bir hesap yapmalıyım, 8Mhz kristal kullanırsam nasıl bir hesaplama yapmalıyım? Bu konuda kafam çok karıştı. Yardımcı olursanız sevinirim. 
Teşekkür ederim

z

#1
20x10^6 / 38 x 10^3 = 526  20x10^6/526 = 38023Hz

Demekki 20 Mhz toplamda 526'ya bolunecek.

526 pis bir sayi (2nin tam kati degil) 512 ye bolersen 20x10^6/512=39062 Hz

8 Mhz icin

8x10^6/38x10^3=210

8x10^6/210=38095Hz

210 sayisi tumden kotu en yakin 256 bolucu kullansan

8x10^6/256=31250Hz.

Ya bunlara razi olacaksin ya da hesaplanan bolme degerinde bolucu tasarlayacaksin.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Sozuak

Alıcı ile vericinin taşıyıcısı eşit olsun yeter neden ille 38khz şart mı. Genel maksatlı uyumlu olması gerekiyorsa tamam ama alıcı verici kendine özgü ise gerek yok.

OG

TSOP tarzı alıcılar bazı frekanslarda (38, 40, 42 gibi) standartlaşmış,
bunlar kullanılacaksa frekansa uymak zorundasınız,
aksi taktirde alış hassasiyeti çok düşer veya sıfırlanır.

Bu alıcıları kullanmak zorundamıyız?
birçok filtre, amplifikasyon vs tek kılıfda ucuza sunulmuş
(TSOPxxx nispeten pahalı, ucuz olan uzakdoğu ürünler var)
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

fide

mcp2120 yi araştırın
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

ete

Bu sinyali nasıl üreteceğiniz önemli. 20Mhz kristali bir işlemciyi çalıştırmak için kullanacak iseniz işiniz kolay olabilir. İşlemciniz bir Pic işlemci ise HPWM pininden bu sinyali çıkartmanız mümkün.
Mesajınızda fazla detay yok. Bu sinyali HPWM sinyali üreterek de bir pic pininden çıkartabilirsiniz.
Bunun için T2CON= %00000100 , PR2=131 ve Duty değeri olarak da 264 verdinizmi ayarlamanız tamamdır.
Ayrıca CCP1CON=%00001100 değerini verin. Böylece CCP1 çıkış pininden %50 duty değerine sahip 38Khz lik çıkışı alabilirsiniz. Çıkış almak yetmeyecek buna data sinyalini bir AND kapısı kullanarak ayrıca bindirmeniz gerekecektir. İşin temelinde IR lede gönderilen sinyal de HIGH süresi kadar 38Khz lik sinyal ve LOW siresi kadar GND verilmesi gerekir. Bu işide and kapısı size sağlar.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

OG

#6
Alıntı YapÇıkış almak yetmeyecek buna data sinyalini bir AND kapısı kullanarak ayrıca bindirmeniz gerekecektir.

bu AND işlemini alttaki gibi yapıyorum,
2 komut süresine maloluyor

PORTB.6 = 0

TRISB.6 = 0  ' port çıkış
PORTB.6 = 0  ' port 0, ( AND işleminin 0 çıkış hali)

IR gitsin istediğim anda
TRISB.6 = 1  ' port giriş (IR led göndermeye başladı, AND işleminin IR ye yani hpwm'e tabi olduğu durum )

PORTB.6 bir örnektir, başka bir port da olabilir.



FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mr.engineer

Bu devreyi zamanında biz de yapmıştık. Burada zor olan alıcı taraftı. Günlerce transimpedance devresini kuramaya çalışmıştık:) Doğru opampı seçemeyince zor olmuştu:)

z

Alıntı yapılan: OG - 17 Nisan 2021, 20:41:07bu AND işlemini alttaki gibi yapıyorum,
2 komut süresine maloluyor

PWM pinini yeni bastan tanimlayarak output yapip low ile surersen ya da pini input tanimlarsan extra pine de ihtiyac duyulmaz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

#9
Alıntı YapPWM pinini yeni bastan tanimlayarak output yapip low ile surersen ya da pini input tanimlarsan extra pine de ihtiyac duyulmaz.
üstteki bahsettiğim yöntemi başka işlerde de kullanıyordum
IR için ilk uğraşımda gerekli timingi yakaldıktan sonra başka bir arayışa girmedim.

Alıntı YapBurada zor olan alıcı taraftı. Günlerce transimpedance devresini kuramaya çalışmıştık:) Doğru opampı seçemeyince zor olmuştu:)
BRM-4040 ucuz idi, uğraşmayıp onunla çalıştım, gayet başarılı tsop'ları aratmıyor.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ACM

   Burada 38 Khz kristal var , bunu kullansa olmazmı ?

  Kristalin osc pinleriyle değilde mesela Portb.0 ve Portb.1 pinleriyle nasıl çalıştırılabileceğini bende çok merak ediyorum. Şemalarda hep osc pinlerine bağlanmış kristaller. Küçük bir tarif veya şema çok makbule geçerdi.


onertan

Alıntı yapılan: ete - 17 Nisan 2021, 18:30:03Bu sinyali nasıl üreteceğiniz önemli. 20Mhz kristali bir işlemciyi çalıştırmak için kullanacak iseniz işiniz kolay olabilir. İşlemciniz bir Pic işlemci ise HPWM pininden bu sinyali çıkartmanız mümkün.
Mesajınızda fazla detay yok. Bu sinyali HPWM sinyali üreterek de bir pic pininden çıkartabilirsiniz.
Bunun için T2CON= %00000100 , PR2=131 ve Duty değeri olarak da 264 verdinizmi ayarlamanız tamamdır.
Ayrıca CCP1CON=%00001100 değerini verin. Böylece CCP1 çıkış pininden %50 duty değerine sahip 38Khz lik çıkışı alabilirsiniz. Çıkış almak yetmeyecek buna data sinyalini bir AND kapısı kullanarak ayrıca bindirmeniz gerekecektir. İşin temelinde IR lede gönderilen sinyal de HIGH süresi kadar 38Khz lik sinyal ve LOW siresi kadar GND verilmesi gerekir. Bu işide and kapısı size sağlar.

Ete




Merhaba. Hazırladığım kod şu şekilde.
Ama çalıştıramadım. Söylediğiniz değerleri nasıl koduma entegre edebilirim?

#include <18F4525.h>
#device ADC=16

#FUSES NOWDT                    //
#FUSES WDT128                  //
#FUSES NOBROWNOUT              //
#FUSES NOLVP                    //
#FUSES NOXINST                  //


#use delay(crystal=20000000)
//#use fast_io(C)
#use pwm (PWM1, output=pin_c2, FREQUENCY = 38KHz, DUTY = 25)  


void send_signal(unsigned int32 number)
{
  int8 i;
  pwm_on();
  delay_ms(9);  //9ms başlangıç sinyali
  pwm_off();
  delay_us(4500); // 4,5 ms bekleme sinyali
  for(i=0; i<32; i++)
  {
      if(bit_test(number, 31 - i))
      {
        pwm_on();
        delay_us(560);
        pwm_off();
        delay_us(1680);
      }
      else{
        pwm_on();
        delay_us(560);
        pwm_off();
        delay_ms(560);
      }
  }
}


void main()
{

  
  while(TRUE)
  {
      if(input(pin_a2))
      {
        send_signal(0x20DF10EF);  //LG TV On/Off kodu
        output_high(pin_a3);
        delay_ms(100);
        output_low(pin_a3);
        delay_ms(500);
        
      }
      
  }

}

ete

CCS den anlamam. Aslında verdiğim yanlızca register ayarlamadan başka bir şey değil.
Kullandığınız derleyicide register ayarı nasıl yapılır onu araştırın.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

rree

#14
Bulabilirsen işlemciyi 38Khz 2li katlarında olan  kristal kullan.  xtal= 4.864mhz   yada 9.728 Mhz