🔔 مدار زنگ اخبار (Doorbell Circuit): از زنگ ساده تا زنگ ملودیدار آردوینو
زنگ اخبار احتمالاً اولین مدار کاربردی است که هر کسی میسازد: یک دکمه بیرون در، یک صدا داخل خانه. ولی همین مدار ساده چند لایه دارد. نسخهی پایه فقط باتری، دکمه و بازر است؛ با یک LED برای کسی که صدا را نمیشنود کاملتر میشود؛ با یک تایمر ۵۵۵ صدای «دینگدانگ» دوتکه میگیرد و با آردوینو هر ملودیای را مینوازد. این راهنما مدار زنگ اخبار را در همین چهار پله میسازد: قطعهها را با اسم فارسی و انگلیسی معرفی میکند، فرق بازر اکتیو و پسیو را روشن میکند، فرمولها را با عدد حل میکند و در آخر کد کامل یک زنگ ملودیدار آردوینو را با tone() مینویسد. نسخههای بدون کد را بچهها از حدود ۷ سالگی و نسخهی آردوینو را از حدود ۱۰ سالگی در شبیهساز میسازند.
زنگ اخبار خانه چطور کار میکند؟
در زنگهای قدیمی، دکمهی کنار در مدار یک آهنربای الکتریکی را کامل میکند؛ آهنربا چکش کوچکی را به یک کاسهی فلزی میکوبد و یک کنتاکت، خود آهنربا را قطع و وصل میکند تا چکش پشت سر هم بزند. در زنگهای «دینگدانگ» مکانیکی، یک میلهی آهنی با هر فشار به یک تیغهی فلزی و با رها کردن به تیغهی دیگر میخورد. زنگهای امروزی، و همهی مدارهای این مقاله، صدا را با بازر یا بلندگو و یک مدار الکترونیکی میسازند.
مدار ۱: سادهترین زنگ (Battery + Button + Buzzer)
| # | اسم فارسی | English | مقدار یا مدل | کارش در مدار |
|---|---|---|---|---|
| ۱ | باتری ۹ ولت | 9V Battery | یا چهار باتری قلمی (۶ ولت) | تغذیه |
| ۲ | کلید فشاری | Push Button | کلید لحظهای (Momentary) | تا وقتی فشارش میدهی مدار کامل است |
| ۳ | بازر اکتیو | Active Buzzer | با ولتاژ نامی نزدیک باتری | صدا |
| ۴ | مقاومت سری (اگر لازم شد) | Series Resistor | با فرمول پایین | کم کردن ولتاژ بازر |
سیمکشی: مثبت باتری ← یک پایهی دکمه؛ پایهی دیگر دکمه ← پایهی بلند (مثبت) بازر؛ پایهی کوتاه بازر ← منفی باتری. این یک مدار سری است: دکمه، بازر و باتری در یک حلقه.
چطور کار میکند؟
- دکمه رها است: حلقه باز است و جریانی نمیگذرد. بازر ساکت است و باتری هم هیچ مصرفی ندارد؛ برای همین این زنگ ماهها با یک باتری کار میکند.
- دکمه فشرده میشود: حلقه بسته میشود و نوسانساز داخل بازر اکتیو، صفحهی صدا را چند هزار بار در ثانیه میلرزاند. بوق!
- دکمه رها میشود: حلقه دوباره باز و صدا قطع میشود.
فرمول کلیدی: مقاومت سری بازر
بازرهای اکتیو در ولتاژهای مختلف ساخته میشوند؛ بعضی فقط ۵ ولتاند و بعضی محدودهی پهنی مثل ۳ تا ۲۴ ولت دارند. اگر بازر ۵ ولتی داری و باتری ۹ ولت است، با یک مقاومت سری ولتاژ اضافه را برمیداری:
R = (Vbattery − Vbuzzer) ÷ Ibuzzer
برای بازر ۵ ولت با جریان حدود ۳۰ میلیآمپر: R = (9 − 5) ÷ 0.03 ≈ 133 Ω، یعنی مقاومت استاندارد ۱۵۰ اهم. این حساب تقریبی است، چون بازر مقاومت ثابتی ندارد؛ با مولتیمتر ولتاژ دو سر بازر را در حال بوق زدن بخوان و اگر خیلی کمتر از ۵ ولت بود، مقاومت را کوچکتر کن. راه تمیزتر، خریدن بازری با ولتاژ مناسب است.
در شبیهساز، پروژهی آمادهی زنگ خونه (Doorbell) همین مدار است: اجرا را بزن و دکمه را نگه دار. درسهای دکمهی فشاری و مدار صدا در دورهی برق هم همین دو قطعه را با تمرین معرفی میکنند.
بازر اکتیو یا پسیو؟ (Active vs Passive Buzzer)
دو بازری که از بیرون شبیه هماند، درونشان خیلی فرق دارد و برای زنگ ملودیدار این فرق مهم است:
| ویژگی | بازر اکتیو (Active Buzzer) | بازر پسیو (Passive Buzzer) |
|---|---|---|
| نوسانساز داخلی | دارد | ندارد |
| با ولتاژ ثابت DC | بوق یکنواخت با یک فرکانس ثابت | فقط یک «تیک» در لحظهی وصل شدن |
| با موج مربعی (tone) | صدای خشدار و نامرتب | همان نتی که فرکانسش را دادی |
| قطب | دارد؛ پایهی بلند مثبت | معمولاً علامت + دارد ولی با موج مربعی کار میکند |
| شکل ظاهری رایج | زیرش با رزین پوشیده و صاف است؛ اغلب برچسب دارد | زیرش برد سبز یا سیمپیچ پیداست |
| در آردوینو | digitalWrite | tone() و noTone() |
| بهترین کاربرد | زنگ ساده، هشدار، دزدگیر | زنگ ملودیدار، پیانو، آژیر با صدای متغیر |
دو قطعهی صدای دیگر هم هست: بلندگو (Speaker) با مقاومت حدود ۸ اهم که صدای بلندتر و طبیعیتری دارد ولی هیچوقت نباید مستقیم به پین وصل شود (یا یک مقاومت سری چندصد اهمی، یا یک ترانزیستور لازم دارد)، و پیزوی دیسکی (Piezo Disc) که شبیه بازر پسیو کار میکند و صدای نازکتری دارد.
مدار ۲: زنگ با چراغ (Doorbell with LED)
بعضیها صدای زنگ را نمیشنوند: کسی که هدفون دارد، سالمندی که کمشنوا شده یا اتاقی که از در دور است. یک LED موازی بازر این مشکل را حل میکند. سیمکشی:
- مثبت باتری ← دکمه.
- از پایهی دوم دکمه، دو شاخهی موازی: شاخهی اول بازر و شاخهی دوم مقاومت ۳۳۰ اهم و LED سفید.
- هر دو شاخه به منفی باتری برمیگردند.
محاسبه: جریان LED سفید (افت ولتاژ حدود ۳ ولت) روی ۹ ولت: (9 − 3) ÷ 330 ≈ 18 mA؛ نزدیک جریان معمول LED و امن. چون شاخهها موازیاند، هر کدام ولتاژ کامل باتری را میبیند و جریان کل، جمع جریان دو شاخه است. برای LED قرمز (افت حدود ۲ ولت) روی ۹ ولت، مقاومت ۴۷۰ اهم جریان را حدود ۱۵ میلیآمپر نگه میدارد.
در شبیهساز دو نسخهی آماده هست: زنگ در کامل (A complete doorbell) با یک LED سفید، و زنگ هوشمند (Smart doorbell) با دو LED قرمز و سبز کنار بازر. دکمه را نگه دار و با مولتیمتر جریان هر شاخه را بخوان تا ببینی جریان کل چطور بین شاخهها تقسیم میشود.
مدار ۳: ایدهی زنگ «دینگدانگ» با تایمر ۵۵۵
زنگ دینگدانگ دو صدای پشت سر هم دارد: یک صدای زیرتر وقتی دکمه را فشار میدهی و یک صدای بمتر که بعد از رها کردن چند ثانیه ادامه دارد. با یک تایمر ۵۵۵ در حالت نوسانساز (Astable) این را میشود ساخت. اینجا ایده و عددهایش را میگوییم تا روی بردبورد واقعی بسازی.
نوسانساز و فرمولش
۵۵۵ در حالت آستابل دو مقاومت R1 و R2 و یک خازن C دارد: R1 از مثبت به پایهی ۷، R2 از پایهی ۷ به پایههای ۶ و ۲ (که به هم وصلاند) و C از پایههای ۶ و ۲ به منفی. فرکانس خروجی پایهی ۳:
f = 1.44 ÷ ((R1 + 2 × R2) × C)
دینگ و دانگ با عدد
- دانگ (دکمه رها): R1 = R2 = ۱۰ کیلواهم و C = ۴۷ نانوفاراد:
f = 1.44 ÷ (30000 × 0.000000047) ≈ 1021 Hz. - دینگ (دکمه فشرده): دکمه از راه یک دیود و یک مقاومت ۱۰ کیلواهم (R3)، مثبت را به پایهی ۷ هم میرساند؛ یعنی R3 موازی R1 میشود و R1 مؤثر به ۵ کیلواهم میرسد:
f = 1.44 ÷ (25000 × 0.000000047) ≈ 1225 Hz. صدای زیرتر، تا وقتی دکمه فشرده است. - ادامهی صدا بعد از رها کردن: پایهی ۴ (ریست) با یک مقاومت ۱۰۰ کیلواهم به منفی کشیده شده تا ۵۵۵ در حالت عادی ساکت باشد. دکمه از راه دیود دوم، یک خازن ۲۲ میکروفاراد روی پایهی ۴ را شارژ میکند. بعد از رها کردن، خازن آرام از همان مقاومت ۱۰۰ کیلواهم خالی میشود (ثابت زمانی
τ = R × C = 100000 × 0.000022 = 2.2 s) و ۵۵۵ با صدای «دانگ» ادامه میدهد تا ولتاژ پایهی ۴ زیر آستانهی ریست برود؛ معمولاً چند ثانیه. - خروجی: پایهی ۳ به یک بازر پسیو، یا از راه یک خازن ۱۰۰ میکروفاراد و یک مقاومت کوچک به یک بلندگوی ۸ اهمی.
دو دیود نقش «یکطرفه» دارند: نمیگذارند خازن ریست از مسیر R3 خالی شود و نمیگذارند مسیرها در حالت رها روی هم اثر بگذارند. اگر مقدارها را عوض کنی، فرکانس را با همان فرمول دوباره حساب کن.
یک نکتهی واقعی: در حالت سکوت، ۵۵۵ معمولی (NE555) خودش چند میلیآمپر مصرف میکند و چون پایهی ۷ در حالت ریست به منفی وصل است، حدود ۱ میلیآمپر هم از R1 میگذرد. باتری ۹ ولت با این مصرف همیشگی چند روز تا یکیدو هفته دوام میآورد. برای زنگ باتریخور، نسخهی CMOS مثل TLC555 یا 7555 و یک R1 بزرگتر انتخاب بهتری است، یا کل مدار را فقط از راه دکمه تغذیه کن.
در شبیهساز، صدای چندصد هرتزی ۵۵۵ را نمیشنوی ولی خود نوسانساز را میبینی: درس چشمکزن بدون آردوینو و پروژهی بوق ۵۵۵ (555 beeper) که ۵۵۵ را با فرکانس پایین به یک بازر پسیو وصل کرده و بوقهای پشتسرهم میسازد. خازن یا مقاومتها را عوض کن و تغییر ریتم را ببین. همهی حالتهای ۵۵۵ در مدار تایمر ۵۵۵ آمده است.
مدار ۴: زنگ ملودیدار با آردوینو (Arduino Melody Doorbell)
با آردوینو هر ملودیای که بخواهی زنگ در میشود. این نسخه با فشار دکمه آهنگ معروف «زنگ ساعت وستمینستر» (Westminster Chimes) را مینوازد، همزمان یک LED را با هر نت روشن میکند، تا دکمه رها نشود دوباره نمینوازد، بین دو زنگ ۳ ثانیه فاصله میگذارد و تعداد زنگها را در سریال مانیتور میشمارد.
| قطعه | پایه | وصل به |
|---|---|---|
| کلید فشاری | دو پایهی قطری | پین ۲ و GND |
| بازر پسیو | مثبت / منفی | پین ۸ / GND |
| مقاومت ۲۲۰ اهم | دو سر | پین ۱۲ و آند LED |
| LED | کاتد (پایهی کوتاه) | GND |
// مدار زنگ اخبار ملودیدار با آردوینو (Melody Doorbell)
// دکمه بین پین 2 و GND؛ بازر پسیو: مثبت به پین 8 و منفی به GND
// LED با مقاومت 220 اهم روی پین 12
#define NOTE_G4 392
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
const int BUTTON_PIN = 2;
const int BUZZER_PIN = 8;
const int LED_PIN = 12;
// زنگ ساعت وستمینستر (Westminster Chimes)؛ 0 یعنی سکوت
int melody[] = {NOTE_E5, NOTE_C5, NOTE_D5, NOTE_G4, 0,
NOTE_G4, NOTE_D5, NOTE_E5, NOTE_C5};
int beats[] = {1, 1, 1, 2, 1,
1, 1, 1, 2};
const int NOTE_COUNT = 9;
const int BEAT_MS = 350;
const unsigned long COOLDOWN_MS = 3000; // فاصلهی کم بین دو زنگ
unsigned long lastRing = 0;
int rings = 0;
void playMelody() {
for (int i = 0; i < NOTE_COUNT; i++) {
int duration = beats[i] * BEAT_MS;
if (melody[i] > 0) {
tone(BUZZER_PIN, melody[i]);
digitalWrite(LED_PIN, HIGH);
}
delay(duration * 9 / 10);
noTone(BUZZER_PIN); // مکث کوتاه بین نتها
digitalWrite(LED_PIN, LOW);
delay(duration / 10);
}
}
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("zang amade ast");
}
void loop() {
if (digitalRead(BUTTON_PIN) == LOW) {
delay(20); // ضد لرزش
bool readyToRing = (rings == 0) || (millis() - lastRing > COOLDOWN_MS);
if (digitalRead(BUTTON_PIN) == LOW && readyToRing) {
rings++;
Serial.print("zang shomare ");
Serial.println(rings);
playMelody();
lastRing = millis();
}
while (digitalRead(BUTTON_PIN) == LOW) {
delay(10); // تا رها شدن دکمه صبر کن
}
}
}
کد چطور کار میکند؟
- دو آرایهی موازی:
melodyفرکانس هر نت وbeatsطولش را بر حسب «ضرب» نگه میدارد. خانهی i هر دو آرایه مال یک نت است. عدد ۰ در ملودی یعنی سکوت. - tone و noTone:
tone(پین، فرکانس)یک موج مربعی با همان فرکانس روی پین میسازد تا وقتیnoToneصدا زده شود. نود درصد طول هر نت صدا و ده درصد سکوت است تا دو نت همصدا پشت سر هم، یکی شنیده نشوند. - یک زنگ برای هر فشار: بعد از پخش، حلقهی
whileصبر میکند تا دکمه رها شود وCOOLDOWN_MSنمیگذارد کسی با فشارهای پشت سر هم زنگ را بیوقفه به صدا دربیاورد. - محدودیت tone: در آردوینو اونو
toneاز تایمر ۲ استفاده میکند؛ تا وقتی صدا پخش میشودanalogWriteروی پینهای ۳ و ۱۱ درست کار نمیکند و در هر لحظه فقط یک صدا پخش میشود.
برای عوض کردن آهنگ، فقط دو آرایه را عوض کن. فرکانس نتهای پرکاربرد (هرتز، گرد شده):
| نت | C4 (دو) | D4 (ر) | E4 (می) | F4 (فا) | G4 (سل) | A4 (لا) | B4 (سی) | C5 (دو) | D5 | E5 |
|---|---|---|---|---|---|---|---|---|---|---|
| فرکانس | 262 | 294 | 330 | 349 | 392 | 440 | 494 | 523 | 587 | 659 |
در شبیهساز
در مود آردوینو، نمونهی زنگ در (Doorbell) دقیقاً همین سیمکشی را دارد: دکمه روی پین ۲ و بازر روی پین ۸، با یک کد دوصدایی ساده (۶۶۰ و ۵۲۰ هرتز). کد این مقاله را جای کد نمونه بگذار، یک LED با مقاومت ۲۲۰ اهم روی پین ۱۲ اضافه کن و اجرا را بزن؛ صدای بازر شبیهساز از بلندگوی کامپیوترت پخش میشود. نمونهی ملودی با بازر هم یک آهنگ کامل با همین روش آرایه دارد. درسهای صدا و موسیقی و جعبه موسیقی قدمبهقدم tone و آرایهی نتها را یاد میدهند. آردوینو اونو، بازرها و دکمه رایگاناند.
نسخهها و مدارهای مشابه
| # | اسم فارسی | English | ایده |
|---|---|---|---|
| ۱ | زنگ ساده | Simple Doorbell | باتری، دکمه و بازر اکتیو |
| ۲ | زنگ با چراغ برای کمشنواها | Visual Doorbell | LED موازی بازر، یا LED چشمکزن با آردوینو |
| ۳ | زنگ دینگدانگ | Ding-Dong Chime (555) | ۵۵۵ با دو فرکانس و خازن ریست |
| ۴ | زنگ ملودیدار | Melody Doorbell | آردوینو، tone() و آرایهی نتها |
| ۵ | زنگ بیسیم | Wireless Doorbell (433 MHz) | یک فرستندهی رادیویی کنار دکمه و یک گیرنده کنار بازر |
| ۶ | زنگ با سنسور حرکت | Motion-Sensor Chime | سنسور حرکت PIR جای دکمه؛ با نزدیک شدن کسی به در، زنگ خودش میخورد |
| ۷ | زنگ با شمارندهی مراجعه | Doorbell with Visitor Counter | هر زنگ یک عدد روی سونسگمنت؛ بیشتر در مدار شمارنده با سونسگمنت |
| ۸ | دکمهی مسابقه | Quiz Buzzer | دو دکمه، هر کدام با چراغ خودش؛ اولین کسی که بزند معلوم میشود |
| ۹ | پیانوی دکمهای | Button Piano | هر دکمه یک نت؛ بیشتر در پیانوی الکترونیکی با آردوینو |
| ۱۰ | آژیر | Siren | فرکانسی که مدام بالا و پایین میرود؛ بیشتر در مدار آژیر |
| ۱۱ | دزدگیر ساده | Simple Alarm | کلید روی در و بازر؛ بیشتر در مدار دزدگیر ساده |
اشتباههای رایج در مدار زنگ
| اشتباه | نشانه | راهحل |
|---|---|---|
| دکمهی چرخیده روی بردبورد | زنگ بیوقفه صدا میدهد | سیمها به دو پایهی قطری دکمه |
| بازر اکتیو برعکس | هیچ صدایی نیست | پایهی بلند به سمت مثبت |
| بازر پسیو با ولتاژ ثابت | فقط یک «تیک» | tone() یا نوسانساز ۵۵۵ |
| بازر اکتیو با tone() | صدای خشدار و نامفهوم | برای ملودی بازر پسیو بگذار |
| دکمه بدون INPUT_PULLUP | زنگ خودبهخود به صدا درمیآید | INPUT_PULLUP و دکمه بین پین و GND |
| ملودی با نگه داشتن دکمه تکرار میشود | زنگ بیپایان | صبر تا رها شدن دکمه و فاصلهی زمانی |
| بلندگوی ۸ اهمی مستقیم روی پین | آردوینو ریست میشود یا پین داغ | مقاومت سری یا ترانزیستور |
| پایهی ریست ۵۵۵ آزاد | زنگ ۵۵۵ گاهی خودش صدا میدهد | پایهی ۴ را با مقاومت به منفی یا مثبت ببند |
| LED بدون مقاومت | LED زود میسوزد | ۳۳۰ اهم روی ۹ ولت، ۲۲۰ اهم روی ۵ ولت |
| analogWrite روی پین ۳ یا ۱۱ همزمان با tone | نور LED درست کم و زیاد نمیشود | پین PWM دیگری مثل ۵، ۶، ۹ یا ۱۰ |
نکتههای ایمنی
- همهی مدارهای این مقاله کمولتاژند (باتری، USB یا آداپتور تا ۱۲ ولت). به سیمکشی زنگ خانه دست نزن؛ ممکن است روی برق ۲۲۰ ولت باشد.
- بازرها و پیزوها نزدیک گوش واقعاً بلندند. بازر را جلوی گوش کسی، مخصوصاً بچههای کوچک، به صدا درنیاور.
- اگر دکمه را بیرون در نصب میکنی، سیم بلند تا داخل خانه فقط ولتاژ کم باتری را حمل میکند؛ با این حال سیم را محکم و دور از سیمهای برق شهر ببر.
- قبل از جابهجا کردن سیمها تغذیه را قطع کن و باتری ۹ ولت را دور از سکه و کلید در جیب نگه دار؛ اتصال کوتاه دو قطبش آن را داغ میکند.
سؤالهای رایج
ساده ترین مدار زنگ اخبار چیست؟
یک باتری، یک کلید فشاری و یک بازر اکتیو که سری بسته شوند. تا دکمه را نگه داری، مدار کامل است و بازر صدا میدهد. اگر ولتاژ باتری از ولتاژ نامی بازر بیشتر است، بازری با ولتاژ مناسب بخر یا یک مقاومت سری کوچک بگذار.
بازر اکتیو و پسیو چه فرقی دارند؟
بازر اکتیو مدار نوسانساز داخلی دارد و با یک ولتاژ ثابت DC بوق یکنواخت میزند. بازر پسیو نوسانساز ندارد و باید با یک موج مربعی، مثلاً با tone() آردوینو، راهش بیندازی؛ در عوض هر نتی را مینوازد و برای زنگ ملودیدار مناسبتر است.
چطور با آردوینو زنگ ملودی دار بسازم؟
دکمه را بین پین ۲ و GND ببند و با INPUT_PULLUP بخوان، بازر پسیو را به پین ۸ وصل کن و نتها را در یک آرایه بنویس. با هر فشار دکمه، در یک حلقه برای هر نت tone را با فرکانس آن نت صدا بزن، به اندازهی طول نت صبر کن و بعد noTone بزن.
میتوانم زنگ اخبار خانه را با این مدار عوض کنم؟
نه بدون برقکار. سیمکشی زنگ خیلی از خانهها مستقیم روی برق ۲۲۰ ولت یا ترانس داخل تابلو برق است. مدارهای این مقاله کمولتاژند و برای یادگیری، اتاق بچه یا در کمد ساخته شدهاند.
چرا زنگ آردوینو تا وقتی دکمه را نگه داشتهام تکرار میشود؟
چون loop هر بار دکمه را فشرده میبیند و ملودی را دوباره پخش میکند. بعد از پخش، با یک حلقهی while صبر کن تا دکمه رها شود و یک فاصلهی چندثانیهای بین دو زنگ بگذار.