🎵 بازر پسیو (غیرفعال) (Passive Buzzer)
| اسم انگلیسی | Passive Buzzer |
|---|---|
| در ووکوی (Wokwi) | wokwi-buzzer |
| دسته | 🔊 صدا |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
بازر پسیو یا غیرفعال (Passive Buzzer) یک بلندگوی پیزوی کوچک بدون نوسانساز داخلی است: خودش صدا نمیسازد و هر فرکانسی که آردوینو بدهد را پخش میکند. همین نقطهی قوتش است؛ با آن ملودی تولد، آهنگ شروع بازی، پیانوی دکمهای و بازی سایمون میسازی. اگر فقط یک بوق ساده میخواهی، صفحهی بازر اکتیو را ببین.
بازر پسیو در ووکوی (Wokwi)
بازر ووکوی، wokwi-buzzer، دقیقاً همین رفتار را دارد: صدا را از فرکانس سیگنال پایه میسازد و از بلندگوی کامپیوترت پخش میکند. پایهی 1 سمت منفی است و به GND میرود و پایهی 2 به پین ۸:
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0 },
{ "type": "wokwi-buzzer", "id": "bz1", "top": -110, "left": 140 }
],
"connections": [
[ "uno:8", "bz1:2", "green", [] ],
[ "bz1:1", "uno:GND.1", "black", [] ]
]
}
اگر صدایی نشنیدی، صدای تب مرورگر را چک کن. در تینکرکد فارسی هم بازر پسیو با پایههای POS و NEG هم در حالت ساده (2D) و هم در حالت آردوینو (3D) رایگان است؛ مثال ملودی با بازر و درس جعبهی موسیقی آمادهاند.
سیمکشی با آردوینو
| پایهی قطعه | وصل به |
|---|---|
| پایهی + | پین 8 (برای صدای ملایمتر از راه مقاومت ۱۰۰ اهم) |
| پایهی − | GND |
هر پین دیجیتالی با tone کار میکند و لازم نیست PWM داشته باشد. بازرهای پسیو کوچک جریان کمی میکشند و مستقیم به پین وصل میشوند. اگر میخواهی ملودی با یک دکمه شروع شود، یک کلید فشاری بین پین ۲ و GND بگذار، آن را با INPUT_PULLUP بخوان و حلقهی پخش را از setup به داخل یک شرط در loop ببر.
کد نمونه
ملودی در دو آرایه است: یکی فرکانس نتها و یکی طول هر نت بر حسب ضرب. صفر در آرایهی نت یعنی سکوت. این تکه شروع آهنگ قدیمی «چشمک بزن ستارهی کوچک» (Twinkle Twinkle) است:
// Passive buzzer melody: notes + beats in two arrays (0 = rest).
// Wiring: pin 8 -> buzzer +, buzzer - -> GND
const int BUZZ = 8;
const int NOTE_C4 = 262, NOTE_D4 = 294, NOTE_E4 = 330, NOTE_F4 = 349;
const int NOTE_G4 = 392, NOTE_A4 = 440;
int melody[] = { NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4, 0,
NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4 };
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1,
1, 1, 1, 1, 1, 1, 2 };
const int NOTES = sizeof(melody) / sizeof(melody[0]);
const int BEAT_MS = 300;
void setup() {
for (int i = 0; i < NOTES; i++) {
int ms = beats[i] * BEAT_MS;
if (melody[i] > 0) tone(BUZZ, melody[i], ms * 9 / 10); // small gap
delay(ms);
}
noTone(BUZZ);
}
void loop() {}
ده درصد آخر هر نت عمداً ساکت است تا دو نت همصدا پشت سر هم یکی نشوند. برای آهنگ خودت فقط دو آرایه را عوض کن. فرکانس چند نت اکتاو چهارم:
| نت | اسم | فرکانس (هرتز) |
|---|---|---|
| C4 | دو | ۲۶۲ |
| D4 | ر | ۲۹۴ |
| E4 | می | ۳۳۰ |
| F4 | فا | ۳۴۹ |
| G4 | سل | ۳۹۲ |
| A4 | لا | ۴۴۰ |
| B4 | سی | ۴۹۴ |
| C5 | دوی بالا | ۵۲۳ |
اشتباههای رایج
- digitalWrite(HIGH): بازر پسیو با ولتاژ ثابت فقط یک تیک میزند؛ همیشه از
toneاستفاده کن. - چسبیدن نتها: اگر طول
toneباdelayبرابر باشد، دو نت یکسان پشت سر هم یک نت بلند شنیده میشوند. - tone و PWM پینهای ۳ و ۱۱: روی اونو تا وقتی ملودی پخش میشود،
analogWriteاین دو پین به هم میریزد. - نتهای خیلی بم: بازر پیزو حدود ۲ تا ۴ کیلوهرتز بلندترین صدا را دارد و نتهای بم ضعیفتر شنیده میشوند؛ اگر ملودی کمصداست، آن را یک اکتاو بالاتر ببر.
آموزشهای مرتبط
- بلندگو، برای صدای پرتر
- ۴۰ مدار آردوینو برای ووکوی، با ملودی، پیانو و بازی سایمون
- درس مدار با ووکوی، جلسهی صدا و موسیقی
سؤالهای رایج
چطور بفهمم بازرم پسیو است؟
یک لحظه به ۳ تا ۵ ولت وصلش کن. اگر فقط یک تیک زد، پسیو است؛ اگر بوق ممتد زد، اکتیو. از پشت هم معمولاً برد سبز بازر پسیو پیداست، ولی پشت اکتیو با چسب سیاه پوشیده است.
بازر ووکوی پسیو است؟
از نظر رفتار بله. wokwi-buzzer صدا را از فرکانس سیگنال پایه میسازد، پس هر نتی که با tone بدهی پخش میکند و کد ملودی بدون تغییر در آن کار میکند.
میشود با بازر پسیو دو نت همزمان پخش کرد؟
با tone روی آردوینو اونو نه؛ در هر لحظه فقط یک پین صدا تولید میکند. برای آکورد باید نتها را پشت سر هم و سریع پخش کنی یا سختافزار دیگری به کار ببری.