
بازر پیزو (Buzzer) چطور صدا میسازد؟
در فصل «صدا: Buzzer و اولین PWM» اولین باری بود که برد آیرو صدا درآورد. آن قطعهی گِردِ کوچک یک بازر پیزو بود؛ همان چیزی که وقتی مایکروویو کارش تمام میشود بوق میزند یا وقتی کمربند نبستهای در ماشین تذکر میدهد. بیا ببینیم چطور یک قطعهی به این کوچکی میتواند صدا تولید کند.
چطور واقعاً کار میکند
قلب بازر یک صفحهی نازک از مادهای به نام پیزوالکتریک است. خاصیت عجیب این ماده این است: وقتی ولتاژ به آن میدهی، کمی خم میشود و شکلش تغییر میکند؛ ولتاژ را که برداری، به حالت اول برمیگردد. حالا اگر ولتاژ را خیلی سریع روشن و خاموش کنی، این صفحه با همان ریتم میلرزد. لرزشِ صفحه هوای دور و برش را به جلو و عقب هل میدهد و همین موجِ فشارِ هوا همان چیزی است که گوش ما بهعنوان «صدا» میشنود.
نکتهی کلیدی اینجاست: سرعت این لرزش، زیر و بمیِ صدا را تعیین میکند. اگر صفحه در ثانیه ۴۴۰ بار بلرزد، نُتِ A4 را میشنوی؛ اگر ۸۸۰ بار، همان نُت یک اکتاو بالاتر. برای همین در کد از PWM استفاده میکنیم: PWM یعنی روشنوخاموشکردن خیلی سریعِ یک پایه، و عددِ freq دقیقاً همان تعداد لرزش در ثانیه (فرکانس) است.
دو نوع بازر داریم و فرقشان مهم است. بازر active یک مدار نوسانساز داخلی دارد؛ کافی است بهش برق بدهی تا یک صدای ثابت بدهد، ولی نمیتواند نُتهای مختلف بزند. بازر passive این نوسانساز را ندارد و خودت باید با PWM فرکانس را بسازی؛ به همین دلیل با بازر passive میشود ملودی و آهنگ نواخت. در آیرو از نوع passive استفاده میکنیم تا بتوانیم آهنگ بسازیم.
کاربردهای واقعی
- بوقِ پایانِ کارِ مایکروویو، ماشین لباسشویی و اجاق.
- آژیر هشدارِ دتکتورِ دود و گازِ منوکسید کربن؛ همان صدای بلندی که جان آدمها را نجات میدهد.
- تذکرِ کمربندِ خودرو و صدای دندهعقب.
- آلارمِ ساعت دیجیتال و دستگاههای پزشکی.
- بازخوردِ صوتیِ دکمهها در دستگاههای خودپرداز و اسباببازیها.
جالب است بدانی همین اثر پیزوالکتریک برعکس هم کار میکند: اگر به صفحه فشار بیاوری، خودش ولتاژ تولید میکند. برای همین از پیزو در سنسورهای ضربه و میکروفونها هم استفاده میشود.
در عمل: سیمکشی و کد
پایهی مثبت بازر passive را به GPIO 4 و پایهی منفی را به GND وصل کن. حالا یک بوق یکثانیهای با نُت A4 میسازیم:
import machine
import time
buzzer = machine.PWM(machine.Pin(4))
buzzer.freq(440) # 440 larzesh dar sanie = nota A4
buzzer.duty(512) # seda roshan
time.sleep(1)
buzzer.duty(0) # sokoot
عددِ duty نسبتِ روشنبودن در هر چرخه است؛ duty(0) یعنی سکوت. برای عوضکردن نُت کافی است freq را عوض کنی.
اشتباههای رایج
- قاطیکردن active و passive: اگر بازرِ active بگیری، هرچه
freqرا عوض کنی صدا تغییر نمیکند، چون فرکانسش داخلی و ثابت است. - فراموشکردن
duty(0): اگر در پایان سکوت را نگذاری، بازر تا ابد بوق میزند. - انتظار صدای نرم: موجِ
PWMمربعی است، پس صدا کمی خشک و «دیجیتالی» است؛ این طبیعی است. - بازرِ پرمصرف روی پایهی برد: بازرهای بلندگویِ بزرگ جریان زیادی میکشند و باید با یک ترانزیستور راه بیفتند، نه مستقیم از پایه.
همین حالا امتحان کن
صدا را که نمیشود اسکرینشات گرفت، پس خودت اجرا کن: شبیهساز بوق و PWM را باز کن. برای یادگیری کامل ساختِ صدا و ملودی سراغ فصل بازر و PWM برو.


