📢 پیزو بزرگ (Big Piezo Disc)
| اسم انگلیسی | Big Piezo Disc |
|---|---|
| در ووکوی (Wokwi) | wokwi-buzzer |
| دسته | 🔊 صدا |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
پیزو بزرگ (Big Piezo Disc) یک صفحهی برنجی است که یک لایهی سرامیکی پیزوالکتریک رویش چسبیده و قطرش معمولاً بین ۲۷ تا ۳۵ میلیمتر است. وقتی آردوینو با tone یک موج مربعی رویش میفرستد، سرامیک هزاران بار در ثانیه منبسط و منقبض میشود و صفحه مثل پوستهی طبل صدا میدهد. سطح لرزان بزرگتر یعنی صدای پرحجمتر و کمی بمتر از پیزوی کوچک؛ برای همین سراغش میرویم وقتی صدا باید از اتاق بغلی هم شنیده شود: آژیر دزدگیر، هشدار نشت گاز یا زنگ پایان تایمر. در این صفحه همین قطعه را در ووکوی میچینیم، به آردوینو اونو وصل میکنیم و یک آژیر بالا و پایینرونده میسازیم.
پیزو بزرگ در ووکوی (Wokwi)
ووکوی برای پیزوی بزرگ قطعهی جدا ندارد؛ همهی پیزوها و بازرهای صدا در آن با wokwi-buzzer ساخته میشوند و فرق اندازه فقط در دنیای واقعی حس میشود. این قطعه دو پایه دارد: 1 سمت منفی است و به GND میرود و 2 سمت مثبت است و به پین خروجی وصل میشود. وقتی کدت tone را صدا بزند، ووکوی همان فرکانس را از بلندگوی کامپیوتر پخش میکند. در این مدار یک دکمه هم گذاشتهایم تا آژیر را روشن و خاموش کند. اگر ساختار این فایل برایت تازه است، اول diagram.json در ووکوی را ببین.
{
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-buzzer", "id": "bz1", "top": -120, "left": 180, "attrs": {} },
{ "type": "wokwi-pushbutton", "id": "btn1", "top": -110, "left": 40, "attrs": { "color": "red" } }
],
"connections": [
[ "bz1:1", "uno:GND.1", "black", [] ],
[ "bz1:2", "uno:9", "red", [] ],
[ "btn1:1.l", "uno:2", "green", [] ],
[ "btn1:2.l", "uno:GND.1", "black", [] ]
]
}
| پایه در ووکوی | وصل به | کار |
|---|---|---|
bz1:1 | uno:GND.1 | سمت منفی پیزو |
bz1:2 | uno:9 | موج مربعی tone |
btn1:1.l | uno:2 | ورودی دکمه با INPUT_PULLUP |
btn1:2.l | uno:GND.1 | فشردن دکمه = LOW |
در تینکرکد فارسی هم پیزوی بزرگ در هر دو مود ساده و آردوینو رایگان است، و درس آژیر دوتایی در دورهی برق نشان میدهد ساختن آژیر بدون نوشتن کد چطور است.
سیمکشی با آردوینو
دیسک واقعی معمولاً دو سیم لحیمشده دارد: سیم قرمز روی لایهی سرامیکی (مثبت) و سیم سیاه روی صفحهی برنجی (منفی). برای صدا قطبیت حیاتی نیست، ولی رعایتش عادت خوبی است. یک مقاومت کوچک سری، پین آردوینو را در برابر جریان لحظهای پیزو که رفتاری شبیه خازن دارد محافظت میکند.
| پایهی قطعه | وصل به |
|---|---|
| سیم قرمز پیزو (+) | پین 9، از راه یک مقاومت ۱۰۰ اهم |
| سیم سیاه پیزو (−) | GND |
| یک پایهی دکمه | پین 2 |
| پایهی روبهروی دکمه | GND |
نکتهی صدا: دیسک را فقط از لبه نگه دار و پشتش را آزاد بگذار. اگر آن را روی دهانهی یک قوطی یا لولهی کوتاه بچسبانی، هوای پشتش مثل بدنهی گیتار صدا را تقویت میکند.
کد نمونه
این برنامه فرکانس را بین ۸۰۰ و ۲۵۰۰ هرتز بالا و پایین میبرد و صدای آژیر کلاسیک را میسازد. هر بار دکمه را بزنی، آژیر روشن یا خاموش میشود. تغییر فرکانس با millis زمانبندی شده تا حلقه قفل نشود و دکمه همیشه جواب بدهد.
// Big piezo siren on pin 9, switched on and off by a button on pin 2.
const int PIEZO_PIN = 9;
const int BUTTON_PIN = 2;
bool sirenOn = false;
bool lastButton = HIGH;
int freq = 800;
int stepHz = 25; // how far the pitch moves each step
unsigned long lastStep = 0;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
bool button = digitalRead(BUTTON_PIN);
if (lastButton == HIGH && button == LOW) { // the moment it is pressed
sirenOn = !sirenOn;
if (!sirenOn) noTone(PIEZO_PIN);
delay(30); // simple debounce
}
lastButton = button;
if (sirenOn && millis() - lastStep >= 8) {
lastStep = millis();
freq += stepHz;
if (freq >= 2500 || freq <= 800) stepHz = -stepHz; // turn around
tone(PIEZO_PIN, freq);
}
}
برای پیدا کردن بلندترین صدای دیسک خودت، بهجای جاروب، چند فرکانس ثابت مثل ۲۰۰۰، ۳۰۰۰ و ۴۰۰۰ هرتز را امتحان کن؛ هر دیسک یک فرکانس تشدید دارد که در آن بیشترین لرزش را دارد و برای دیسکهای بزرگ معمولاً چند کیلوهرتز است.
اشتباههای رایج
- digitalWrite بهجای tone: دیسک خام با HIGH ثابت فقط یک «تق» میزند. صدای پیوسته فقط با موج مربعی
toneساخته میشود. - دو tone همزمان روی دو پین: تابع
toneدر اونو همزمان فقط روی یک پین صدا میسازد. اگر دو پیزو داری، به نوبت صدایشان بده. - tone و PWM پینهای 3 و 11: وقتی
toneکار میکند،analogWriteروی پینهای 3 و 11 درست کار نمیکند، چون هر دو از تایمر ۲ استفاده میکنند. - دیسک خفهشده: اگر دیسک را روی میز بخوابانی یا تمام سطحش را بچسبانی، لرزشش میمیرد و صدا ضعیف میشود. فقط لبهی بیرونی را با چسب نرم ثابت کن.
آموزشهای مرتبط
- سنسور گاز MQ-2 با آردوینو: آستانه و آژیر
- سیستم اعلام حریق با آردوینو
- دزدگیر با سنسور حرکت PIR
- بازر فعال: وقتی tone لازم نیست
سؤالهای رایج
پیزو بزرگ بدون tone صدا میدهد؟
نه. دیسک پیزوی خام نوسانساز داخلی ندارد و با یک ولتاژ ثابت فقط یک تق کوچک میزند. باید با tone یک موج مربعی با فرکانس مشخص رویش بفرستی تا صدای پیوسته بدهد.
چرا صدای پیزوی بزرگ در بعضی فرکانسها بلندتر است؟
هر دیسک پیزو یک فرکانس تشدید دارد که در آن بیشترین لرزش را دارد؛ برای دیسکهای بزرگ معمولاً چند کیلوهرتز است. با امتحان چند فرکانس ثابت میتوانی بلندترین نقطهی دیسک خودت را پیدا کنی.
پیزو را مستقیم به پین آردوینو وصل کنم خطر دارد؟
برای یک دیسک پیزو معمولاً نه، چون جریان کمی میکشد؛ یک مقاومت ۱۰۰ اهم سری هم برای احتیاط کافی است. ولی بلندگوی مغناطیسی را هرگز مستقیم به پین وصل نکن.