پروژه چراغ خواب با مقاومت نوری آردوینو

مقدمه اصول پروژه

در پروژه امروز، یک مدار چراغ خواب با استفاده از یک ماژول مقاومت نوری HW-486 و یک LED ساخته خواهد شد و آردوینو به عنوان میکروکنترلر اصلی مدار عمل می‌کند. اساساً، وقتی این مدار در سطوح پایین نور یا تاریکی قرار می‌گیرد، LED سبز روشن می‌شود. با این حال، وقتی مقدار نور موجود از یک آستانه مشخص، همانطور که توسط ماژول مقاومت نوری تشخیص داده می‌شود، فراتر رود، LED سبز خاموش می‌شود. از نظر نحوه عملکرد این مدار، ماژول مقاومت نوری اساساً به عنوان یک مقاومت وابسته به نور عمل می‌کند که هر چه مقدار نور بیشتری در معرض آن قرار گیرد، مقادیر خروجی آنالوگ دریافتی از ماژول بیشتر می‌شود. در مقابل، با کاهش سطح نور، مقادیر خروجی آنالوگ از مقاومت نوری کاهش می‌یابد و این مقادیر آنالوگ با رسانایی و مقاومت مطابقت دارند. در شرایط نور زیاد، رسانایی در سراسر الکترودهای مقاومت نوری افزایش می‌یابد و بنابراین مقاومت کاهش می‌یابد. برعکس، در شرایط نور کم، رسانایی در سراسر مقاومت نوری کاهش می‌یابد و بنابراین مقاومت افزایش می‌یابد. مقاومت کم ناشی از شرایط تاریکی/نور کم، به LED اجازه می‌دهد تا روشن شود، در حالی که در شرایط روشنایی/نور زیاد، مقاومت بالا مانع از دریافت ولتاژ خروجی کافی برای روشن شدن LED می‌شود. این مدار ساده، ویژگی منحصر به فرد مقاومت‌های نوری و رابطه معکوس بین سطح نور و مقاومت در مقاومت‌های نوری را نشان می‌دهد.

آماده سازی

اگرچه این پروژه کاربرد رایج مقاومت‌های نوری را برای یک چراغ خواب ساده نشان می‌دهد، اما می‌توان از مقاومت‌های نوری معمولاً به عنوان حسگر نور برای ایستگاه‌های هواشناسی، نورسنج‌ها، لامپ‌های خورشیدی، ساعت‌های فضای باز و غیره استفاده کرد. به علاوه، یکی دیگر از مزایای استفاده از مقاومت‌های نوری این است که آنها مقاومت‌های آنالوگ وابسته به نور بسیار مقرون به صرفه و همه کاره هستند که به راحتی می‌توان آنها را به تقریباً هر مداری اضافه کرد. با این وجود، هنوز هم لازم است اجزای مورد نیاز برای مدار لامپ را از قبل آماده کنید و می‌توانید از FS Technology استفاده کنید. تهیه قطعات برای کمک.

  • آردوینو نانو (سایر بردهای سازگار با آردوینو نیز کار می‌کنند)
  • کابل USB (سازگار با برد آردوینو)
  • تخته نان
  • سیم‌های جامپر نر به نر (5)
  • ماژول مقاومت نوری HW-486
  • ال‌ای‌دی سبز (کاتد مشترک)
  • مقاومت ۲۲۰ اهم

سیم‌کشی

بسته به برد آردوینو شما، ممکن است برای اتصال برد به بردبورد نیاز داشته باشید یا نداشته باشید. در این مثال، از آردوینو نانو استفاده شده است، بنابراین به بردبورد نیاز است، اما اگر مثلاً از آردوینو Uno استفاده می‌کنید، سیم‌های جامپر را می‌توان از اجزای روی بردبورد مستقیماً به پین‌های بردبورد وصل کرد. سیم‌کشی این پروژه نسبتاً ساده است زیرا جدا از ماژول‌های اصلی، به اجزای اضافی زیادی نیاز نیست. در مورد ماژول مقاومت نوری، ماژول مقاومت نوری HW-486 که در این پروژه استفاده شده است، دارای پیکربندی ساده ۳ پین است که در آن یک پین سیگنال (S)، پین مثبت (+) و پین GND (-) وجود دارد. در مورد LED سبز (کاتد مشترک)، دلیل اینکه یک مقاومت ۲۲۰ اهمی به صورت سری با آند (پایه بلند) متصل شده است، جلوگیری از سوختن LED هنگام اعمال ولتاژ تغذیه +۵ ولت است. نمودار مدار سیم‌کشی نیز در زیر نشان داده شده است.

  • ماژول مقاومت نوری HW-486: پین سیگنال (S) را به A2 روی برد آردوینو، پین مثبت (+) را به +5v و پین GND (-) را به GND وصل کنید.
  • LED سبز (کاتد مشترک): یک مقاومت ۲۲۰ اهمی را به صورت سری با آند (پایه بلند) LED روی برد بورد قرار دهید و با استفاده از یک سیم رابط، آند را به D2 وصل کنید. کاتد (پایه کوتاه) LED را به GND وصل کنید.
  • حالا می‌توانید برد آردوینو خود را از طریق کابل USB به کامپیوتر وصل کنید.

کد پروژه

				
					int photoPin = A1;
int ledPin = 2;
int val = 0;
int light = 0;
void setup()
{
 pinMode(ledPin, OUTPUT);
 Serial.begin(9600);
}
void loop()
{
 val = analogRead(photoPin);
 light = map(val, 0, 1023, 0, 10);
 Serial.println(light);
 if (light < 5) {
   digitalWrite(ledPin, HIGH);
 }
 else {
   digitalWrite(ledPin, LOW);
 }
 delay(100);
}
				
			

درباره کد

در بلوک اول کد، چندین متغیر عدد صحیح تعریف شده‌اند که شامل پین‌های ماژول مقاومت نوری (A1) و LED (D2) می‌شوند، علاوه بر این، چندین متغیر عدد صحیح به نام‌های 'val' و 'light' وجود دارند که بعداً برای ذخیره اطلاعات آنالوگ دریافتی از مقاومت نوری استفاده خواهند شد.

در بخش تنظیمات void، LED به عنوان یک دستگاه خروجی تعریف شده است زیرا اطلاعات از آردوینو برای کنترل آن به LED ارسال می‌شود. به علاوه، ارتباط سریال با تنظیم نرخ بیت بر ثانیه ۹۶۰۰ بیت بر ثانیه آغاز می‌شود.

با رفتن به بخش حلقه‌ی خالی، متغیر عدد صحیح 'val' که قبلاً تعریف شده بود، با استفاده از تابع analogRead() برابر با خروجی آنالوگ ماژول مقاومت نوری قرار می‌گیرد. سپس، از تابع map() برای نگاشت مجدد محدوده‌ی خروجی آنالوگ از مقاومت نوری 0 تا 1023 به محدوده‌ی بسیار کوچک‌تری که بتوانیم راحت‌تر با آن کار کنیم، از 0 تا 10، استفاده می‌کنیم. مقدار خروجی آنالوگ جدید در متغیر عدد صحیح 'light' ذخیره می‌شود.

در مرحله بعد، یک دستور if-else معرفی می‌شود که در آن بیان می‌کنیم اگر سطح نور کمتر از مقدار آستانه مشخص ۵ باشد، LED روشن می‌شود اما اگر آن آستانه برآورده نشود، LED خاموش می‌شود. همچنین یک تأخیر ۱۰۰ میلی‌ثانیه‌ای در انتها اضافه می‌شود. این دستور if-else اساساً اساس این مدار چراغ خواب را تشکیل می‌دهد.

مرحله بعدی

حالا که این مدار چراغ خواب را با استفاده از ماژول مقاومت نوری HW-486 ساخته‌اید، نشان می‌دهد که ادغام یک مقاومت نوری در چنین پروژه‌ای چقدر آسان است. با کاربردهای بی‌پایان مقاومت‌های نوری، حتی ایجاد مدارهای مستقل یا دستگاه‌های قابل حمل که با میکروکنترلرها باتری کار می‌کنند نیز امکان‌پذیر است. اغلب اوقات، ممکن است لامپ‌های خورشیدی باغ در فضای باز یا چراغ‌های هشدار دهنده منزل را دیده باشید که معمولاً از نوعی فناوری مقاومت نوری برای فعال شدن در طول شب استفاده می‌کنند. برای توضیح بیشتر در این مورد، به این موضوع می‌پردازیم. PCBA LED در این پروژه، شما همچنین می‌توانید از رله‌ها برای کنترل وسایل برقی بسیار بزرگتر استفاده کنید و بنابراین در مسیر نوآوری دستگاه‌های کاربردی‌تر یا حتی تجاری‌تر قرار بگیرید.

وبلاگ‌های مرتبط