
خلاصه ۳ خطی
فهرست مطالب13 بخش
- اول تصمیم بگیرید: روشن و خاموش، یا کنترل فاز؟
- چرا پایهی میکرو را مستقیم به گیت وصل نمیکنیم؟
- اپتوترایاک چیست و کدام را انتخاب کنیم؟
- سمت میکروکنترلر: مقاومت LED اپتوترایاک
- سمت برق شهر: مقاومت سری، اسنابر و حفاظت
- مقاومت سری گیت
- اسنابر RC
- وریستور و فیوز
- کدام ترایاک قدرت؟
- کنترل فاز با میکروکنترلر: زمانبندی
- آشکارساز عبور از صفر با EL817
- کد نمونهی آردوینو برای دیمر (روی سختافزار تست نشده)
- چیدمان برد و جعبه
- جدول عیبیابی
- قطعات این پروژه در ایکانو
- سؤالات متداول
- MOC3021 بهتر است یا MOC3063؟
- آیا میتوانم پایهی آردوینو را مستقیم به گیت ترایاک وصل کنم؟
- مقاومت سری LED اپتوترایاک را چند اهم بگذارم؟
- اسنابر لازم است؟ چه مقداری بگذارم؟
- بهجای این مدار میتوانم SSR بخرم؟
- جمعبندی
- پایهی آردوینو یا ESP32 را هرگز مستقیم به گیت ترایاکی که روی برق ۲۲۰ ولت است وصل نکنید؛ بین آنها یک اپتوترایاک (مثل خانوادهی MOC3052 یا MOC3063) لازم است که طبق دیتاشیت onsemi ایزولاسیون ۴۱۷۰ ولت RMS دارد.
- برای روشن و خاموش ساده، اپتوترایاک عبور از صفر یا یک رلهی SSR آماده کافی است؛ برای دیمر (کنترل فاز) اپتوترایاک تصادفی بهاضافهی یک آشکارساز عبور از صفر لازم دارید.
- برای برق ۲۲۰ ولت ایران اپتوترایاک ۶۰۰ ولتی، مقاومت سری حداقل حدود ۳۶۰ اهم، اسنابر RC برای بار القایی، وریستور و فیوز را فراموش نکنید.
جواب کوتاه: برای کنترل ترایاک با آردوینو، پایهی میکرو فقط LED داخل یک اپتوترایاک را روشن میکند و خود اپتوترایاک، از طرف برق شهر، گیت ترایاک قدرت را تحریک میکند. اگر فقط میخواهید بار AC را روشن و خاموش کنید، اپتوترایاک نوع عبور از صفر (Zero-Cross) یا یک رلهی حالت جامد SSR-40DA سادهترین راه است. اگر میخواهید نور لامپ یا گرمای هیتر را کم و زیاد کنید (کنترل فاز)، باید لحظهی عبور ولتاژ برق از صفر را تشخیص بدهید و با تأخیر قابلتنظیم، اپتوترایاک نوع تصادفی (Random Phase) را روشن کنید. ترایاک قدرت هم معمولاً یکی از BT136، BT139-600E یا BTA16-600 است.
این مقاله ادامهی عملی ترایاک چیست است. آنجا ساختار ترایاک، ربعهای تحریک، جدول ترایاکها و بارهای مناسب دیمر را توضیح دادهایم و اینجا تکرارشان نمیکنیم. اینجا فقط سراغ اتصال ترایاک به میکروکنترلر میرویم: انتخاب اپتوترایاک، محاسبهی مقاومتها، اسنابر، آشکارساز عبور از صفر و یک کد نمونه. همهی اعداد از دیتاشیت سازندهها (onsemi، WeEn، ST، Everlight، Yageo، Bourns و Fotek) یا صفحهی کالای ایکانو آمدهاند.
⚠️ هشدار ایمنی برق ۲۲۰ ولت
- همهی قسمتهای سمت ترایاک، از جمله زبانهی BT136 و پایههای اپتوترایاک در سمت خروجی، به برق شهر وصلاند. تماس با آنها میتواند کشنده باشد. اگر تجربهی کار با برق شهر ندارید، از SSR آماده یا دیمر آماده استفاده کنید.
- هیچوقت وقتی مدار به برق وصل است به آن دست نزنید، پروب اسیلوسکوپ معمولی را به سمت برق شهر نزنید و مدار را داخل جعبهی عایق ببندید.
- در مسیر برق ورودی فیوز بگذارید (مثلاً فیوز شیشهای ۵×۲۰ با پایهفیوز پیچی؛ آمپر فیوز را از روی بار انتخاب کنید و راهنمایش را در انواع فیوز ببینید).
- کدها و مدارهای این مقاله آموزشیاند و روی سختافزار تست نشدهاند. هر مدار برق شهر را قبل از استفاده، شخص باتجربه بررسی کند.
اول تصمیم بگیرید: روشن و خاموش، یا کنترل فاز؟
قبل از خرید قطعه، روشن کنید دقیقاً چه میخواهید. این تصمیم نوع اپتوترایاک و پیچیدگی مدار را عوض میکند:
| هدف | راه پیشنهادی | سختی | نکته |
|---|---|---|---|
| روشن و خاموش کردن المنت، پمپ یا لامپ | رلهی SSR آماده مثل SSR-10DA یا SSR-40DA | کم | طبق کاتالوگ Fotek، ورودی SSR-40DA بین ۴ تا ۳۲ ولت DC و حداکثر ۱۲ میلیآمپر است و در عبور از صفر وصل میکند |
| روشن و خاموش با برد خودتان | اپتوترایاک عبور از صفر (MOC306x) + ترایاک | متوسط | نویز کم؛ ولی برای کنترل فاز مناسب نیست |
| دیمر لامپ رشتهای یا کنترل توان هیتر | اپتوترایاک تصادفی (MOC305x) + ترایاک + آشکارساز عبور از صفر | زیاد | نیاز به زمانبندی دقیق در هر نیمسیکل |
| دیمر دستی بدون میکرو | دیمر یا کیت دیمر آماده با پتانسیومتر | کم | میکروکنترلر لازم نیست |
اگر فقط روشن و خاموش میخواهید، راهنمای کامل انتخاب جریان و هیتسینک را در راهنمای انتخاب رلهی SSR ببینید. اگر بار سبک است و صدای کلیک مشکلی ندارد، رلهی مکانیکی هم گزینه است: راهاندازی رله ۵ ولت با آردوینو. اگر دیمر دستی میخواهید، کیت دیمر ۵۰۰ وات، کیت دیمر ۱۸۰۰ وات یا ماژول دیمر ۴۰۰۰ وات را در دستهی دیمرها ببینید.
چرا پایهی میکرو را مستقیم به گیت وصل نمیکنیم؟
سه دلیل دارد:
- ایزولاسیون و ایمنی: اگر گیت ترایاک مستقیم به میکرو وصل شود، زمین آردوینو باید به یکی از سیمهای برق شهر (T1 ترایاک) وصل شود. آنوقت پورت USB، کامپیوتر و دست شما هم به برق شهر نزدیک میشوند. اپتوترایاک این ارتباط را با نور قطع میکند.
- جریان گیت: طبق دیتاشیت WeEn، جریان تحریک گیت BT136-600 در ربعهای ۱ تا ۳ حداکثر ۳۵ میلیآمپر و در ربع ۴ تا ۷۰ میلیآمپر است. طبق دیتاشیت Microchip، حداکثر مطلق جریان هر پایهی ATmega328P ۴۰ میلیآمپر است و ولتاژ خروجی فقط تا ۲۰ میلیآمپر در ۵ ولت تضمین شده است. پس حتی بدون مسئلهی ایمنی، پایهی میکرو برای این ترایاک حاشیه ندارد.
- نویز: سوئیچ شدن بار AC، ضربههای ولتاژ و نویز تولید میکند. اگر میکرو مستقیم به این بخش وصل باشد، ریست شدن و خرابی پایهها محتملتر است.
WeEn در دیتاشیت BT139-600E نوشته که این ترایاک حساس برای اتصال مستقیم به میکروکنترلر و مدار منطقی طراحی شده است (جریان گیت حداکثر ۱۰ میلیآمپر در ربعهای ۱ تا ۳). ولی این کار یعنی زمین مدار فرمان به برق شهر وصل است و تغذیهی میکرو هم باید از همان برق شهر ساخته شود. این روش برای تولید انبوه لوازم خانگی است، نه پروژهی آموزشی که به کامپیوتر وصل میشود. برای پروژهی آردوینو و ESP32، اپتوترایاک را حذف نکنید.
اپتوترایاک چیست و کدام را انتخاب کنیم؟

اپتوترایاک یک LED فروسرخ در ورودی و یک ترایاک کوچک حساس به نور در خروجی دارد. وقتی LED روشن شود، ترایاک کوچک جریان کوتاهی به گیت ترایاک قدرت میدهد و ترایاک قدرت جریان بار را به دست میگیرد. onsemi در دیتاشیت تأکید کرده که اپتوترایاک فقط برای تحریک است و نباید بار را مستقیم با آن راند. اصول کلی اپتوکوپلرها را در اپتوکوپلر چیست خواندهاید؛ اینجا فقط نوع تریاکیاش مهم است.
| خانواده (onsemi) | نوع | ولتاژ قطع (VDRM) | جریان LED لازم (IFT حداکثر) | کاربرد طبق دیتاشیت |
|---|---|---|---|---|
| MOC3021 / MOC3022 / MOC3023 | تصادفی (Random Phase) | ۴۰۰ ولت | ۱۵ / ۱۰ / ۵ میلیآمپر | برای برق ۱۱۵ ولت AC |
| MOC3051 / MOC3052 / MOC3053 | تصادفی (Random Phase) | ۶۰۰ ولت | ۱۵ / ۱۰ / ۶ میلیآمپر | برق ۱۱۵ و ۲۴۰ ولت AC، مناسب کنترل فاز |
| MOC3061 / MOC3062 / MOC3063 | عبور از صفر (Zero-Cross) | ۶۰۰ ولت | ۱۵ / ۱۰ / ۵ میلیآمپر | برق ۱۱۵ و ۲۴۰ ولت AC، روشن و خاموش کمنویز |
چند نکته از همین دیتاشیتها:
- برای برق ۲۲۰ ولت، نوع ۶۰۰ ولتی بگیرید. قلهی ولتاژ ۲۲۰ ولت حدود ۳۱۱ ولت است و با ۱۰٪ نوسان شبکه به حدود ۳۴۲ ولت میرسد. MOC302x فقط ۴۰۰ ولت تحمل دارد و onsemi آن را برای ۱۱۵ ولت معرفی کرده است. با اینکه در مدارهای اینترنتی زیاد دیده میشود، برای برق ایران حاشیهی کمی دارد.
- نوع عبور از صفر برای دیمر کار نمیکند. طبق onsemi، MOC306x وقتی ولتاژ دو سر خروجیاش از «ولتاژ ممانعت» (VINH، حداکثر ۲۰ ولت) بیشتر باشد روشن نمیشود. یعنی فقط نزدیک صفر وصل میکند و نمیتوانید وسط نیمسیکل روشنش کنید.
- ایزولاسیون: هر سه خانواده طبق onsemi ولتاژ ایزولاسیون ۴۱۷۰ ولت RMS برای یک دقیقه دارند. در دیتاشیت MOC302x فاصلهی خزشی و هوایی بیرونی بدنه حداقل ۷ میلیمتر آمده است؛ این فاصله را روی برد خودتان هم حفظ کنید.
- حرف آخر شماره، حساسیت LED است: MOC3063 با ۵ میلیآمپر تحریک میشود و MOC3061 به ۱۵ میلیآمپر نیاز دارد. برای ESP32 با منطق ۳٫۳ ولت، نوع حساستر راحتتر است.
وضعیت موجودی: اپتوترایاکهای MOC30xx و آشکارساز AC مثل H11AA1 فعلاً در فروشگاه ایکانو موجود نیستند. اگر نمیخواهید قطعه را جای دیگری پیدا کنید، برای روشن و خاموش از SSR آماده استفاده کنید. SSR آماده همان ترایاک یا تریستور بههمراه مدار ایزولهی نوری است.
سمت میکروکنترلر: مقاومت LED اپتوترایاک
فرمول onsemi برای مقاومت سری LED این است:
RLED = (VCC − VF − Vsat) ÷ IF
VF افت ولتاژ LED است. برای MOC305x طبق onsemi مقدار معمول ۱٫۱۸ و حداکثر ۱٫۵ ولت در ۱۰ میلیآمپر است. Vsat افت ترانزیستور یا پایهی راهانداز است. اگر پایهی میکرو مستقیم LED را براند، آن را تقریباً صفر بگیرید. جریان IF را بین IFT حداکثر قطعه و حداکثر مطلق ۶۰ میلیآمپر انتخاب کنید. onsemi یک حاشیهی اضافه هم پیشنهاد داده است: برای سرمای منفی ۴۰ درجه و پیر شدن LED، مثال دیتاشیتش ۱۰ میلیآمپر × ۱٫۲۵ × ۱۲۰٪ = ۱۵ میلیآمپر است.
| میکروکنترلر | محاسبه برای حدود ۱۵ میلیآمپر | مقاومت پیشنهادی | جریان تقریبی |
|---|---|---|---|
| آردوینو ۵ ولت (ATmega328P یا ATmega8A) | (۵ − ۱٫۵) ÷ ۰٫۰۱۵ ≈ ۲۳۳ اهم | ۲۲۰ اهم ۱/۴ وات | حدود ۱۶ تا ۱۷ میلیآمپر |
| ESP32 (۳٫۳ ولت) | (۳٫۳ − ۱٫۵) ÷ ۰٫۰۱۵ = ۱۲۰ اهم | ۱۲۰ اهم | حدود ۱۵ میلیآمپر |
هر دو مقدار زیر حداکثر مطلق ۴۰ میلیآمپر ATmega328P هستند. ESP32 هم طبق دیتاشیت Espressif حدود ۴۰ میلیآمپر جریان خروجی دارد، ولی اگر چند پایه همزمان بار دارند یا اپتوترایاک کمحساستر (MOC3061) دارید، LED را با یک ترانزیستور مثل BC547 برانید؛ مدارش همان مدار راهاندازی رله در آموزش ESP32 برای مبتدیها است، فقط بهجای بوبین رله، LED و مقاومتش قرار میگیرد و دیود هرزگرد لازم ندارد.
سمت برق شهر: مقاومت سری، اسنابر و حفاظت

مقاومت سری گیت
اپتوترایاک طبق onsemi حداکثر ۱ آمپر جریان ضربهای (ITSM) تحمل میکند. مقاومتی که بین خروجی اپتوترایاک و پایهی T2 (MT2) ترایاک قدرت میگذارید، باید جریان را در بدترین لحظه زیر این حد نگه دارد. فرمول onsemi ساده است:
R ≥ Vpeak ÷ ITSM
با قلهی حدود ۳۴۲ ولت (۲۲۰ ولت بهاضافهی ۱۰٪): R ≥ ۳۴۲ ÷ ۱ = ۳۴۲ اهم. پس ۳۶۰ اهم یا کمی بیشتر انتخاب کنید. مدار پیشنهادی onsemi برای MOC306x روی ۲۴۰ ولت هم دقیقاً مقاومت ۳۶۰ اهم دارد. مقاومت ۳۳۰ اهم کمی کمتر از حد محاسبهشده است. طبق onsemi، توان این مقاومت کم است، چون بهمحض روشن شدن ترایاک قدرت، جریان از مسیر اپتوترایاک برداشته میشود.
اسنابر RC
در بار القایی (موتور یونیورسال، شیر برقی، ترانس) یا برق پرنویز، ولتاژ ناگهان بالا میرود و میتواند ترایاک یا اپتوترایاک را بیموقع روشن کند. مقادیر نمونهی onsemi:
| مدار در دیتاشیت onsemi | مقاومت اسنابر | خازن اسنابر |
|---|---|---|
| MOC302x، محیط پرنویز | ۳۳ اهم | ۰٫۰۱ میکروفاراد |
| MOC306x، مدار سوئیچ سمت فاز روی ۲۴۰ ولت | ۳۹ اهم | ۰٫۰۱ میکروفاراد |
| MOC305x، محیط خیلی پرنویز (آزمون IEEE472 و IEC255-4) | ۴۷ اهم | ۰٫۰۱ میکروفاراد |
اسنابر موازی ترایاک قدرت (بین T1 و T2) بسته میشود. خازن آن دائماً روی برق شهر است، پس باید یک خازن ایمنی X2 با ظرفیت ۰٫۰۱ میکروفاراد (۱۰ نانوفاراد) و ردهبندی ولتاژ AC شبکه باشد. ولتاژ AC مجاز را از دیتاشیت خود خازن بخوانید، نه فقط ولتاژ DC چاپشده روی بدنه. مقاومت اسنابر هم ۳۹ اهم ۱ وات انتخاب رایجی است. onsemi نوشته است که با MOC305x و بار مقاومتی و ترایاک غیرحساس به نویز، میتوان بدون اسنابر هم کار کرد. ولی برای بار القایی، اسنابر یا ترایاک نوع Snubberless لازم است. دربارهی ترایاکهای Snubberless در ترایاک چیست توضیح دادهایم.
وریستور و فیوز
onsemi در مدار «محیط پرنویز» یک وریستور (MOV) هم موازی ترایاک گذاشته تا ضربههای بیشتر از VDRM را ببرد. برای برق ۲۲۰ ولت، وریستور 10D471K طبق دیتاشیت Bourns حداکثر ۳۰۰ ولت AC دائم را تحمل میکند. معنی کدها را در جدول کد وریستور ببینید. فیوز را هم در مسیر فاز ورودی قبل از همهی اینها بگذارید. اگر جریان هجومی بار (مثلاً لامپ رشتهای سرد) زیاد است، فیوز کندکار انتخاب کنید.
کدام ترایاک قدرت؟
| ترایاک | جریان RMS | جریان گیت (IGT حداکثر، ربع ۱ تا ۳) | زبانه | منبع |
|---|---|---|---|---|
| BT136-600 | ۴ آمپر | ۳۵ میلیآمپر | به T2 وصل است (برقدار) | WeEn |
| BT139-600E | ۱۶ آمپر | ۱۰ میلیآمپر (گیت حساس) | به T2 وصل است | WeEn |
| BTA16-600 | ۱۶ آمپر | ۱۰ تا ۵۰ میلیآمپر بسته به پسوند | عایق تا ۲۵۰۰ ولت RMS | ST |
| BTA12-600B | ۱۲ آمپر | طبق صفحهی کالا | سری BTA (عایق) | صفحهی کالا |
در مدار استاندارد اپتوترایاک، جریان گیت از خود برق شهر و از راه مقاومت ۳۶۰ اهم تأمین میشود. در نیمسیکل مثبت ترایاک در ربع ۱ و در نیمسیکل منفی در ربع ۳ تحریک میشود، پس عدد بدِ ربع ۴ اینجا مهم نیست. برای نصب روی هیتسینک، سری BTA راحتتر است چون زبانهاش عایق است. زبانهی BT136 و BT139 برقدار است و واشر عایق میخواهد. گرما را دستکم نگیرید: طبق WeEn، مقاومت حرارتی پیوند تا هوای BT136 بدون هیتسینک ۶۰ کلوین بر وات است. یعنی فقط ۱ وات تلفات، دمای پیوند را حدود ۶۰ درجه بالاتر از هوای اطراف میبرد. نسخهی SMD هم داریم: BT136S در پکیج TO-252. در این نسخه پد مسی برد نقش هیتسینک را دارد؛ پکیج TO-252 (DPAK) را در راهنمای پکیجهای SMD توضیح دادهایم.
کنترل فاز با میکروکنترلر: زمانبندی

برق ایران ۵۰ هرتز است، پس هر نیمسیکل ۱۰ میلیثانیه (۱۰۰۰۰ میکروثانیه) طول میکشد. در کنترل فاز، بعد از هر عبور از صفر مدتی صبر میکنید و بعد اپتوترایاک را روشن میکنید. ترایاک تا عبور از صفر بعدی روشن میماند و خودش خاموش میشود:
- تأخیر کم (مثلاً ۱ میلیثانیه): ترایاک بیشتر نیمسیکل روشن است، پس توان زیاد است.
- تأخیر زیاد (مثلاً ۸٫۵ میلیثانیه): فقط انتهای نیمسیکل روشن است، پس توان کم است.
- زاویهی آتش تقریباً برابر است با ۱۸۰ درجه × (تأخیر ÷ ۱۰ میلیثانیه).
دو محدودیت از دیتاشیت MOC305x:
- پالس LED باید دستکم ۲۰۰ میکروثانیه قبل از عبور از صفر بعدی تمام شود. در غیر این صورت ممکن است کنترل نیمسیکل بعد را از دست بدهید. به همین دلیل حداکثر تأخیر را کمی کمتر از ۱۰ میلیثانیه بگیرید.
- پالسهای کوتاهتر از ۱۰۰ میکروثانیه جریان LED بیشتری لازم دارند (نمودار جریان تحریک برحسب پهنای پالس). اگر پالس کوتاه میدهید، جریان را طبق همان نمودار بالا ببرید. یا مثل کد نمونهی پایین، پالس چندصد میکروثانیهای بدهید.
آشکارساز عبور از صفر با EL817

برای اینکه میکرو بداند هر نیمسیکل کی شروع میشود، به یک آشکارساز ایزوله نیاز دارید. اپتوکوپلر مخصوص AC مثل H11AA1 (Vishay) دو LED پشتبهپشت دارد، ولی فعلاً در فروشگاه نیست. با اپتوکوپلر معمولی EL817 و یک پل دیود کوچک هم میشود این کار را کرد. ایده این است: برق شهر از دو مقاومت بزرگ و یک پل دیود میگذرد و LED اپتوکوپلر را روشن میکند. فقط نزدیک صفر، ولتاژ آنقدر کم است که LED خاموش میشود و خروجی ترانزیستور یک پالس کوتاه میدهد.
مثال محاسبه (روی سختافزار تست نشده):
- پل دیود: DB107 (طبق صفحهی کالا ۱۰۰۰ ولت، ۱ آمپر) یا چهار 1N4007.
- مقاومتها: دو ۸۲ کیلواهم ۱/۲ وات بهصورت سری (جمعاً ۱۶۴ کیلواهم). چرا دو تا؟ طبق دیتاشیت Yageo سری CFR، حداکثر ولتاژ کاری مقاومت کربنی ۱/۴ وات ۲۵۰ ولت و ۱/۲ وات ۳۵۰ ولت است. با دو مقاومت، سهم هرکدام حدود نصف ولتاژ شبکه میشود.
- توان: در ۲۴۲ ولت (۲۲۰ ولت + ۱۰٪)، توان کل ۲۴۲² ÷ ۱۶۴۰۰۰ ≈ ۰٫۳۶ وات است، یعنی حدود ۰٫۱۸ وات برای هر مقاومت. این مقدار زیر نصف توان نامی ۱/۲ وات است.
- جریان LED: در قله حدود ۳۴۲ ÷ ۱۶۴۰۰۰ ≈ ۲٫۱ میلیآمپر، که خیلی کمتر از حداکثر ۵۰ میلیآمپر EL817 (طبق صفحهی کالا) است.
- سمت میکرو: کلکتور EL817 با پولآپ ۱۰ کیلواهم به ۵ ولت و به پایهی ۲ آردوینو (ورودی وقفه)، امیتر به زمین آردوینو.
طبق صفحهی کالا، CTR (نسبت جریان خروجی به ورودی) EL817 در رتبهی عمومی ۵۰ تا ۶۰۰ درصد در جریان ۵ میلیآمپر است. در جریان ۲ میلیآمپر ممکن است کمتر باشد. اگر خروجی کامل پایین نمیآید، پولآپ را بزرگتر کنید (مثلاً ۴۷ کیلواهم). پالس این آشکارساز کمی قبل از صفر واقعی شروع میشود و کمی بعد از آن تمام میشود. یعنی لبهی بالاروندهی خروجی، عبور واقعی از صفر نیست و برای دقت بیشتر باید تأخیر را کالیبره کنید. فاصلهی سمت برق شهر و سمت آردوینو روی برد را هم مثل خود اپتوکوپلر زیاد نگه دارید.
کد نمونهی آردوینو برای دیمر (روی سختافزار تست نشده)
این کد با arduino-cli برای Arduino Uno کامپایل شد، ولی روی سختافزار و برق واقعی تست نشده است. فقط برای بار مقاومتی (لامپ رشتهای یا هیتر) است. پایهی ۲ ورودی آشکارساز، پایهی ۹ LED اپتوترایاک تصادفی (از راه مقاومت ۲۲۰ اهم) و A0 پتانسیومتر تنظیم توان است:
// Triac phase control sketch (random-phase opto-triac + zero-cross detector)
// NOT tested on real hardware.
const uint8_t ZC_PIN = 2; // zero-cross detector output (EL817, 10k pull-up)
const uint8_t OPTO_PIN = 9; // opto-triac LED through 220 ohm
const uint8_t POT_PIN = A0; // power setting
const unsigned long PULSE_US = 300UL; // LED on time
const unsigned long MIN_DELAY_US = 1000UL; // near full power
const unsigned long MAX_DELAY_US = 8500UL; // low power
volatile unsigned long zcTime = 0;
volatile bool zcFlag = false;
void onZeroCross() {
zcTime = micros();
zcFlag = true;
}
void setup() {
pinMode(OPTO_PIN, OUTPUT);
digitalWrite(OPTO_PIN, LOW);
pinMode(ZC_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(ZC_PIN), onZeroCross, RISING);
}
void loop() {
static unsigned long fireDelay = MAX_DELAY_US;
static unsigned long lastPotRead = 0;
static bool waiting = false;
static unsigned long t0 = 0;
if (millis() - lastPotRead >= 50) {
lastPotRead = millis();
fireDelay = map(analogRead(POT_PIN), 0, 1023, MAX_DELAY_US, MIN_DELAY_US);
}
noInterrupts();
bool f = zcFlag;
unsigned long t = zcTime;
zcFlag = false;
interrupts();
if (f) { waiting = true; t0 = t; }
if (waiting && (micros() - t0 >= fireDelay)) {
digitalWrite(OPTO_PIN, HIGH);
delayMicroseconds(PULSE_US);
digitalWrite(OPTO_PIN, LOW);
waiting = false;
}
}چند توضیح:
- حداکثر تأخیر ۸۵۰۰ میکروثانیه و پالس ۳۰۰ میکروثانیه است. پس پالس حدود ۸۸۰۰ میکروثانیه بعد از لبهی آشکارساز تمام میشود، یعنی بیش از ۱ میلیثانیه قبل از عبور از صفر بعدی، و قاعدهی «۲۰۰ میکروثانیه قبل از صفر» با حاشیه رعایت میشود. چون لبهی آشکارساز کمی قبل از صفر واقعی است، حداقل تأخیر (توان کامل) را بعد از کالیبره کردن زمان آشکارساز تنظیم کنید.
- پتانسیومتر هر ۵۰ میلیثانیه خوانده میشود تا خواندن ADC زمانبندی را به هم نریزد.
- زمانبندی با
micros()در حلقهی اصلی چند ده میکروثانیه لرزش دارد. برای لامپ قابلقبول است، ولی برای کار دقیق، وقفهی تایمر سختافزاری بهتر است. - روی ESP32 هم همین منطق کار میکند، ولی شمارهی پایهها و ولتاژ ۳٫۳ ولت فرق دارد و مقاومت LED را باید دوباره حساب کنید.
چیدمان برد و جعبه
- دو منطقهی جدا: سمت کمولتاژ (میکرو، LEDهای اپتو) و سمت برق شهر (خروجی اپتو، ترایاک، اسنابر، وریستور، فیوز) را روی برد از هم جدا کنید. تنها چیزی که از این مرز رد میشود بدنهی اپتوترایاک و اپتوکوپلر است.
- فاصله: دیتاشیت MOC302x فاصلهی خزشی و هوایی بیرونی حداقل ۷ میلیمتر را ذکر کرده است. مسیرهای برد را طوری بکشید که این فاصله بین دو طرف کم نشود.
- سیمهای پرجریان را کوتاه و ضخیم بگیرید و از ترمینال پیچی مناسب جریان بار استفاده کنید.
- جعبه: مدار را در جعبهی پلاستیکی بسته نصب کنید تا هیچ نقطهی برقداری قابل لمس نباشد. اگر هیتسینک بیرون جعبه است، از سری BTA با زبانهی عایق استفاده کنید.
- فیلتر نویز: برای کم کردن نویز کنترل فاز، فیلتر ورودی با خازن X2 100nF 275V (بین فاز و نول ورودی مدار) و سلف کمک میکند. این خازن جدا از اسنابر است و جای خازن ۰٫۰۱ میکروفاراد اسنابر را نمیگیرد. در «ترایاک چیست» هم به آن اشاره کردهایم.
جدول عیبیابی
| نشانه | علت محتمل | راهحل |
|---|---|---|
| ترایاک اصلاً روشن نمیشود | جریان LED کمتر از IFT، اپتوترایاک عبور از صفر بهجای تصادفی، یا سیمکشی T1 و T2 جابهجا | جریان LED را با فرمول بالا دوباره حساب کنید، نوع اپتو را چک کنید و پایههای ترایاک را با دیتاشیت تطبیق دهید |
| لامپ چشمک میزند یا یک در میان روشن میشود | پالس LED نزدیک صفر بعدی تمام میشود یا آشکارساز نویز دارد | حداکثر تأخیر را کم کنید، پالس را زودتر تمام کنید و ورودی وقفه را با خازن کوچک یا نرمافزار فیلتر کنید |
| بار حتی بدون فرمان کمی روشن است | جریان نشتی ترایاک، SSR یا اسنابر | طبق Fotek، نشتی SSR-40DA تا ۵ میلیآمپر است و بارهای خیلی کوچک (مثل لامپ LED کمتوان) ممکن است با آن کمنور روشن بمانند. بار حداقل یا مقاومت موازی در نظر بگیرید |
| موتور خاموش نمیشود یا ترایاک خودبهخود روشن میشود | dV/dt بار القایی | اسنابر RC بگذارید یا ترایاک Snubberless انتخاب کنید |
| ترایاک داغ میکند | نبود هیتسینک یا جریان نزدیک حد | هیتسینک با واشر عایق (برای BT13x) یا BTA عایق؛ ترایاک با جریان بالاتر انتخاب کنید |
| آردوینو ریست میشود | نویز سوئیچینگ یا زمین مشترک ناخواسته | مطمئن شوید هیچ اتصالی بین زمین آردوینو و برق شهر نیست. خازن کنارهی تغذیه و سیمکشی کوتاه بگذارید |
قطعات این پروژه در ایکانو
- ترایاکها در دستهی ترایاک و تریستور: BT136، BT139-600E، BTA12-600B، BTA16-600 و نسخهی SMD نوع BT136S.
- آشکارساز: EL817 و DB107 یا 1N4007، مقاومت ۸۲ کیلواهم ۱/۲ وات و پولآپ ۱۰ کیلواهم.
- حفاظت: وریستور 10D471K، فیوز شیشهای و پایهفیوز، مقاومت ۳۹ اهم ۱ وات برای اسنابر (همراه خازن X2 ۰٫۰۱ میکروفاراد) و خازن X2 100nF برای فیلتر نویز ورودی. مقاومتهای دیگر را در دستهی مقاومت ببینید.
- راه سادهتر برای روشن و خاموش: SSR-10DA یا SSR-40DA. راه سادهتر برای دیمر دستی: کیتها و ماژولهای دیمر.
- موجود نیست: اپتوترایاک MOC30xx و اپتوکوپلر AC نوع H11AA1. برای مدار کامل کنترل فاز باید آنها را جدا تهیه کنید.
قبل از سفارش، پایهها و اعداد هر قطعه را با دیتاشیت خودش چک کنید. روش خواندن دیتاشیت را در راهنمای خواندن دیتاشیت توضیح دادهایم.
سؤالات متداول
MOC3021 بهتر است یا MOC3063؟
بستگی به کار دارد. MOC3021 از خانوادهی MOC302x نوع تصادفی (Random Phase) است و برای کنترل فاز و دیمر لازم است؛ ولی طبق onsemi ولتاژ قطعش ۴۰۰ ولت و برای خط ۱۱۵ ولت توصیه شده است. MOC3063 نوع عبور از صفر و ۶۰۰ ولتی است و فقط برای روشن و خاموش کردن مناسب است، چون همیشه نزدیک صفر ولتاژ روشن میشود و دیمر نمیکند. برای کنترل فاز روی برق ۲۲۰ ولت، خانوادهی ۶۰۰ ولتی تصادفی MOC305x (مثل MOC3052) انتخاب منطقیتری است.
آیا میتوانم پایهی آردوینو را مستقیم به گیت ترایاک وصل کنم؟
توصیه نمیکنیم. در این حالت زمین آردوینو به برق شهر وصل میشود و هر چیزی که به برد وصل است (USB، کامپیوتر، دست شما) در خطر است. از نظر جریان هم، گیت BT136 طبق WeEn تا ۳۵ میلیآمپر (ربع ۱ تا ۳) میخواهد، در حالی که حداکثر مطلق هر پایهی ATmega328P طبق Microchip ۴۰ میلیآمپر است و ولتاژ خروجی فقط تا ۲۰ میلیآمپر تضمین شده است. اپتوترایاک هم ایزولاسیون میدهد و هم جریان گیت را از خود برق شهر تأمین میکند.
مقاومت سری LED اپتوترایاک را چند اهم بگذارم؟
از فرمول R = (VCC − VF) ÷ IF استفاده کنید. VF برای MOC305x طبق onsemi حداکثر ۱٫۵ ولت است و onsemi برای حاشیهی دما و پیری LED مثال ۱۵ میلیآمپر را آورده است. با آردوینو ۵ ولت حدود ۲۳۳ اهم به دست میآید که ۲۲۰ اهم استاندارد نزدیکترین است. با ESP32 و ۳٫۳ ولت حدود ۱۲۰ اهم میشود. جریان را از حداکثر مطلق ۶۰ میلیآمپر LED بالاتر نبرید.
اسنابر لازم است؟ چه مقداری بگذارم؟
برای بار سلفی مثل موتور و ترانس، یا خط پرنویز، بله. onsemi در مدار نمونهی MOC302x اسنابر ۳۳ اهم و ۰٫۰۱ میکروفاراد و در MOC305x برای محیط خیلی پرنویز ۴۷ اهم و ۰٫۰۱ میکروفاراد را آورده است. در مدار ۲۴۰ ولتی MOC306x هم ۳۹ اهم و ۰٫۰۱ میکروفاراد دیده میشود. خازن اسنابر روی برق شهر است، پس از نوع X2 با همان ظرفیت مدار نمونه (۰٫۰۱ میکروفاراد) استفاده کنید. خازن X2 ۱۰۰ نانوفاراد ۲۷۵ ولت بیشتر برای فیلتر نویز ورودی مناسب است و اگر در اسنابر بگذارید، جریان نشتی بیشتری (در ۲۲۰ ولت حدود ۷ میلیآمپر) از بار عبور میدهد. onsemi نوشته است با بار مقاومتی خالص، MOC305x ممکن است بدون اسنابر هم کار کند.
بهجای این مدار میتوانم SSR بخرم؟
برای روشن و خاموش کردن بله، و سادهتر و ایمنتر هم هست. طبق صفحهی کالای ایکانو، SSR-40DA ورودی ۴ تا ۳۲ ولت DC و حداکثر جریان تحریک ۱۲ میلیآمپر دارد، پس مستقیم با پایهی آردوینو کار میکند. ولی این SSR عبور از صفر است و دیمر نمیکند. همچنین در حالت خاموش تا ۵ میلیآمپر نشتی دارد. برای کم و زیاد کردن نور یا گرما، مدار کنترل فاز این مقاله یا یک ماژول دیمر آماده لازم است.
جمعبندی
کنترل ترایاک با آردوینو سه بخش دارد: سمت میکرو که فقط LED اپتوترایاک را با یک مقاومت درست روشن میکند، مرز ایزولاسیون که اپتوترایاک و اپتوکوپلر آن را میسازند، و سمت برق شهر که ترایاک، مقاومت سری حدود ۳۶۰ اهم، اسنابر، وریستور و فیوز دارد. برای روشن و خاموش، اپتو نوع عبور از صفر یا SSR آماده کافی است. برای دیمر، اپتو نوع تصادفی و آشکارساز عبور از صفر لازم است و باید زمانبندی را دقیق رعایت کنید. اگر از نسخهی SMD ترایاک یا اپتوکوپلر استفاده میکنید، راهنمای پکیجهای SMD و لحیمکاری دستی را هم ببینید.
ترایاکها، رلههای SSR، وریستور، فیوز و مقاومتهای این مقاله را میتوانید از ایکانو با ارسال به سراسر کشور بخرید. در اصفهان هم امکان تحویل حضوری دارید.









