🚨 مدار آژیر (Siren Circuit): آژیر دوتایی با ۵۵۵ و آژیر آردوینو
صدای آژیر را همه میشناسند: آمبولانسی که دو نت را پشت سر هم تکرار میکند، ماشین پلیسی که صدایش بالا و پایین میرود، دزدگیری که بیوقفه جیغ میکشد. مدار آژیر (Siren Circuit) یکی از جذابترین پروژههای الکترونیک است، چون نتیجهاش را فوراً میشنوی و در دل خودش چند ایدهی مهم دارد: نوسانساز، کنترل فرکانس با ولتاژ و ترکیب دو مدار با هم. در این راهنما اول انواع صدای آژیر و بلندگوها را میشناسیم، بعد آژیر دوتایی و آژیر بالارونده را با دو آیسی ۵۵۵ میسازیم، یک آژیر بدون کد در شبیهساز تینکرکد فارسی میبندیم و در آخر یک آژیر سهحالته با آردوینو و تابع tone() مینویسیم.
انواع صدای آژیر (Siren Sounds)
| اسم فارسی | English | صدا چطور است | کجا شنیدهای |
|---|---|---|---|
| آژیر دوتایی | Two-Tone / Hi-Lo Siren | دو نت ثابت یکیدرمیان، مثلاً حدود ۴۴۰ و ۵۸۷ هرتز (نت لا و ر) | آمبولانس و آتشنشانی در خیلی از کشورها |
| آژیر بالارونده | Wail Siren | صدا در چند ثانیه آرام بالا میرود و پایین میآید | ماشین پلیس، آژیر هشدار شهری |
| آژیر سریع | Yelp Siren | همان بالا و پایین، ولی چند بار در ثانیه | ماشین پلیس در تقاطعها |
| بوق منقطع | Pulsed Beeper | یک نت ثابت که قطع و وصل میشود | دزدگیر، هشدار دندهعقب |
| بوق ممتد | Continuous Tone | یک نت ثابت و بیوقفه | زنگ هشدار ساده |
همهی اینها از یک ایده ساخته میشوند: یک نوسانساز صوتی (Audio Oscillator) که چند صد بار در ثانیه بلندگو را هل میدهد و میکشد، و یک چیز دیگر که فرکانس آن نوسانساز را عوض میکند. فرق آژیرها فقط در همین «چیز دیگر» است.
بازر یا بلندگو؟ (Buzzer vs Speaker)
| قطعه | English | با ولتاژ ثابت | برای آژیر |
|---|---|---|---|
| بازر اکتیو | Active Buzzer | خودش نوسانساز دارد و یک صدای ثابت میدهد | فقط بوق منقطع؛ صدایش بالا و پایین نمیرود |
| بازر پسیو | Passive Buzzer | فقط یک تق میزند؛ موج مربعی لازم دارد | عالی؛ هر فرکانسی بدهی همان را پخش میکند |
| پیزو | Piezo Disc | مثل بازر پسیو | خوب و کممصرف؛ صدای تیزتر |
| بلندگو | Speaker (8Ω) | مقاومتش خیلی کم است و جریان زیاد میکشد | بلندترین صدا، ولی با ترانزیستور یا تقویتکننده |
یک راه ساده برای تشخیص: بازر را مستقیم به یک باتری ۳ تا ۵ ولتی وصل کن. اگر بوق ممتد زد، اکتیو است؛ اگر فقط یک تق کرد، پسیو است. بازر اکتیو معمولاً پشتش بسته است و برچسب دارد، بازر پسیو پشتش برد مدار سبز پیدا است.
آژیر دوتایی با دو آیسی ۵۵۵ (Two-Tone 555 Siren)
این مدار کلاسیک از دو چشمکزن ۵۵۵ ساخته شده: یکی خیلی کند (حدود یک بار در ثانیه) و یکی خیلی تند (چند صد بار در ثانیه، یعنی صدا). خروجی ۵۵۵ کند، فرکانس ۵۵۵ تند را عوض میکند.
قطعهها
| # | قطعه | English | مقدار | کار |
|---|---|---|---|---|
| ۱ | دو آیسی ۵۵۵ | 2 × 555 Timer IC | NE555 (یا یک آیسی ۵۵۶ که دو ۵۵۵ در یک بسته است) | IC1 کند، IC2 تند |
| ۲ | مقاومتهای IC1 | R1, R2 | ۱۰ و ۶۸ کیلواهم | زمانبندی کند |
| ۳ | خازن IC1 | C1 | ۱۰ میکروفاراد | حدود یک تعویض نت در ثانیه |
| ۴ | مقاومتهای IC2 | R3, R4 | ۱ و ۱۰ کیلواهم | زمانبندی صوتی |
| ۵ | خازن IC2 | C2 | ۱۰۰ نانوفاراد سرامیکی یا پلیاستر | حدود ۷۰۰ هرتز |
| ۶ | مقاومت رابط | R5 (Modulation Resistor) | ۱۰ کیلواهم | از پایهی ۳ IC1 به پایهی ۵ IC2 |
| ۷ | بلندگو یا بازر پسیو | Speaker / Passive Buzzer | بلندگوی ۸ اهم با خازن ۱۰۰ میکروفاراد و مقاومت حدود ۴۷ اهم سری، یا یک بازر پسیو مستقیم | پخش صدا |
| ۸ | باتری ۹ ولت | 9V Battery | یک عدد | تغذیهی هر دو آیسی |
چطور کار میکند؟
- هر دو آیسی مثل چشمکزن آستابل سیمکشی میشوند: R بین مثبت و پایهی ۷، R دوم بین ۷ و ۶، پایهی ۶ به ۲، خازن از ۲ به منفی، پایهی ۴ و ۸ به مثبت و پایهی ۱ به منفی.
- IC1 با ۱۰ کیلواهم، ۶۸ کیلواهم و ۱۰ میکروفاراد حدود یک بار در ثانیه بالا و پایین میرود:
f1 = 1.44 / ((10k + 2×68k) × 10µF) ≈ 0.99 Hz. - IC2 به تنهایی حدود ۶۸۶ هرتز صدا میسازد:
f2 = 1.44 / ((1k + 2×10k) × 100nF) ≈ 686 Hz. - نکتهی کلیدی پایهی ۵ است. این پایه مستقیم به ولتاژ مرجع دوسوم داخل آیسی وصل است. اگر ولتاژش را بالا ببری، خازن IC2 باید تا ولتاژ بیشتری شارژ شود، پس هر نوسان طول میکشد و صدا بمتر میشود. اگر پایینش بیاوری، صدا زیرتر میشود.
- خروجی IC1 از راه R5 پایهی ۵ IC2 را یک نیمثانیه بالا و یک نیمثانیه پایین میکشد. نتیجه: دو نت یکیدرمیان. با این مقدارها، حساب تقریبی دو نت حدود ۶۴۰ و ۸۷۰ هرتز را نشان میدهد؛ یعنی فاصلهای نزدیک به همان «چهارم» موسیقی که در آژیرهای واقعی میشنوی.
اگر بخواهی نتها از هم دورتر شوند، R5 را کوچکتر کن (مثلاً ۴٫۷ کیلواهم)؛ اگر نزدیکتر، بزرگترش کن. سرعت عوض شدن نتها هم فقط با C1 یا R2 عوض میشود.
آژیر بالارونده با ۵۵۵ (Wailing 555 Siren)
در آژیر دوتایی، پایهی ۵ دو ولتاژ ثابت میگرفت و صدا بین دو نت میپرید. برای آژیر پلیسی که صدایش نرم بالا و پایین میرود، باید ولتاژ پایهی ۵ هم نرم تغییر کند. خوشبختانه IC1 یک ولتاژ نرم دارد: ولتاژ خازن C1 که مثل دندانهی اره بین یکسوم و دوسوم تغذیه بالا و پایین میرود.
- ولتاژ خازن C1 را به بیس یک ترانزیستور NPN بده که کلکتورش به مثبت وصل است. این ترانزیستور «امیتر فالوور» (Emitter Follower) است: امیتر همان ولتاژ را با حدود ۰٫۷ ولت کمتر تکرار میکند، بدون اینکه از خازن جریان زیادی بکشد و زمانبندی IC1 را خراب کند.
- امیتر را از راه یک مقاومت چندکیلواهمی به پایهی ۵ IC2 وصل کن.
- IC1 را کندتر کن (مثلاً خازن ۴۷ میکروفاراد) تا هر بالا و پایین رفتن یکی دو ثانیه طول بکشد. حالا صدا آرام بالا میرود و پایین میآید.
مقدار دقیق مقاومتها به آیسی و بلندگو بستگی دارد و بهتر است روی بردبورد کمی با آنها بازی کنی. اگر کنترل دقیقتری روی شکل صدا میخواهی، نسخهی آردوینو که پایینتر آمده خیلی سادهتر است.
ساخت آژیر در شبیهساز تینکرکد فارسی (بدون کد)
در مود سادهی شبیهساز، هر بازر زنگی یک تنظیم «فرکانس» دارد که از ۲۰۰ تا ۵۰۰۰ هرتز عوض میشود. پس بهجای اینکه یک ۵۵۵ صدا بسازد، دو بازر با دو صدای مختلف میگذاریم و یک ۵۵۵ کند آنها را یکیدرمیان روشن میکند؛ این همان آژیر دوتایی است و ما در شبیهساز اجرایش کردیم:
- در شبیه ساز مدار مود ساده را باز کن و نمونهی «چشمکزن ۵۵۵» (صفحهی نمونه) را بارگذاری کن. این ۵۵۵ با ۱۰ کیلواهم، ۴۷ کیلواهم و ۱۰ میکروفاراد حدود ۰٫۴ ثانیه بالا و ۰٫۳۳ ثانیه پایین است.
- LED و مقاومتش را بردار. یک «بازر زنگی» بگذار، فرکانسش را در پنل تنظیمات روی ۴۵۰ هرتز بگذار، پایهی + آن را به پایهی ۳ و پایهی − را به منفی باتری وصل کن.
- بازر دوم را روی ۶۰۰ هرتز تنظیم کن (نزدیکترین عددهای اسلایدر به نت لا و ر). مثبت باتری را به آند یک دیود بده، کاتد دیود را به + بازر دوم و − بازر دوم را به پایهی ۳ وصل کن.
- ▶ را بزن: دو صدا یکیدرمیان پخش میشوند. وقتی خروجی بالاست بازر اول و وقتی پایین است بازر دوم میخواند.
چرا دیود؟ خروجی بالای ۵۵۵ حدود ۱٫۷ ولت از تغذیه کمتر است، پس بازر دوم حتی در نیمهی «خاموش» هم ۱٫۷ ولت میبیند و کمی صدا میدهد. ما اول بدون دیود امتحان کردیم و بازر دوم هیچوقت ساکت نشد؛ دیود ۰٫۷ ولت از این ولتاژ را میگیرد و مشکل حل میشود. این همان نکتهای است که در نسخهی دو LED یکیدرمیان هم دیدیم.
برای تمرین قدمبهقدم، درس آژیر دوتایی در دورهی برق بدون کد را ببین که اول با دو LED شروع میکند و بعد صدا اضافه میکند. نمونهی بوق ۵۵۵ هم یک ۵۵۵ را مستقیم به بازر پسیو داده و چراغ اضطراری بخش نوری آژیر را ساخته است. یک محدودیت را هم بدان: شبیهساز حدود ۳۰ بار در ثانیه مدار را حساب میکند، پس یک ۵۵۵ صدها هرتزی را نمیتواند به صدا تبدیل کند؛ نوسانساز صوتی ۵۵۵ را روی بردبورد واقعی بساز و در شبیهساز از تنظیم فرکانس بازرها کمک بگیر.
آژیر دوتایی را در شبیهساز بساز 🚨آژیر آردوینو با tone() (Arduino Siren)
با آردوینو، شکل صدای آژیر فقط چند عدد در کد است. تابع tone(pin, frequency) روی یک پین موج مربعی با فرکانس دلخواه میسازد و noTone(pin) آن را قطع میکند. این برنامه سه آژیر دارد که با یک دکمه عوض میشوند، و دو LED قرمز و آبی هم مثل چراغ گردان یکیدرمیان چشمک میزنند. همهی قطعهها در مود آردوینوی شبیهساز رایگاناند و صدا واقعاً از بلندگوی کامپیوترت پخش میشود.
| قطعه | پایهی قطعه | وصل به آردوینو |
|---|---|---|
| بازر پسیو | + / − | پین ۸ / GND |
| کلید فشاری | یک پایه / پایهی قطری | پین ۲ / GND |
| LED قرمز + مقاومت ۲۲۰ اهم | آند (از راه مقاومت) / کاتد | پین ۱۲ / GND |
| LED آبی + مقاومت ۲۲۰ اهم | آند (از راه مقاومت) / کاتد | پین ۱۳ / GND |
// آژیر آردوینو: سه صدای آژیر و چراغ گردان، با یک دکمه
const int BUZZER = 8; // بازر پسیو
const int BUTTON = 2; // دکمهی عوض کردن صدا، به GND
const int LED_RED = 12; // با مقاومت 220 اهم
const int LED_BLUE = 13; // با مقاومت 220 اهم
int mode = 0; // 0 = بالارونده (Wail)، 1 = سریع (Yelp)، 2 = دوتایی (Hi-Lo)
int freq = 600; // فرکانس فعلی بر حسب هرتز
int stepHz = 10; // هر قدم چند هرتز
bool upperNote = false; // برای آژیر دوتایی
bool redOn = false; // برای چراغ گردان
int lastButton = HIGH;
unsigned long lastStep = 0;
unsigned long lastFlip = 0;
void setup() {
pinMode(BUTTON, INPUT_PULLUP);
pinMode(LED_RED, OUTPUT);
pinMode(LED_BLUE, OUTPUT);
Serial.begin(9600);
Serial.println("Siren: wail");
}
void loop() {
unsigned long now = millis();
// ۱) دکمه: رفتن به صدای بعدی
int b = digitalRead(BUTTON);
if (b == LOW && lastButton == HIGH) {
mode = (mode + 1) % 3;
freq = 600;
stepHz = 10;
if (mode == 0) Serial.println("Siren: wail");
if (mode == 1) Serial.println("Siren: yelp");
if (mode == 2) Serial.println("Siren: hi-lo");
delay(30); // لرزش دکمه
}
lastButton = b;
// ۲) صدا
if (mode == 2) { // دوتایی: هر نیم ثانیه یک نت
if (now - lastStep >= 500) {
lastStep = now;
upperNote = !upperNote;
tone(BUZZER, upperNote ? 587 : 440);
}
} else { // بالارونده یا سریع
unsigned long wait = (mode == 0) ? 20 : 2;
if (now - lastStep >= wait) {
lastStep = now;
freq = freq + stepHz;
if (freq >= 1400) stepHz = -10;
if (freq <= 600) stepHz = 10;
tone(BUZZER, freq);
}
}
// ۳) چراغ گردان: قرمز و آبی یکیدرمیان
if (now - lastFlip >= 250) {
lastFlip = now;
redOn = !redOn;
digitalWrite(LED_RED, redOn ? HIGH : LOW);
digitalWrite(LED_BLUE, redOn ? LOW : HIGH);
}
}
این کد چطور کار میکند؟
- آژیر بالارونده: هر ۲۰ میلیثانیه ۱۰ هرتز به فرکانس اضافه میشود. از ۶۰۰ تا ۱۴۰۰ هرتز، ۸۰ قدم است؛ پس بالا رفتن ۱٫۶ ثانیه و یک دور کامل حدود ۳٫۲ ثانیه طول میکشد. وقتی به سقف یا کف رسید، علامت
stepHzبرعکس میشود. - آژیر سریع: همان کد با فاصلهی ۲ میلیثانیه؛ هر دور حدود یکسوم ثانیه است و صدا «جیغجیغ» میکند.
- آژیر دوتایی: هر ۵۰۰ میلیثانیه بین ۴۴۰ و ۵۸۷ هرتز جابهجا میشود؛ همان دو نتی که در آژیر ۵۵۵ با پایهی ۵ ساختیم.
- بدون delay بلند: صدا، چراغها و دکمه هر کدام زمان خودشان را با
millis()نگه میدارند، پس هر سه همزمان کار میکنند. اگر با این روش آشنا نیستی، delay یا millis را بخوان.
عددها را عوض کن و آژیر خودت را بساز: سقف ۲۰۰۰ هرتز صدای تیزتری میدهد و فاصلهی ۴۰ میلیثانیه آژیری خیلی آرام. درس صدا و موسیقی تابع tone را از پایه درس میدهد، نمونهی ملودی با بازر یک آهنگ کامل پخش میکند و پروژهی پایانی ماشین پلیس همین آژیر را با چراغها ترکیب کرده است.
بلندتر کردن صدا (Louder Siren)
پین آردوینو حداکثر حدود ۲۰ میلیآمپر را راحت میدهد و بلندگوی ۸ اهمی مستقیم روی پین ۵ ولتی چند صد میلیآمپر میخواهد؛ یعنی پین آسیب میبیند. برای بلندگو یک ترانزیستور بگذار:
| قطعه | از | به |
|---|---|---|
| مقاومت ۱ کیلواهم | پین ۸ | بیس ترانزیستور NPN (مثل 2N2222 یا BC337) |
| امیتر ترانزیستور | — | GND |
| بلندگوی ۸ اهم + مقاومت حدود ۲۲ اهم سری | 5V | کلکتور ترانزیستور |
ترانزیستور مثل یک کلید سریع، جریان بزرگ بلندگو را از منبع ۵ ولت میکشد و پین آردوینو فقط چند میلیآمپر برای بیس میدهد. طرز کار این کلید را در ترانزیستور چطور کار میکند ببین. برای صدای خیلی بلند، از یک ماژول تقویتکنندهی صوتی آماده استفاده کن.
انواع مدار آژیر (Variations)
| # | اسم فارسی | English | ایده |
|---|---|---|---|
| ۱ | آژیر دوتایی با ۵۵۵ | Two-Tone 555 Siren | خروجی ۵۵۵ کند به پایهی ۵ ۵۵۵ تند |
| ۲ | آژیر بالارونده با ۵۵۵ | Wailing 555 Siren | ولتاژ خازن ۵۵۵ کند، از راه ترانزیستور به پایهی ۵ |
| ۳ | آژیر پلیس دکمهای | Push-Button Police Siren | دکمه یک خازن را شارژ میکند؛ با فشار صدا بالا میرود و با ول کردن پایین میآید |
| ۴ | بوق منقطع با دو ۵۵۵ | Pulsed 555 Beeper | خروجی ۵۵۵ کند به پایهی ریست (۴) ۵۵۵ تند: صدا قطع و وصل میشود |
| ۵ | آژیر ترانزیستوری | Transistor Siren | نوسانساز دو ترانزیستوری با یک خازن که فرکانس را میکشد |
| ۶ | آژیر با آیسی صدا | Siren Sound IC | آیسیهای آمادهای که چند صدای آژیر را در خودشان دارند |
| ۷ | آژیر آردوینو | Arduino tone() Siren | کد همین مقاله؛ هر صدایی با چند عدد |
| ۸ | آژیر با چراغ گردان | Siren with Police Lights | صدا و دو LED یکیدرمیان؛ نمونهی چراغ پلیس |
| ۹ | آژیر دزدگیر | Alarm Siren | آژیر وقتی حسگر چیزی ببیند؛ در مدار دزدگیر ساده |
| ۱۰ | آژیر اعلام حریق | Fire Alarm Siren | حسگر گاز و دما + آژیر؛ سیستم اعلام حریق با آردوینو |
| ۱۱ | هشدار فاصله | Distance Warning Beeper | بوقهایی که با نزدیک شدن مانع تندتر میشوند؛ سنسور پارک |
اشتباههای رایج
- tone روی بازر اکتیو: بازر اکتیو صدای خودش را دارد و با tone فقط خشخش میکند. برای آژیر بالارونده بازر پسیو یا پیزو بگذار.
- بلندگو مستقیم روی پین: جریان زیاد پین را میسوزاند. همیشه ترانزیستور بگذار.
- tone و PWM پینهای ۳ و ۱۱: در آردوینو اونو،
tone()از تایمر شمارهی ۲ استفاده میکند؛ تا وقتی صدا پخش میشود،analogWriteروی پینهای ۳ و ۱۱ درست کار نمیکند. - delay بلند در حلقهی آژیر: اگر آژیر را با
delayبسازی، دکمه و چراغها تا پایان هر دور جواب نمیدهند. - پایهی ۵ بدون مقاومت رابط: اگر خروجی IC1 را مستقیم به پایهی ۵ IC2 بدهی، آستانه بیش از حد جابهجا میشود و IC2 ممکن است اصلاً نوسان نکند.
- زمین جدا: در مدار دو ۵۵۵ یا آردوینو با ترانزیستور، منفی همهی قطعهها باید به یک نقطه برسد.
ایمنی و احترام به گوش
- بازر و پیزو را نزدیک گوش امتحان نکن؛ صدای تیز آنها در فاصلهی کم آزاردهنده و برای گوش مضر است.
- صدای آژیر را در فضای عمومی پخش نکن؛ ممکن است مردم را بترساند یا با آژیر واقعی اشتباه گرفته شود.
- بلندگو و ترانزیستور در کار طولانی داغ میشوند؛ اگر چیزی داغ شد، مدار را خاموش کن و مقاومت سری را بزرگتر کن.
- با باتری ۹ ولت یا برق USB کار کن و مدار را هیچوقت به برق شهر وصل نکن. قانونهای کلی را در ایمنی در الکترونیک ببین.
آژیر بدون حسگر فقط سروصداست. وقتی یک حسگر حرکت یا یک کلید در به آن اضافه کنی، یک سیستم امنیتی واقعی ساختهای؛ قدم بعدی مدار دزدگیر ساده است.
سؤالهای رایج
سادهترین مدار آژیر چیست؟
سادهترین آژیر یک آیسی 555 در حالت چشمکزن است که دو بازر با دو صدای مختلف را یکیدرمیان روشن میکند. اگر آردوینو داری، از آن هم سادهتر است: یک بازر پسیو روی یک پین و چند خط کد با تابع tone.
برای آژیر بازر بهتر است یا بلندگو؟
بازر اکتیو فقط یک صدای ثابت دارد و برای آژیر بالارونده مناسب نیست. بازر پسیو و پیزو هر فرکانسی که به آنها بدهی پخش میکنند و برای شروع عالیاند. بلندگو بلندترین و خوشصداترین گزینه است ولی به ترانزیستور یا تقویتکننده نیاز دارد.
چطور صدای آژیر آردوینو را بلندتر کنم؟
بلندگو را مستقیم به پین آردوینو وصل نکن. پین را از راه یک مقاومت حدود 1 کیلواهم به بیس یک ترانزیستور NPN بده و بلندگو را با یک مقاومت کوچک سری بین 5 ولت و کلکتور بگذار. برای صدای خیلی بلند از ماژول تقویتکنندهی صوتی استفاده کن.
فرق آژیر دوتایی و آژیر بالارونده چیست؟
آژیر دوتایی بین دو نت ثابت جابهجا میشود، مثل آمبولانسهای قدیمی. آژیر بالارونده صدا را پیوسته بالا و پایین میبرد. اگر این بالا و پایین شدن خیلی تند باشد به آن آژیر سریع یا Yelp میگویند.
آیا صدای آژیر را در شبیهساز میشنوم؟
بله. در مود آردوینو، تابع tone صدای واقعی را در مرورگر پخش میکند. در مود ساده هر بازر صدای خودش را با فرکانسی که در تنظیماتش گذاشتهای پخش میکند و آیسی 555 آنها را روشن و خاموش میکند.