توسعه دانش

چه طور با بازر پسیو ملودی بسازیم؟

تفاوت بازرهای Passive و Active ، روشهای تولید تن صدا و ملودی ، نمونه کد راه اندازی همه و همه در این آموزش ، فرصت رو از دست ندهید

بازر از ساده ترین قطعه های صوتی است که برای تولید صوت از آن استفاده می شود. مدار داخلی بازر تشکیل شده از یک پیزو و یک سیم پیچ می باشد که به وسیله یک ترانزیستور و مدار مقاومتی درایو شده است که شماتیک آن به صورت شکل زیر است.

Buzzer

تفاوت بازر اکتیو و پسیو

بازر اکتیو : دارای نوسان ساز داخلی است و به راحتی راه اندازی می شود. برای راه اندازی این بازر کافیست پایه آن را صفر و یک کنیم. بزرگ ترین عیب این بارزها هم اینه که صدایی که می تونید باهاش تولید کنید فقط یک تن دارد و هیچ تن صدای دیگه ای از این بازر خارج نمی شود.

نکته : بازر های اکتیو موجود در بازار به صورت بوق ممتد و بصورت بیپ بیپ می باشند.

بازر مدل 21A29Q – بوق ممتد
بازر 21N30PQ – بیپ بیپ

بازر پسیو : این نوع بازر توانایی پخش صدا هایی با تن ها و فرکانس های متفاوت را دارد. برای راه اندازی این بازر می توان با اعمال فرکانس های مختلف، صداهای مختلفی تولید کرد.

ماژول بازر 5V پسیو

مدار راه اندازی بازر پسیو

برای اتصال بازر پسیو بهتر است از یک ترانزیستور جهت سوئیچ استفاده شود که در تصویر زیر مشاهده می کنید.

Buzzer Circuit

برنامه راه اندازی بازر پسیو

ما در محیط کدویژن تابعی نوشتیم به نام Tone که توانایی تولید صوت رو داره و دارای Duty Cycle 50% هست . یعنی در یک ثانیه نیمی از زمان یک هست و نیمی دیگر آن صفر است.

void Tone(unsigned int Frq ,unsigned int Tim);

تابع Tone دارای دو ورودی است که می توان فرکانس خروجی و مدت زمان فعال بودن خروجی را کنترل کرد.

در کدی که نوشتیم یک Define وجود دارد که باید با توجه به نوع فرکانس میکرو آن را مقدار دهی کرد تا تابع Tone درست عمل کند. همچنین از Define بازر می توان پایه خروجی را تغییر داد.

#define  Buzzer  PORTB.0
#define  Ratio   1.85  // 8Mhz=1.85 ,12MHz=2.775 ,16MHz=3.7 

void Tone(unsigned int Frq ,unsigned int Tim);
void main(void)
{
DDRB=(1<<DDB0);
PORTB=(0<<PORTB0);

while(1)
 {

 }
}

مثلا برای ایجاد بوق ممتد نیم ثانیه ای با فرکانس یک کیلوهرتز از برنامه زیر استفاده می کنیم.

Tone(1000,500);

برای ایجاد آژیر از کد زیر استفاده می شود.

void MusicP1(void)
   { 
   static unsigned int F=0;
   for(F=200;F<=2000;F=F+10) Tone(F,10);
   for(F=2000;F>=200;F=F-10) Tone(F,10);   
   }

در ادامه مدار نمونه ای از راه اندازی ساده بازرهای پسیو را مشاهده می کنید که نمونه کد آن را می توانید دانلود کنید.

 

 

تیم فنی پژوهشگران

ما گروهی از اعضای قدیمی پژوهشسرای رباتیک مشهد مربوط به سالهای دهه 80 و... هستیم، دور هم جمع شدیم و قصد داریم نتایج R&D خود را در پژوهشگران به تألیف درآوریم...

نوشته های مشابه

‫4 دیدگاه ها

دیدگاهتان را بنویسید

دکمه بازگشت به بالا