🧲 مدار رله (Relay Driver): راهاندازی رله با ترانزیستور و آردوینو
میخواهی آردوینو یک لامپ، پمپ آب کوچک یا پنکه را روشن و خاموش کند؛ باری که جریانش خیلی بیشتر از توان یک پین است یا با باتری و آداپتور جداگانه کار میکند. راه کلاسیکش مدار رله است: کلیدی مکانیکی که یک آهنربای الکتریکی آن را میزند. ولی اگر سیمپیچ رله را مستقیم به پین آردوینو ببندی، یا رله نمیچسبد، یا پین آسیب میبیند و آردوینو بیدلیل ریست میشود. این راهنما مدار راهاندازی رله (Relay Driver) را قطعهبهقطعه میسازد: ترانزیستور NPN، مقاومت بیس با عدد دقیق، دیود هرزگرد، ماژول رله در برابر رلهی تنها، پایههای NO و NC و COM و در آخر کد کامل آردوینو. همه را اول در شبیهساز امتحان میکنیم؛ برق شهر را فقط در حد تئوری میگوییم.
رله چیست و درونش چه خبر است؟
رله (Relay) دو بخش دارد که هیچ سیمی بینشان نیست:
- سیمپیچ (Coil): چند صد دور سیم مسی نازک دور یک هستهی آهنی. وقتی جریان از آن میگذرد، هسته آهنربا میشود.
- کنتاکتها (Contacts): یک تیغهی فلزی متحرک (Armature) که فنر آن را سر جایش نگه میدارد. آهنربا تیغه را میکشد؛ تیغه از یک کنتاکت جدا میشود و به کنتاکت دیگر میچسبد. صدای «تِق» رله همین لحظه است.
چون سیمپیچ و کنتاکتها فقط از راه میدان مغناطیسی به هم مربوطاند، رله دو مدار را کاملاً از هم جدا (Isolation) نگه میدارد: مدار فرمان ۵ ولتی آردوینو و مدار قدرتی که میتواند ولتاژ و جریان خیلی بیشتری داشته باشد. این اصطلاحها را روی بدنه و دیتاشیت رله میبینی:
| اصطلاح | English | معنی | برای رلهی SRD-05VDC |
|---|---|---|---|
| ولتاژ سیمپیچ | Coil Voltage | ولتاژی که رله برای آن ساخته شده | ۵ ولت DC |
| مقاومت سیمپیچ | Coil Resistance | جریان سیمپیچ از روی آن حساب میشود | حدود ۷۰ اهم |
| ولتاژ چسبیدن | Pick-up / Must-operate Voltage | بالاتر از این ولتاژ، رله حتماً میچسبد | حداکثر ۷۵٪ ولتاژ نامی (۳٫۷۵ ولت) |
| ولتاژ رها شدن | Drop-out / Must-release Voltage | پایینتر از این ولتاژ، تیغه حتماً رها میشود | حداقل ۱۰٪ ولتاژ نامی |
| مشترک | COM (Common) | خود تیغهی متحرک؛ همیشه به یکی از دو کنتاکت وصل است | — |
| معمولاً باز | NO (Normally Open) | فقط وقتی سیمپیچ برق دارد به COM وصل است | — |
| معمولاً بسته | NC (Normally Closed) | وقتی سیمپیچ بیبرق است به COM وصل است | — |
| ظرفیت کنتاکت | Contact Rating | بیشترین ولتاژ و جریان مجاز روی کنتاکت | روی بدنه، مثلاً 10A 30VDC |
رایجترین رلهی آموزشی همین رلهی ۵ ولت آبیرنگ SRD-05VDC است که روی بیشتر ماژولهای رله هم نشسته؛ عددهای این مقاله برای همین رله است.
چرا پین آردوینو نمیتواند رله را مستقیم راه بیندازد؟
سه دلیل دارد و هر کدام بهتنهایی کافی است:
- جریان زیاد: سیمپیچ ۷۰ اهمی روی ۵ ولت حدود
5 ÷ 70 ≈ 71 mAجریان میخواهد. پین آردوینو اونو برای ۲۰ میلیآمپر توصیه شده و حد مطلقش ۴۰ میلیآمپر است. تازه خود پین خروجی حدود ۲۵ اهم مقاومت داخلی دارد؛ پس به سیمپیچ فقط5 × 70 ÷ (70 + 25) ≈ 3.7 Vمیرسد که از ولتاژ چسبیدن این رله (۳٫۷۵ ولت) هم کمتر است. نتیجه: رله گاهی میچسبد و گاهی نه، و پین با بیش از ۵۰ میلیآمپر، بالاتر از حد مجازش کار میکند. - ولتاژ برگشتی سیمپیچ (Inductive Kickback): سیمپیچ یک سلف (Inductor) است و نمیگذارد جریانش یکباره صفر شود. لحظهای که مدار را قطع میکنی، سیمپیچ برای ادامه دادن جریان یک جهش ولتاژ برعکس میسازد که میتواند به دهها یا صدها ولت برسد؛ خیلی بیشتر از تحمل پین یا ترانزیستور.
- افت تغذیه و نویز: کشیدن ناگهانی ۷۰ میلیآمپر از ریل ۵ ولت ولتاژ را لحظهای پایین میکشد و جهش ولتاژ هم نویز میسازد؛ علامتش ریست شدنهای بیدلیل آردوینو است.
راهحل هر سه یکی است: یک ترانزیستور که مثل کلید، جریان بزرگ سیمپیچ را با یک جریان کوچک از پین قطع و وصل کند، و یک دیود که جهش ولتاژ را بیخطر کند. اگر هنوز با کار ترانزیستور بهعنوان کلید راحت نیستی، اول ترانزیستور چطور کار میکند را بخوان؛ اینجا فقط همان بخشی را لازم داریم که به رله مربوط است.
قطعههای مدار رله با ترانزیستور
| # | اسم فارسی | English | مقدار یا مدل | کارش در مدار |
|---|---|---|---|---|
| ۱ | رله ۵ ولت | 5V Relay | SRD-05VDC، سیمپیچ حدود ۷۰ اهم | کلید مکانیکی بار |
| ۲ | ترانزیستور NPN | NPN Transistor | 2N2222 یا BC337 (BC547 فقط برای رلههای کممصرف) | کلید برقی سیمپیچ |
| ۳ | مقاومت بیس | Base Resistor | ۱ کیلواهم | محدود کردن جریان بیس و پین |
| ۴ | مقاومت پایینکش بیس (اختیاری) | Pull-down Resistor | ۱۰ کیلواهم | خاموش نگه داشتن ترانزیستور وقتی پین هنوز تنظیم نشده |
| ۵ | دیود هرزگرد | Flyback Diode | 1N4007 یا 1N4148 | خنثی کردن جهش ولتاژ سیمپیچ |
| ۶ | LED نشانگر با مقاومت (اختیاری) | Indicator LED | LED و ۳۳۰ اهم، موازی سیمپیچ | نشان دادن روشن بودن سیمپیچ |
| ۷ | آردوینو اونو | Arduino Uno | پین ۷ برای فرمان، پین ۲ برای دکمه | مغز مدار |
| ۸ | کلید فشاری | Push Button | هر کلید دو یا چهارپایه | فرمان دستی |
| ۹ | منبع و بار | Load Supply & Lamp | مثلاً باتری ۹ ولت و یک LED، یا آداپتور ۱۲ ولت و لامپ ۱۲ ولتی | مداری که رله قطع و وصلش میکند |
نقشهی مدار، اتصال به اتصال
شماتیک این مدار ساده است. با کلمهها، از مدار فرمان شروع میکنیم و به مدار بار میرسیم:
| از | به | چرا |
|---|---|---|
| پین ۷ آردوینو | مقاومت ۱ کیلواهم، بعد بیس (B) ترانزیستور | جریان بیس را محدود میکند |
| بیس | مقاومت ۱۰ کیلواهم، بعد GND (اختیاری) | در لحظهی روشن شدن و آپلود، ترانزیستور خاموش میماند |
| امیتر (E) | GND | مسیر برگشت جریان سیمپیچ |
| 5V | سر اول سیمپیچ رله | تغذیهی سیمپیچ |
| سر دوم سیمپیچ | کلکتور (C) | ترانزیستور «سمت منفی» سیمپیچ را قطع و وصل میکند |
| کاتد دیود (سمت نوار) | 5V، کنار سر اول سیمپیچ | دیود موازی سیمپیچ و برعکس بسته میشود |
| آند دیود | کلکتور، کنار سر دوم سیمپیچ | مسیر جریان سیمپیچ در لحظهی قطع |
| COM رله | مثبت منبع بار | تیغهی متحرک |
| NO رله | مثبت لامپ؛ منفی لامپ به منفی منبع بار | لامپ فقط با فرمان روشن میشود |
به این چیدمان «کلید سمت پایین» (Low-side Switch) میگویند، چون ترانزیستور بین بار و زمین نشسته؛ برای NPN بهترین جا همین است. اگر سیمپیچ را از منبع جدایی (مثلاً ۱۲ ولت) تغذیه کنی، GND آن منبع باید به GND آردوینو وصل باشد.
طرز کار مدار رله، قدمبهقدم
- پین LOW است: جریانی به بیس نمیرسد، ترانزیستور و سیمپیچ خاموشاند. فنر تیغه را روی NC نگه داشته و لامپی که روی NO بستهای خاموش است.
- پین HIGH میشود: حدود ۴ میلیآمپر از مقاومت ۱ کیلواهم به بیس میرود. ترانزیستور کاملاً روشن (اشباع، Saturation) میشود و ولتاژ کلکتور-امیتر به حدود ۰٫۲ ولت میرسد.
- سیمپیچ برق میگیرد: حدود ۷۰ میلیآمپر از سیمپیچ و ترانزیستور به GND میرود. هسته آهنربا میشود، تیغه را میکشد و «تِق»: COM از NC جدا و به NO وصل میشود و لامپ روشن میشود.
- پین دوباره LOW میشود: ترانزیستور خاموش میشود، ولی جریان سیمپیچ نمیخواهد یکباره قطع شود و ولتاژ کلکتور شروع به بالا رفتن میکند.
- دیود وارد عمل میشود: همین که کلکتور حدود ۰٫۷ ولت از 5V بالاتر برود، دیود هدایت میکند و جریان سیمپیچ در حلقهی کوچک «سیمپیچ، دیود، سیمپیچ» میچرخد تا انرژیاش تمام شود. ولتاژ کلکتور هیچوقت از حدود ۵٫۷ ولت بالاتر نمیرود. فنر تیغه را به NC برمیگرداند و لامپ خاموش میشود.
محاسبهی مقاومت بیس: مثال عددی
سه فرمول، پشت سر هم:
- جریان سیمپیچ:
Ic = (Vcc − Vce(sat)) ÷ Rcoil - جریان بیس لازم:
Ib = Ic ÷ βforced - مقاومت بیس:
Rb = (Vpin − Vbe) ÷ Ib
βforced یا «بهرهی تحمیلی» را عمداً خیلی کمتر از بهرهی واقعی ترانزیستور (hFE) میگیریم، معمولاً ۱۰ تا ۲۰، تا ترانزیستور با همهی تلرانسها کاملاً اشباع شود؛ ترانزیستور نیمهروشن داغ میشود و ولتاژ کافی به سیمپیچ نمیرساند.
مثال: رلهی ۵ ولت با سیمپیچ ۷۰ اهم، ترانزیستور 2N2222، فرمان از پین ۵ ولتی آردوینو اونو.
Ic = (5 − 0.2) ÷ 70 ≈ 0.069 A، یعنی حدود ۶۹ میلیآمپر.- با βforced برابر ۱۵:
Ib = 69 ÷ 15 ≈ 4.6 mA. Rb = (5 − 0.7) ÷ 0.0046 ≈ 935 Ω. نزدیکترین مقدار استاندارد ۱ کیلواهم است.- بررسی: با ۱ کیلواهم،
Ib = 4.3 ÷ 1000 = 4.3 mAو βforced حدود ۱۶ میشود. بهرهی 2N2222 در این جریان بیش از ۷۵ است، پس حاشیهی امن زیادی داریم. پین آردوینو هم فقط ۴٫۳ میلیآمپر میدهد؛ کمتر از یکچهارم حد توصیهشده. - گرمای ترانزیستور:
0.2 V × 69 mA ≈ 14 mW؛ عملاً سرد میماند.
همین حساب را برای چند حالت رایج دیگر هم انجام دادهایم (با βforced حدود ۱۵):
| رله و تغذیهی سیمپیچ | مقاومت سیمپیچ | جریان سیمپیچ | ولتاژ فرمان | مقاومت بیس |
|---|---|---|---|---|
| ۵ ولت (SRD-05VDC) روی 5V آردوینو | حدود ۷۰ اهم | حدود ۷۰ میلیآمپر | ۵ ولت (اونو، نانو) | ۱ کیلواهم |
| ۱۲ ولت (SRD-12VDC) با آداپتور ۱۲ ولت جدا | حدود ۴۰۰ اهم | حدود ۳۰ میلیآمپر | ۵ ولت | ۲٫۲ کیلواهم |
| ۵ ولت روی 5V، با برد ۳٫۳ ولتی | حدود ۷۰ اهم | حدود ۷۰ میلیآمپر | ۳٫۳ ولت | ۵۶۰ اهم |
| رلهی شبیهساز روی باتری ۹ ولت | ۷۰ اهم | حدود ۱۲۵ میلیآمپر | ۹ ولت از راه دکمه | ۱ کیلواهم |
در مدار ۱۲ ولتی یادت باشد GND آداپتور به GND آردوینو وصل شود و دیود موازی سیمپیچ این بار به ۱۲ ولت برود، نه به 5V.
دیود هرزگرد (Flyback Diode): کوچکترین قطعه، مهمترین کار
در حالت عادی دیود هرزگرد هیچ کاری نمیکند: کاتدش به مثبت است و آندش به سمت کلکتور، پس در بایاس معکوس است و جریانی از آن نمیگذرد. فقط در لحظهی قطع، که سیمپیچ قطب ولتاژش را برعکس میکند، دیود هدایت میکند و جریان سیمپیچ را در یک حلقهی بسته خالی میکند. به همین خاطر به آن دیود «آزادگرد» یا «هرزگرد» (Freewheeling Diode) هم میگویند.
- کدام دیود؟ هر دیود معمولی که جریانش از جریان سیمپیچ بیشتر باشد. 1N4007 (یک آمپر) همیشه جواب میدهد؛ 1N4148 کوچک هم برای رلههای ۵ ولت کافی است.
- هزینهاش چیست؟ رها شدن رله چند میلیثانیه کندتر میشود. اگر مهم باشد، یک دیود زنر سری با دیود هرزگرد میگذارند.
- اگر برعکس ببندی: لحظهای که ترانزیستور روشن شود، دیود در جهت درست بین 5V و کلکتور قرار میگیرد و سیمپیچ را دور میزند؛ یعنی اتصال کوتاه. ترانزیستور و دیود داغ میشوند و ممکن است بسوزند.
موتور DC هم یک سیمپیچ است و دقیقاً همین دیود را لازم دارد؛ نمونهی بدون کدش در پروژهی دیود محافظ موتور (Motor with a Flyback Diode) آماده است.
ماژول رله یا رلهی تنها؟
ماژول رله (Relay Module) همان مدار این مقاله است که روی یک برد کوچک لحیم شده: رله، ترانزیستور یا اپتوکوپلر، دیود هرزگرد، یک LED نشانگر و ترمینال پیچی برای COM و NO و NC.
| ویژگی | رلهی تنها (Bare Relay) | ماژول رله (Relay Module) |
|---|---|---|
| قطعههای جانبی | ترانزیستور، مقاومت و دیود را خودت میبندی | همه روی برد هست |
| پایههای فرمان | دو سر سیمپیچ | VCC، GND و IN |
| جریانی که از پین میکشد | به مقاومت بیس تو بستگی دارد | چند میلیآمپر |
| منطق فرمان | در این مدار با HIGH روشن میشود | بعضی با HIGH؛ خیلی از مدلهای اپتوکوپلردار با LOW (Active-Low) |
| جداسازی کامل | با منبع جدا برای سیمپیچ | در مدلهای اپتوکوپلردار، با برداشتن جامپر JD-VCC و دادن منبع جدا به سیمپیچ |
| مناسب برای | یاد گرفتن، طراحی برد مدار چاپی | پروژهی سریع و تمیز |
در ماژول Active-Low، پین LOW رله را روشن میکند؛ پس اگر پین را قبل از pinMode روی HIGH نگذاری، رله در لحظهی روشن شدن آردوینو یک بار میپرد. کد این مقاله این را با ثابت ACTIVE_LOW حل کرده است. نکتههای بیشتر ماژول رله در ماژول رله با آردوینو در ووکوی فارسی آمده است.
NO، NC و COM: کدام را کجا وصل کنم؟
| میخواهی… | سیمکشی | مثال |
|---|---|---|
| بار فقط با فرمان روشن شود | COM و NO | چراغ، پمپ آبیاری، فن |
| بار همیشه روشن باشد و با فرمان قطع شود | COM و NC | قطع پمپ وقتی مخزن پر شد |
| بین دو بار جابهجا شوی | COM مشترک، NO به یکی و NC به دیگری | چراغ سبز «آزاد» و قرمز «مشغول» |
| با خاموش شدن آردوینو، بار هم امن خاموش شود | COM و NO | گرمکن یا هر چیزی که نباید بیصاحب روشن بماند |
فرق NO و NC را در دو پروژهی بدون کد کنار هم ببین: در رله با دکمه (Relay on a Button) دکمه چراغ را از راه NO روشن میکند و در رله در حالت NC (Relay on NC) همان دکمه چراغ را خاموش میکند.
روشن کردن یک لامپ با رله
فرض کن یک لامپ ۱۲ ولت و ۶ واتی داری که با آداپتور ۱۲ ولت کار میکند. جریانش I = P ÷ V = 6 ÷ 12 = 0.5 A است؛ خیلی کمتر از ظرفیت کنتاکت رله. سیمکشی سمت بار این است: مثبت آداپتور به COM، NO به یک سر لامپ و سر دیگر لامپ به منفی آداپتور. چند نکتهی واقعی:
- جداسازی واقعی است: سمت کنتاکت هیچ اتصالی به GND آردوینو لازم ندارد. پروژهی رله و چراغ جدا (Relay Lamp) دقیقاً همین را نشان میدهد: چراغ با باتری خودش و بدون GND مشترک.
- ظرفیت DC کمتر از AC است: قطع کردن جریان مستقیم جرقهی ماندگارتری روی کنتاکت میسازد؛ برای همین عدد DC روی بدنه را ملاک بگیر و حاشیه بگذار.
- جریان هجومی: لامپ رشتهای سرد و موتور در لحظهی روشن شدن چند برابر جریان عادیشان را میکشند؛ رله را درشتتر از جریان عادی بار انتخاب کن.
ساخت مدار رله در شبیهساز تینکرکد فارسی
بدون کد، در مود «ساده»
درس رله: کلید آهنربایی در دورهی برق، رله و پایههایش را با زبان ساده معرفی میکند و پروژهی چراغ امنیتی (Security Light) یک رله را با سوییچ ریدی روی در به کار میبرد. بعد، درایور ترانزیستوری را خودت ببند؛ کلید فشاری جای پین آردوینو را میگیرد:
- یک باتری ۹ ولت، یک کلید فشاری، یک مقاومت (روی ۱ کیلواهم تنظیمش کن)، یک ترانزیستور NPN، یک رله و یک دیود بکش.
- مثبت باتری به یک پایهی دکمه؛ پایهی دیگر دکمه به مقاومت و مقاومت به بیس (B).
- مثبت باتری به C+ رله؛ C− رله به کلکتور (C)؛ امیتر (E) به منفی باتری.
- دیود: آند (A) به C− و کاتد (K) به C+.
- COM رله به مثبت باتری؛ NO به یک مقاومت ۳۳۰ اهم و LED زرد؛ NC به یک مقاومت ۳۳۰ اهم و LED قرمز؛ کاتد هر دو LED به منفی.
- اجرا را بزن: LED قرمز روشن است. دکمه را نگه دار: رله میچسبد، قرمز خاموش و زرد روشن میشود. جریان سیمپیچ در این حالت حدود ۱۲۰ میلیآمپر است؛ با یک مولتیمتر در حالت آمپر، سری با سیمپیچ، خودت بخوانش.
حالا آزمایش کن: مقاومت بیس را ۴۷ کیلواهم کن. جریان بیس آنقدر کم میشود که سیمپیچ فقط حدود ۱۷ میلیآمپر میگیرد و رله نمیچسبد (رلهی شبیهساز از حدود ۵۰ میلیآمپر میچسبد)؛ عیبیاب «چرا کار نمیکند؟» هم هشدار میدهد که جریان سیمپیچ رله برای جذب کافی نیست. این همان اشتباه رایج «مقاومت بیس خیلی بزرگ» است. پایهی این آزمایشها درس ترانزیستور: کلید برقی است. مود ساده و همهی قطعههایش رایگان است و بچهها از حدود ۷ سالگی میتوانند با آن کار کنند.
با کد، در مود «آردوینو»
در مود آردوینو، قطعهی رله یک ماژول است با پایههای VCC، GND و IN؛ یعنی ترانزیستور و دیود از قبل روی آن هست و با HIGH روشن میشود. نمونهی رله و چراغ جدا و درس رله: کلید برقی بزرگ از همین ماژول استفاده میکنند و IN آن روی پین ۷ است؛ همان پینی که کد زیر فرض کرده. اگر میخواهی ترانزیستور و دیود هرزگرد را کنار آردوینو ببینی، نمونهی موتور با ترانزیستور همین درایور را برای یک موتور بسته است. آردوینو اونو، رله و این نمونهها رایگاناند و برای حدود ۱۰ سال به بالا مناسباند.
نسخهی آردوینو: کلید رله با دکمه و خاموشی خودکار
این برنامه با هر فشار دکمه رله را روشن یا خاموش میکند، لرزش دکمه را با millis فیلتر میکند و اگر رله یک دقیقه روشن بماند، خودش خاموشش میکند (مثل چراغ راهپلهی تایمردار). سیمکشی:
| قطعه | پایه | وصل به |
|---|---|---|
| مقاومت ۱ کیلواهم | دو سر | پین ۷ و بیس ترانزیستور |
| مقاومت ۱۰ کیلواهم (اختیاری) | دو سر | بیس و GND |
| ترانزیستور NPN | امیتر | GND |
| سیمپیچ رله | سر اول / سر دوم | 5V / کلکتور |
| دیود 1N4007 | کاتد (نوار) / آند | 5V / کلکتور |
| کلید فشاری | دو پایهی قطری | پین ۲ و GND |
| LED روی برد | — | پین ۱۳ (وضعیت رله) |
| COM و NO رله | — | مثبت منبع بار و مثبت لامپ |
با ماژول رله سیمکشی کوتاهتر است: VCC به 5V، GND به GND و IN به پین ۷. کد برای هر دو یکی است.
// مدار رله با ترانزیستور و آردوینو (Relay Driver)
// پین 7 → مقاومت 1k → بیس NPN؛ امیتر → GND؛ سیمپیچ بین 5V و کلکتور
// دیود 1N4007 موازی سیمپیچ (نوار سمت 5V)؛ دکمه بین پین 2 و GND
const int RELAY_PIN = 7;
const int BUTTON_PIN = 2;
const int LED_PIN = 13; // LED روی برد: وضعیت رله
const bool ACTIVE_LOW = false; // ماژولی که با LOW روشن میشود: true
const unsigned long AUTO_OFF_MS = 60000; // بعد از یک دقیقه خودکار خاموش
const unsigned long DEBOUNCE_MS = 30;
bool relayOn = false;
int lastReading = HIGH;
int stableState = HIGH;
unsigned long lastChange = 0;
unsigned long onSince = 0;
void setRelay(bool on) {
relayOn = on;
bool level = on;
if (ACTIVE_LOW) level = !on;
digitalWrite(RELAY_PIN, level ? HIGH : LOW);
digitalWrite(LED_PIN, on ? HIGH : LOW);
if (on) onSince = millis();
Serial.println(on ? "rele: ROSHAN (COM-NO)" : "rele: KHAMOOSH (COM-NC)");
}
void setup() {
digitalWrite(RELAY_PIN, ACTIVE_LOW ? HIGH : LOW); // قبل از OUTPUT: بدون تق اضافه
pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
Serial.begin(9600);
setRelay(false);
}
void loop() {
int reading = digitalRead(BUTTON_PIN);
if (reading != lastReading) { // لبه یا لرزش کلید
lastChange = millis();
lastReading = reading;
}
if (millis() - lastChange > DEBOUNCE_MS && reading != stableState) {
stableState = reading;
if (stableState == LOW) setRelay(!relayOn); // هر فشار: عوض کردن وضعیت
}
if (relayOn && millis() - onSince > AUTO_OFF_MS) {
setRelay(false); // خاموشی خودکار
}
}
سه نکتهی این کد: سطح پین قبل از pinMode تنظیم میشود تا رلهی Active-Low در لحظهی روشن شدن نپرد؛ دکمه فقط وقتی شمرده میشود که ۳۰ میلیثانیه ثابت مانده باشد، وگرنه لرزش کلید یک فشار را دو فشار میکند؛ و برنامه هیچجا delay ندارد، پس خاموشی خودکار و خواندن دکمه همزمان کار میکنند. در شبیهساز، نمونهی رله و چراغ جدا را باز کن، یک دکمه بین پین ۲ و GND اضافه کن و این کد را جای کد نمونه بگذار.
نسخهها و مدارهای مشابه
| # | اسم فارسی | English | فرقش با مدار این مقاله |
|---|---|---|---|
| ۱ | درایور رله با ماسفت | MOSFET Relay Driver | یک ماسفت N منطقی مثل IRLZ44N جای ترانزیستور؛ گیت تقریباً جریان نمیکشد. مقاومت ۱۰۰ تا ۲۲۰ اهم سری گیت و ۱۰ کیلواهم از گیت به GND. |
| ۲ | درایور دارلینگتون ULN2003 | ULN2003 Darlington Driver | هفت درایور در یک تراشه با دیودهای هرزگرد داخلی؛ برای چند رله با هم. |
| ۳ | ماژول رله با اپتوکوپلر | Optocoupler Relay Module | جداسازی نوری بین آردوینو و ترانزیستور رله؛ معمولاً Active-Low. |
| ۴ | رلهی حالت جامد | Solid State Relay (SSR) | بیصدا و بدون قطعهی متحرک؛ نوع AC فقط بار AC را قطع و وصل میکند. |
| ۵ | رلهی چفتشونده | Latching Relay | با یک پالس کوتاه وضعیتش میماند و برای نگه داشتن برق مصرف نمیکند. |
| ۶ | مدار خودنگهدار (استارت-استاپ) | Self-holding / Start-Stop Circuit | کنتاکت NO موازی دکمهی استارت؛ رله بعد از رها کردن دکمه روشن میماند تا دکمهی استاپ. |
| ۷ | رلهی تأخیری با ۵۵۵ | 555 Delay Relay | یک ۵۵۵ مونواستابل جای آردوینو؛ بیشتر در مدار تایمر ۵۵۵. |
| ۸ | چراغ اتوماتیک با رله | LDR Relay Light | یک LDR و ترانزیستور جای پین آردوینو؛ بیشتر در مدار چراغ اتوماتیک با LDR. |
| ۹ | چپگرد و راستگرد موتور با دو رله | Relay H-Bridge | دو رلهی تبدیلی جهت جریان موتور را عوض میکنند؛ بیشتر در مدار پل اچ. |
اشتباههای رایج در مدار رله
| اشتباه | نشانه | راهحل |
|---|---|---|
| رله مستقیم روی پین | رله نمیچسبد یا آردوینو ریست میشود | ترانزیستور و دیود، یا ماژول رله |
| بدون دیود هرزگرد | بعد از چند بار قطع و وصل، ترانزیستور خراب میشود | دیود موازی سیمپیچ، کاتد به مثبت |
| دیود برعکس | با فرمان روشن، ترانزیستور و دیود داغ میشوند | نوار دیود سمت مثبت |
| بیس بدون مقاومت | پین یا ترانزیستور میسوزد | مقاومت ۱ کیلواهم سری بیس |
| مقاومت بیس خیلی بزرگ | رله «وزوز» میکند یا نمیچسبد | با فرمول بالا دوباره حساب کن |
| پایههای ترانزیستور جابهجا | هیچ اتفاقی نمیافتد | ترتیب پایهها را از دیتاشیت بخوان؛ 2N2222 و BC547 فرق دارند |
| GND منبع سیمپیچ جدا از GND آردوینو | رله با منبع ۱۲ ولت کار نمیکند | دو GND را به هم وصل کن |
| ماژول Active-Low با منطق برعکس | همهچیز برعکس کار میکند | ثابت ACTIVE_LOW را true کن |
| BC547 برای رلهی پرمصرف | ترانزیستور داغ میشود | 2N2222 یا BC337 با ظرفیت چند صد میلیآمپر |
نکتههای ایمنی؛ برق شهر فقط در حد تئوری
در تئوری، رله در مدار برق شهر فقط سیم فاز را قطع و وصل میکند و نول مستقیم به بار میرود؛ مدار هم فیوز، جعبهی عایق و فاصلهی کافی بین مسیرهای ولتاژ بالا و پایین میخواهد. همین فهرست نشان میدهد چرا این کار برای یادگیری نیست: در خانه از کلید یا پریز هوشمند آماده و استاندارد استفاده کن و نصبش را به برقکار بسپار. برای پروژههایت فقط از باتری، USB یا آداپتور تا ۱۲ ولت استفاده کن. راهنمای ایمنی در الکترونیک برای بچهها و پدر و مادرها مفصلتر توضیح داده چه چیزی خطرناک است.
مدار رله را در شبیهساز امتحان کن 🧲سؤالهای رایج
چرا رله را مستقیم به پین آردوینو وصل نکنم؟
سیمپیچ رلهی ۵ ولت حدود ۷۰ میلیآمپر جریان میخواهد، در حالی که پین آردوینو برای ۲۰ میلیآمپر ساخته شده است. سیمپیچ در لحظهی قطع هم یک جهش ولتاژ میسازد که پین را خراب میکند. برای همین بین پین و رله یک ترانزیستور و یک دیود هرزگرد میگذارند، یا از ماژول رله استفاده میکنند که اینها را روی خودش دارد.
مقاومت بیس ترانزیستور برای رله ۵ ولت چند اهم باشد؟
برای رلهی ۵ ولت با سیمپیچ حدود ۷۰ اهم و فرمان از پین ۵ ولتی، مقاومت ۱ کیلواهم مناسب است. این مقاومت حدود ۴ میلیآمپر به بیس میدهد که ترانزیستوری مثل 2N2222 یا BC337 را کاملاً روشن میکند و برای پین هم امن است.
دیود موازی رله را از کدام طرف ببندم؟
دیود برعکس و موازی سیمپیچ بسته میشود: کاتد (سمت نوار) به سر مثبت سیمپیچ و آند به سری که به کلکتور ترانزیستور میرود. اگر برعکس ببندی، وقتی ترانزیستور روشن شود دیود یک اتصال کوتاه میسازد.
فرق NO و NC در رله چیست؟
NO یعنی معمولاً باز: فقط وقتی سیمپیچ برق دارد به COM وصل میشود. NC یعنی معمولاً بسته: در حالت عادی به COM وصل است و با برق گرفتن سیمپیچ قطع میشود. برای باری که باید با فرمان روشن شود از COM و NO استفاده کن.
ماژول رله با LOW روشن میشود یا HIGH؟
بستگی به مدل دارد. بیشتر ماژولهای اپتوکوپلردار با LOW روشن میشوند (Active-Low) و ماژولهای سادهی ترانزیستوری معمولاً با HIGH. با یک کد کوتاه امتحان کن و در برنامه یک ثابت مثل ACTIVE_LOW بگذار. رلهی مود آردوینوی تینکرکد فارسی با HIGH روشن میشود.