13 Kasım 2013 Çarşamba

KABLOSUZ SES İLETİMİ

   Merhaba arkadaşlar, yeni bir proje ile karşınızdayım. Bu projede kablosuz ses iletiminin nasıl sağlanabileceğini anlatacağım.Öncelikle bir preamplifikatör devresi  yapmamız gerekiyor. Preamplifikatör devresinin görevi mikrofondan gelen sesi yükseltmektir.Daha sonra ise bu analog sesi dijitale çevirmemiz gerekir.Bunun için 16F877A'nın adc modülünü kullanarak sesi dijitale çevirdik.Daha sonra bu dijital bilgiyi işlemcimizin TX pini üzerinden başka bir işlemcinin RX pinine gönderdik.Bunun için rf alıcı-verici kullandık.İşlemcimiz dijitale dönüşen sesi örnekleyip TX pinine bağladığımız rf verici ile diğer işlemcimizin RX pinine bağladığımız rf alıcıya gönderdi.Alıcı kısma gelen bu dijital bilgiyi ise tekrar analoga çevirmemiz gerekir.Bunun için merdiven tipi DAC devresi kullandık.Bunun sonucunda analoga çevirdiğimiz sesi amplifikatörlü bir hoparlörden dışarı verdik.

  Daha önce uzaktan kumandalı arabada kullandığımız ARX-342 ve  ATX-34S rf modüllerinin baud hızı sesi örneklemede yeterli değildir .Şimdilik TX ve RX pinlerini doğrudan birbirine bağlayarak projemizi gerçekleştirdik.Fakat en kısa zamanda baud'u yüksek bir alıcı-verici ile projemizi tamamlayacağız.

  Preamplifikatör devresinde kapasitif mikrofon,lm324 opamp ve çeşitli kondansatör ve dirençler kullanılmıştır.
    LM324 pin konfigürasyonu aşağıdaki gibidir.



                    


       Preamplifikatör devresi aşağıdaki gibidir.

     
     Dikkat ederseniz opamlarımız simetrik beslenmemiştir. LM324 opampı normal besleme ile kazanç sağlamaya olanak sağladığı için bizi simetrik besleme derdinden kurtarmıştır. RV1 ve RV3 potları ile opampların kazançlarını ayarlarız. RV2 ve RV4 potlarını ise kazanç sağladığımız çıkış sinyallerine DC bileşen eklemek için kullanırız. Yani bu RV2 ve RV4 potları ile çıkış sinyalinin offset ayarını yaparız.U1:A ve U1:B opampları eviren yükselteç , U1:C opampı ise evirmeyen yükselteçtir. Bu durumda mikrofondan gelen sinyalimiz ilk önce 1.opampdan geçerek girişe göre evrilmiş ve kazançlı  bir çıkış sinyali elde edilir. 1.opamp eviren olduğu için çıkışındaki sinyalde girişe göre 180 derecelik bir faz farkı görülür. Daha sonra 2.opamptan geçen sinyal tekrar evrilir ve bir kazanç daha sağlanır. 2 opampta eviren olduğu için çıkışındaki sinyalde, kendi girişine göre 180 derecelik bir faz farkı görülür. Buraya kadar mikrofondan gelen sinyalimiz iki defa evrildiği için 2.opampın çıkışı ile 1.opampın girişi aynı fazdadır. Yani buraya kadar mikrofondan gelen sinyal kuvvetlenmiş ve faz farkı yoktur. 3.opamp ise evirmeyen yükselteç olduğu için çıkışında herhangi bir faz farkı görülmez. Böylece kazancı yüksek olan iyi bir preamplifikatör devresi yapmış oluyoruz. 
    Genel devremizde şu şekildedir.


      Preamplifikatör devresinin çıkışı üstteki devredeki pic'in  AN0 analog girişine bağlanacak.Dikkat ederseniz preamplifikatör devresinde iki tane çıkış bulunmaktadır. Bunlarda biri Vout , diğeri ise pic'in 
analog girişine bağlanacak olan çıkıştır. Eğer pic kullanmazsak Vout çıkışını direkt olarak bir amplifikatörlü hoparlöre bağlayarak mikrofondan gelen sesi hoparlöre verebiliriz. Fakat bizim amacımız sesi kablosuz olarak iletmek olduğu için ve de sesi önce dijitale çevirmemiz gerektiği için pic16F877A kullanacağız. Pic'in pinlerine 5 volttan fazla volt verirsek pic zarar görür bu nedenle preamplifikatör devresinin çıkışını bir potansiyometreden geçirerek 5 voltu aşmayacak bir çıkış elde edip öyle pic'e bağlarız.
  R-2R merdiven tipi DAC devresinin çıkış voltajı şu şekilde hesaplanır;

VERİCİ KODU:
//////
#include "C:\Users\asus\Desktop\ders\mikrofon\mikrofon.h"


void main()
{
   int adc;
   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
  while(true){
   set_adc_channel(0);
   delay_us(10);
   adc=read_adc();
   putc(0b01010101);
   putc('X');
   putc(adc);
   
  
  
  }

}
//////

ALICI KODU:
//////

#include "C:\Users\asus\Desktop\ders\hoparlör\hoparlör.h"


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_tris_b(0x00);
   output_b(0x00);
  while(true){
   
 if(getch()=='X'){
  output_b(getch());
   }
    
  }
}

/////

Programları incelerseniz çok zor olmadığını anlayacaksınız.
Çalışmalarımızdan birkaç fotoğraf:





  Projemiz tam olarak bitince yayına ek yapacağım.
  İlgilenen arkadaşlara kolay gelsin.Başarılar dilerim.






2 yorum:

  1. Merhaba, kablosuz ses aktarmak için RF modülü olarak nRF24L01 kullanabilirmiyiz. Teşekkürler.

    YanıtlaSil
  2. PROJEYİ TAM OLARAK BİTİRDİNİZMİ
    HOPARLÖR.H VE MİKROFON.H DOSYASI NEREDE ACABA?

    YanıtlaSil