img

یک دستگاه نورپردازی خودکار بسازید…

/
/
/

در حال درست کردن یک فایل ارائه، کار کردن روی یک سند اکسل یا ویرایش مقاله ای که می خواهید آن را چاپ کنید هستید و نکته ی بسیار جالبی به ذهنتان رسیده اما ناگهان هوا تاریک می شود و می خواهید چراغ ها را روشن کنید. برای این کار باید از جایتان بلند شوید و به سمت دیگری از اتاق بروید و … چیزی که به ذهنتان رسیده بود را فراموش می کنید. در این مقاله به شما خواهیم گفت که چگونه می‌توانید یک دستگاه نور پردازی خودکار داشته باشید.

شروع کنید: قسمت ها
ما یک Arduino Micro را در کنار Adafruit Log-scale Analog Light Sensor قرار دادیم. این حسگر، بسیار حساس بوده، عملکرد بی نظیری در کنار Arduino داشته، به ما اجازه می دهد سطح نور در زمان واقعی (real-time) را کنترل کرده و برای ایجاد یک ساختار نور پردازی دقیق و قابل سفارشی شدن، بی نظیر است. در این پروزه از نوار LED استفاده کرده ایم. استفاده از این نوار ها بسیار آسان است و تنها کافی است اندازه ی مورد نظرتان را بریده، سیم ها را وصل کرده و برچسب پُشت آن ها را برداشته تا به راحتی به محل دلخواهتان، چسبانده شوند. با توجه به کشیده شدن یک پوشش ضد آب بر روی این نوار ها، شستن و تمیز کردن آن ها بسیار ساده است. در هر متر از نوار LED به کار رفته در این پروژه، ۶۰ عدد LED به کار رفته که نور کافی را برای روشن شدن سطح یک میز کار بزرگ تامین می کند. البته اگر نوار های LED را به جای پایین میز کار در بالای آن قرار دهید، استفاده از نوار هایی که ۳۰ عدد LED در هر متر از آن ها وجود دارد نیز کافی خواهد بود.
از آن جایی که نوار های LED با جریان ۱۲ ولت و Arduino با جریان پنج ولت کار می کنند، باید از یک سوئیچ برای روشن کردن چراغ های ۱۲ ولتی استفاده کنید. ما از یک ترانزیستور که تهیه ی آن ساده تر است استفاده کرده ایم.
برق رسانی به چراغ ها
هر کدام از LED ها چیزی کمتر از ۰٫۲۴ وات جریان مصرف می کنند و در شرایطی که به صورت سِری به هم متصل باشند، باید این عدد را در تعداد آن ها ضرب کرد تا مصرف جریان برق کُلی به دست آورده شود. از آن جایی که از یک نوار یک متری LED استفاده کردیم پس سیستم نور پردازی ما ۱۴٫۴ وات جریان مصرف می کند (هر متر از نوار ۶۰ چراغ LED دارد پس کُل جریان برابر با ۱۴و۴=۶۰×۰٫۲۴ وات خواهد بود). از آن جایی که چراغ ها در جریان ۱۲ وُلتی کار می کنند، دست کم به یک منبع تغذیه ی ۱٫۲ آمپری (۱٫۲=۱۲/۱۴٫۴) احتیاج داریم. اگر در حدود ۱۰ درصد مازاد بر جریان هم در نظر بگیریم، یک منبع تغذیه ی ۲۴ واتی (۱۲ ولت و ۲ آمپر) نیز می تواند جریانی بیشتر از آن چه مورد نیاز این پروژه است را تولید کند. همچنین استفاده از یک آداپتور barrel jack که بسیار ارزان قیمت است نیز می تواند موثر باشد. اگر می خواهید از نواری طولانی تر از ۱٫۵ متر استفاده کنید، قسمت «نوار های طولانی تر» در همین مقاله را ببینید.
حالا زمان انتخاب ترانزیستور است. در زمان اجرای این پروژه از یک ترانزیستور با نام تجاری MOSFET استفاده شده است. این ترانزیستور می تواند جریان های منبع به مسیر (source to drain) تا ۱۰۰ ولت را کنترل کرده (پس برای جریان ۱۲ ولتی نیز مناسب است)، با ولتاژ خروجی ۵ ولتی Arduino به کار اُفتاده و در مشخصات فنی آن اشاره شده که قابلیت کنترل ۶٫۵ آمپر در درجه ی حرارت ۱۰۰ درجه ی سانتی گراد و جریان ۱۰ ولت را دارد. در جریان ۱۲ ولتی و در درجه حرارت های نه چندان بالا (مانند دمای هوای اتاق)، قابلیت کنترل آن تا ۷٫۵ آمپر بالا می رود که بسیار بیشتر از ۲ آمپر مورد نیاز ما خواهد بود.
در آخر از یک خازن ۱۶ ولتی ۱,۰۰۰µF برای کنترل (جذب) جهش های جریان برق از منبع تغذیه به LED ها استفاده کردیم. اگر چه احتمال خسارت دیدن (خراب شدن) LED ها کم است اما استفاده از یک خازن ارزان قیمت به ما اطمینان می دهد که نیازی به تعویض نوار LED تا قبل از تمام شدن طول عُمر ۵۰ هزار ساعتی آن نخواهیم داشت.
نوار های طولانی تر
جریان (ولتاژ) مورد نیاز برای هر اندازه از نوار های چراغ LED به سادگی قابل محاسبه است: در حقیقت تنها کافی است ولتاژ مورد نیاز برای هر LED را در تعداد LED های موجود در هر متر از نوار چراغ LED ضرب کرده و برای جلوگیری از کمبود ولتاژ های احتمالی، مقدار ۱۰% نیز به آن اضافه کنید. برای نمونه، یک نوار ۲٫۲ متری چراغ LED هرگز جریانی بیشتر از ۳۴٫۸ ولت (۳۴٫۸=۱٫۱×۲٫۲×۶۰×۰٫۲۴) مصرف نمی کند پس به یک منبع تغذیه ی ۳۶ واتی (۱۲ ولت و ۳ آمپر) نیاز دارد.
البته باید توجه داشته باشیم که در نوار های طولانی تر به ترانزیستور های قوی تر نیاز داریم. برای بررسی این موضوع، مقدار وات محاسبه شده را بر ولتاژ (۱۲ ولت) تقسیم کنید. مقدار به دست آمده باید کمتر از نرخ مسیر مداوم (Continues Drain Rating) ترانزیستور باشد. ما از ترانزیستور IRF520 استفاده کردیم که از جریان هایی تا ۷٫۵ آمپر پشتیبانی می کند. با توجه به محاسبات انجام شده، استفاده از منبع تغذیه ی ۷۲ واتی (۱۲ ولت و ۶ آمپر) Lighting Ever، برای یک نوار LED به طول ۵ متر نیز کافی است.
با زیاد شدن وات یک مدار، باید در سیم کشی سیستم از سیم هایی با قُطر مناسب استفاده شود. برای انجام بررسی های لازم در این مورد می توانید از ابزاری که در نشانی tinyurl.com/dccablesizing قرار داده شده است استفاده کنید. توجه داشته باشید که در صورت زیاد بودن وات و استفاده از سیم های نازک، احتمال آتش گرفت سیم ها وجود دارد. بهتر است از پوشش کابل LSZH (مخفف Low Smoke به معنی «کم دود» و Zero Halogen به معنی «بدون هالوژن») استفاده کنید زیرا این محصول در زمان سوختن یا بازیافت شدن، گاز سَمی کمتری تولید می کند.
اگر فکر می کنید ممکن است در محاسبات و انتخاب قطعات اشتباه کنید، توصیه می کنیم از نوار ۱٫۵ متری و قطعات بیان شده در مقاله استفاده کنید.

نورپردازی بی نظیر: کُد گذاری و اتصال
نوار LED را با استفاده از یک قیچی و در امتداد خط های مشخص شده، بِبُرید. بهتر است از قسمت انتهای داخلی نوار این کار را بکنید تا بتوانید از هر دو سیم موجود در نوار استفاده کنید.
درست کردن سیستم نور پردازی، بیشتر یک حس مشترک است و بیشتر افراد آن را به یک شکل انجام می دهند: پایانه ی VCC حسگر نور را به بُرد ۵ وُلتی Arduino، پایانه ی GND آن را به زمین (Ground یا بدنه ی) Arduino (سه خط موازی) و ترمینال Out آن را پین A0 بُرد Arduino وصل کنید. برچسبی که روی ترانزیستور MOSFET قرار دارد، شما را راهنمایی می کند که پین سمت چپ را به پین شماره چهار Arduino، پین وسط را به پین زمین (Ground یا بدنه ی) Arduino و پین سمت راست به سیم منفی نوار LED وصل کنید. سیم مثبت LED را در داخل پایانه ی مثبت barrel jack وصل کرده کرده و پایانه ی منفی barrel jack را به زمین (Ground یا بدنه ی) Arduino متصل کنید تا اتصال زمین برای Arduino و LED ها مشترک باشد. فراموش نکنید که خازن را نیز به barrel jack متصل کنید؛ نشانه ی سفید، مشخص کننده ی طرف منفی است.
قبل از وصل کردن جریان برق، باید کُد گذاری را نیز انجام دهید. برای این کار، Arduino را به کامپیوتر شخصی خودتان وصل کرده و Arduino IDE (مخفف Independent Development Environment به معنی محیط توسعه ی مستقل) را از www.arduino.cc/en/Main/Software دانلود کنید. بعد از نصب و اجرای فایل دانلود شده، پنجره ای مانند برنامه های ویرایش متن به صورت خودکار باز می شود.
درست است که می توانیم if the light level is too dim, turn on the LEDs به معنی «اگر نور اتاق کم شد، چراغ های LED روشن شود» را کُد گذاری کنیم اما این کار چندان حرفه ای نیست. در حقیقت با این کار، در روز هایی که هوا کمی ابری می شود، چراغ های LED به صورت متناوب روشن و خاموش می شوند. هدف از طراحی این سیستم نور پردازی، روشن شدن چراغ ها در زمان تاریک شدن هوا است پس باید از چند ترفند برای کُد گذاری درست و بی نقص این سیستم استفاده کنیم.
در ابتدا، از فرمان delay به معنی «تاخیر» استفاده می کنیم که به سیستم اجازه می دهد که قبل از هر تصمیم گیری، زمان کوتاهی متوقف باشد. اگر چه این فرمان به تنهایی نمی تواند ما را به نتیجه ی دلخواهمان برساند اما استفاده از آن مفید خواهد بود:

 void loop() {
If (rawValue < dim) {
digitalWrite (output, HIGH);
delay (timeCalc)
}

در این کُد، rawValue، سطح نور جاری (در حال حاضر)، dim، کمترین سطح نوری است که در آن به سادگی می توان اطراف را دید، output سیگنال خاموش/روشن برای ترانزیستور MOSFET و در آخر timeCalc یک بازه ی زمانی است. آیا با این دستور، هنگامی که نور محیط کم می شود، چراغ های LED روشن می شوند؟ هنوز هم برای این که Arduino عملکرد درستی داشته و اشکالی در تغییر وضعیت از HIGH به HIGH در کُد نوشته شده وجود نداشته باشد، به چند خط کُد دیجیتالی دیگر نیاز داریم. در حقیقت ما از دو متغیر بولی (Boolean) با نام های lights و bright استفاده کردیم. متغیر lights به Arduino می گوید که چراغ های LED در هر لحظه روشن یا خاموش هستند و متغیر bright شرایط نور محیطی که برای روشن شدن چراغ ها کافی است را مشخص می کند. در ادامه چند شبکه ی منطقی را ایجاد کردیم (جدول «شبکه ی منطقی») تا زمان تغییر حالت چراغ ها از خاموش به روشن و برعکس را شناسایی کنیم.

شبکه ی منطقی
در کنار کُد گذاری هر ۶ جایگشت (حالت منطقی احتمالی)، جدول شبکه ی منطقی به ما نشان می دهد که تنها باید برای سه حالت مختلف برنامه ریزی کنیم: وقتی که هوا خیلی تاریک است و چراغ ها هم خاموش هستند، وقتی هوا خیلی روشن است و چراغ ها هم روشن هستند و در آخر وقتی که هوا بین تاریکی و روشنی بوده و چراغ ها روشن هستند. کُد گذاری برای دو حالت ابتدایی آسان است: ما به سادگی متغیر بولی (Boolean) مورد نظرمان را به آزمون منطقی if اضافه می کنیم:

if (rawValue < dim && lights == false) {
lights = true;
digitalWrite (output, HIGH);
delay (timeCalc);
}
else if (rawValue > bright && lights == true) {
lights = false;
digitalWrite (output, LOW);
delay (timeCalc);
}

 عملگر منطقی && به معنی «و» منطقی است که در آن باید برای درست بودن تمام گزاره، هر دو طرف آن درست باشند. باید به تفاوت بین == و = توجه داشته باشید. نشانه ی == یک مقایسه (آیا light برابر false است) بوده در حالی که = یک فرمان یا دستور (که مقدار true را به متغیر lights تخصیص می دهد) است. کُد بالا به این معنی است که اگر هوا تاریک شده و چراغ ها هنوز روشن هستند یا اگر هوا روشن است و چراغ ها خاموش هستند، گزاره ی if رَد شده (عمل نمی کند)، Arduino مقدار خروجی را تغییر نداده و چراغ ها به تناوب روشن و خاموش نشده و چشمک نخواهند زد.
حالت سوم، یعنی زمانی که هوا بین تاریک و روشن بوده و چراغ ها هنوز روشن هستند، تا حدودی پیچیده است. این حالت زمانی پیش می آید که نور در حال کم و زیاد شدن، مانند آن چه در روز های ابری مشاهده می کنیم، باشد. در چنین روز هایی که هوا به اصطلاح «گرفته» است، احتمال دارد که چراغ های LED در هر دقیقه، چند بار خاموش و روشن شوند. برای جلوگیری از این حالت، باید قبل از فرستاده شدن دستور، تاخیری در ارسال آن ایجاد کنیم. نکته ی اصلی این است که اگر هوا بین روشن و تاریک بوده و چراغ ها خاموش باشند، نگرانی وجود ندارد. در حقیقت این حالت در روز های آفتابی و هنگامی که لکه ی ابر کوچکی جلوی نور را می گیرد اتفاق می افتد و در چنین شرایطی، چراغ ها، که خاموش هستند، خاموش می مانند. پس تنها مشکلی که با آن روبرو هستیم، زمانی است که هوا بین تاریک و روشن بوده و چراغ ها روشن هستند.
یک کُپی از نقشه ی Arduino را از

www.shopperdownload.co.uk/adproj/autolightingsketch.txt

دانلود کرده و helper text در Arduino IDE را با آن جایگزین کنید. نوع درست بُرد (Arduino Micro) و پورت COM را از فهرست Tools انتخاب کرده و بر روی Compile (دکمه ی فِلِش) کلیک کنید. می توانید از Serial Monitor (دکمه ی ذره بین شیشه ای) برای بازبینی و نظارت بر روی سطح نور و مشخص کردن تنظیمات تاریک و روشن بودن هوا، با توجه به سطح نور مورد نظرتان، استفاده کنید. از آن جایی که حِسگر نور باید در زاویه ی دید شما (و نه در مقابل منبع نور) قرار داده شود، جای تعجبی وجود ندارد که تنظیمات هوای تاریک بسیار بیشتر از حالت عادی و تنظیمات هوای روشن نیز بسیار کمتر از آن چه به نظر منطقی می رسد باشد. نکته ی آخر این که اگر پورت USB کامپیوتر شما به درستی کار نکرد، می توانید از هاب (hub) در نمایشگرتان استفاده کنید.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text