avatar_xoom

Pic ve Buzzer

Başlatan xoom, 08 Aralık 2011, 18:32:55

xoom

Arkadaşlar ben pic'in bir pinine Buzzer bağlayıp o pini logic 1 yaptıgımda buzzer'dan veya Mini bir hoparlörden farketmez.. Kesik Kesik Ses Çıkarmak istiyorum ne yaptıysam olmadı.. Buzzerdan ses çıkıyor fakat benim istediğim seviyede olmuyor.. ( bu arabaların park sensör sistemlerindeki buzzer gibi (Dııııtt.. Dııttt.. Dııııtt..) .Transistör ile sürdüm yine olmadı.. bana örnek bir devre paylaşabilirmisiniz.. Fakat Sesin Uyarıcak kadar yüksek olması gerekiyor..

atalix

@zoom
ben transistörle sürüyorum ve gayet yüksek ses çıkıyor 12V ile dene istersen.

ete

#2
İki tür Buzzer vardır. Birinci guruba yalnızca voltaj verirsen bağırır.
Bunlar kendinden osilatörlüdür. Sabit bir ses çıkartırlar.
Xoom 'un dediğide bu guruba giriyor. Ne demiş buzzeri bir pine bağlayıp o pini lojik 1 yapınca bağırsın demiş.

İkinci gurup yalın buzzerdir. Kendi osilatörü yoktur. Voltaj versenizde ses çıkarmazlar. (Isis de ki model)
Bunlara ayrıca bir osilasyon vermeniz gerekir.

Şimdi birinci guruba tekrar bakalım. Bu gurup muhtemelen pic in source akımından fazlasını çekerler. Bu nedenle bir transistörle sürülmeleri uygun olur. Bu şekilde ses de belirgin bir artış olabilir. Buzzer pininin birisi direk + beslemeye bağlanır (dikkat pinler yönlüdür + işaretli olanı + beslemeye bağlamanız gerekir) diğer pini ise BC547 üzerinden GND e bağlamalısınız. Yani BC547 nin C ucunu buzzere E ucunu GND ye ve B ucunuda 1K lık bir transistörle Pic pinine bağlamanız gerekir.

İkinci gurup ise enteresan çalışır. İKi adet buzzer pini bir ters bir düz besleme ister. Direk bir transistör üzerinden bağlarsanız ses yeterince kuvvetli gelmez. Ben genelde şöyle yapıyorum.
- Pic pinini buzzerin bir ucuna bağlıyorum.
- Pic pininden 2k2 dirençle aynı zamanda çıkıyorum ve BC547 nin B ucuna giriyorum.
- BC547 nin E ucunu GND ye bağlıyorum.
- BC547 nin C ucunu diğer Buzzer pinine bağlıyorum. C ucuna ayrıca 1K ile Pullup uyguluyorum.
Bu şekildeki bağlantı ne yapıyor inceleyelim. Pic pini HIGH iken.
- Buzzerin bir pini , pic pinine direk bağlı olduğu için HIGH oluyor.
- Aynı pin BC547 yi sürdüğü için diğer Buzzer pini transistör üzerinden LOW oluyor.
Pic pini LOW da iken
- BUzzer bir pini LOW oluyor.
- Transistör kesimde olacağı için diğer Buzzer pini bu sefer 1K üzerinden HIGH oluyor.
Gördüğünüz gibi bu şekilde buzzer pinlerine bir ters bir düz besleme uygulanmış oluyorki buda buzzerin en yüksek ses ile bağırmasına yol açıyor.

Toparlarsak, Xoom için yapılabilecek tek şey Buzzeri bir transistörle sürmek. Ses yinede yeterli değil ise Buzzeri değiştirmek olmalıdır. Zira buzzer hala yeterli ses üretmiyorsa bu buzzerin kabahati yada kapasitesinden dolayıdır. Bir büyük modeli alınıp denenmelidir.

Ete.



Maxim

Alıntı yapılan: xoom - 08 Aralık 2011, 18:32:55
Arkadaşlar ben pic'in bir pinine Buzzer bağlayıp o pini logic 1 yaptıgımda buzzer'dan veya Mini bir hoparlörden farketmez.. Kesik Kesik Ses Çıkarmak istiyorum ne yaptıysam olmadı.. Buzzerdan ses çıkıyor fakat benim istediğim seviyede olmuyor.. ( bu arabaların park sensör sistemlerindeki buzzer gibi (Dııııtt.. Dııttt.. Dııııtt..) .Transistör ile sürdüm yine olmadı.. bana örnek bir devre paylaşabilirmisiniz.. Fakat Sesin Uyarıcak kadar yüksek olması gerekiyor..

burada eksik açıklama var
picin bir pinine xx buzzer ??
hangi buzzer ?
buzzer var buzzer var

hepsinin kendine göre ses şiddeti vardır, her buzzer aynı sesi vermezki ?
çok ses istiyorsanız çok ses çıkaran buzzerdan satın almanız lazım
" buzzer sürücü devresi " bir sonraki adımdır.

piyasada mır mır öten buzzerda var, 110db (desibel) ses çıkaranda var.
ben denedim adamı sağır eder
bazısı kendinden toogle yani ses inip çıkıyor otomatik.


sizdeki hangisi ?







xoom

#4
Edit: ete hocamın yorumu okumadan cvp yazmıştım o yüzden silmiştim yorumu..

xoom

Ete hocam.. Verdiğiniz örneği yaptım ama kafama yatmayan birşey oldu.. ben pic'in 1 pini HIGH yapmadıgımda da Buzzer Aktif mi ??

Söylediklerinizi yaptım ama Sonuç alamadım Dosya ekte..

 
set_tris_b(0x00);
  output_b(0x00);
 
  while(1)
{
   while(input(pin_a0))
   {
   output_b(0x04);
   delay_ms(500);
   output_b(0x00);
   delay_ms(500);
   }

}

ete

Benim yazıyı iyi okumadın sanırım.
iki tür buzzer var demiştim. Hangisini kullanıyorsun?.
Elindek buzzerin bir ucuna (- ucuna) gnd ve diğer ucuna +5V ver bakalım sabit olarak bir ses duyuyormusun?.
Duyuyor isen verdiğim transistörlü besleme şekli elindeki buzzere uygun değil.

Buzzer ses çıkarmıyor ise besleme uygun ama program uygun değil.
Verdiğim besleme için basic de sound komutunu kullanırız.
yad sen C dlinde 100Khz lik bir pulsout sinyali çıkarttır ve onu Buzzer çıkışına ver. Buzzeri de bir ucu +5V ta bağlı diğer ucunu BC547 üzerinden sür.

>Ete

xoom

+5 verildiğinde buzzerden sadece cızırtı çıkıyor.. Elimdeki buzzer bunlardan..


Benim onceki mesajımda hex ve ISIS dosyasını vermiştim..P.tesi Gunu devre uzerinde deneyecegim..
Bu arada Sound ve Pulsout komutlarının nasıl kullanıldıgını ve bu komutlarla KESIK KESİK uyari sesi nasıl çıkarılır bilgim yok.. ama nette araştıracağım.

est32

#8
benden de bir tavsiye;
çok yüksek ses istiyorsanız ucuzlukçularda satılan kapı pencere alarmlarından alın(1-2 tl arası),hem de oldukça ucuz.
İçerisinde bir osilatör,bir transistör,bir bobin ve buzzer var,hatta pili bile içinde.Yapacağınız sadece cihazın osilatörünü devre dışı bırakmak,mıknatısla iletime geçen kısmı kısa devre yapıp içerideki tarnsistörün beyzine pic çıkışını vermek.
Çok rahatsız edici bir ses şiddetine ulaşıyor,kulak tırmalıyor,aslında asıl işi yapan içerideki bobin.Bobin tam temas etmediği zaman kıvılcım çıkarabiliyor,demek ki oldukça yüksek gerilim oluşuyor.
Fotoğrafları;


Bu da daha önce satışını yaptığım ve ucuza mal etmek için çabaladığım kumandalı alarmlı sattim. Özel istek üzerine dışarıdan yüksek ses yöntemim(proje dışı olduğundan cihazın dışına monte edildi) ve ucuz masa saatlerinden elde ettiğim ve memnun kaldığım pek sapma yapmayan 1 hz osilatör çözümü.

ete

Resme bakılırsa elindeki buzzer kendi sesini üretenlerden dmeğil. O zaman devre işine yarayacak demektir.
Kullanman gereken komut  Basic de Sound  Pin,[110,20] şeklinde tabiiki basic için geçerli bu komut.
C dilinde ne kullanılır bilmiyorum doğrusu.

Bu komut kısa bir beep sesi üretecektir. Komutta yer alan 110 rakamını 70 lere kadar düşürebilirsin. Rakam küçüldükçe sesin tonuda kalınlaşacaktır. Rakamı 120 lere kadar artırabilirsin bu seferde ses incelecektir.
20 rakamı ise sesin süresini yaklaşık olarak veriri. Rakam uzadıkça beep seside uzayacaktır.
Yapman gereken bu komutu vermek biraz beklemek(20-50 ms arası bir şey) sonra yeniden vermek ve bu olayı tekrarlamak.

Ete

xoom

her yeri kurcalıyorum fakat sound komutunun kullanıldıgı bir tane örnek bulamadım.. ccs c kitaplarında sadece TONES.C ile EX_TONES.C dosyalarından bahsediliyor.. halen daha buzzer dan kesik ses çıkarmayı başarmış değilim..

ete

#11
Benim Havya projesinde , DTMF_Yeni projesinde kullanmıştım onları inceleyebilirsin.
Daha bir sürü projede kullandım aklıma gelenler bunlar.
Al bir tanesi;
SOUND BUZZ,[110,15,90,15,100,15]:BUZZ=0 
Ete

xoom


#include <tones.c>

#define SIZE 25

const struct note
{
   long tone;
   long length;
} happy_bday[SIZE] = {
C_note[0],350, C_note[0],100, D_note[0],500, C_note[0],500, F_note[0],500, E_note[0],900,
C_note[0],350, C_note[0],100, D_note[0],500, C_note[0],500, G_note[0],500, F_note[0],900,
C_note[0],350, C_note[0],100, C_note[1],500, A_note[0],500, F_note[0],500, E_note[0],500, D_note[0],900,
Bb_note[0],350, Bb_note[0],100, A_note[0],500, F_note[0],500, G_note[0],500, F_note[0],1200};


void main(void)  {
   int i;

   while(TRUE)
   {
      for(i=0; i<SIZE; ++i)
      {
         generate_tone(happy_bday[i].tone,happy_bday[i].length);
         delay_ms(75);
      }
   }
}


Sanırım CCS C de SOUND komutunun karşılığı bunlar..

mehmetkaplan2323

#13
e

ete

Piezo nun yüksek ses verebilmesi için piezonun push pull sürülmesi gerekir.
Yani bir uca + besleme diğer uca GND vermekle olmuyor bu iş. Ses çıkarken + olan uç bir sonraki palsde GND olmalı , GND olan uç ise +5V olmalıdır. Anlayacağın Piezonun uçları sürekli yön değiştirecek şekilde sürülmelidir.
Aşırı yüksek bir ses beklentin var ise öncelikle piezo çapını büyültmen , onu bir okkalı kutuya yerleştirmen ve push-pull çalışan bir anfi ile sürmen gerekir. Bu konuda önerebileceğim bir devre yok internette araman gerek.

Normal duyulabilecek bir ses peşinde isen tek transistörlü bir devre ile sürebiirsin.
İlişikte verdiğim şemada Picden çıkan buzzer bağlantısını uygula.

Ete


Powered by EzPortal