در این پست از سایت اِمیک, پروژه ساخت فتوسل با استفاده از برد آردوینو قرار داده شده است. در این پروژه ما با استفاده از یک سنسور مقاومت نوری یا LDR یک دستگاه فتوسل خواهیم ساخت که از ان می توان برای کنترل (روشن و خاموش کردن) چراغ ها یا دیگر وسایل بصورت اتوماتیک و با توجه به میزان نور محیط استفاده کرد. در ابتدا بهتر است که بطور خلاصه با سنسور LDR اشنا شویم.
سنسور LDR چیست؟ سنسور LDR یک مقاومت وابسته به نور است که مقدار مقاومت ان با توجه به شدت نور محیط تغییر می کند. با افزایش نور محیط مقاومت ان کاهش می یابد و با کاهش نور محیط مقاومت ان افزایش می یابد. در زیر شکل یک LDR را مشاهده می کنید:
قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که برای مشاهده ان پست می توانید اینجا کلیک کنید. در زیر شماتیک این پروژه را مشاهده می کنید که در این پروژه از برد اردوینو یونو (UNO) استفاده کرده ایم.
سنسور LDR به همراه مقاومت R1 یک تقسیم ولتاژ مقاومتی ایجاد می کنند. همانطور که در بالا توضیح دادم هر چه نور محیط بیشتر باشد, مقدار مقاومت سنسور LDR کمتر است و در نتیجه ولتاژ کمتری روی پین A0 برد اردوینو می افتد. همانطور که می دانید پین A0 یکی از ورودی های انالوگ برد اردوینو یونو است. با کاهش نور محیط مقدار مقاومت سنسور LDR افزایش می یابد و در نتیجه ولتاژ روی پین A0 برد اردوینو افزایش می یابد. با اندازه گیری ولتاژ روی پین A0 توسط ADC برد اردوینو, می توانیم میزان نور محیط را تشخیص دهیم.
عملکرد پروژه به این صورت است که در زمانی که هوا روشن است و نور کافی در محیط وجود دارد, رله قطع است. در زمانی که هوا تاریک است و نور کافی در محیط نیست, رله وصل می شود و چراغ یا وسیله متصل به رله نیز روشن می شود. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.
رله از طریق یک مدار راه انداز شامل ترانزیستور Q1 و مقاومت R2 به پین 13 از برد اردوینو متصل شده است. همانطور که می دانید جریان خروجی پین های اردوینو محدود است و نمی توان بطور مستقیم به رله متصل کرد و باید از طریق یک مدار راه انداز مانند شماتیک بالا رله را به برد اردوینو متصل کرد.
تغذیه پروژه بالا را می توانید از خود برد اردوینو بگیرید, به این صورت که برد اردوینو را با استفاده از اداپتور راه اندازی کنید و از پایه های 5V و GND برای تغذیه استفاده کنید.
برنامه اردوینو :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
////////// WWW.EMIC.IR ////////// void setup() { analogReference(DEFAULT); //تعیین ولتاژ رفرنس برای کار با واحد انالوگ اردوینو// pinMode(A0, INPUT); //اردوینو A0 ورودی کردن پین// pinMode(13, OUTPUT); //خروجی کردن پین 13 اردوینو// } void loop() { unsigned int A = 0; //در روبرو يک متغير براي استفاده در برنامه تعريف شده است// digitalWrite(13, 0); //بصورت پیش فرض پین 13 اردوینو که رله به ان متصل است را صفر مي کنيم يعني رله قطع باشد// while (1) { A = analogRead(A0); //اردوینو است A0 خواندن عددي بين 0 تا 1023 که بيانگر مقدار ولتاژ انالوگ روي پين// if (A < 900) digitalWrite(13, 0); //در صورتي که عدد خوانده شده کمتر از 900 که مي شود حدود 4.4 ولت بود رله را قطع مي کند// if (A > 920) digitalWrite(13, 1); //در صورتي که عدد خوانده شده بيشتر از 920 که مي شود حدود 4.5 ولت بود رله را وصل مي کند// } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های اردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…