در این پست از سایت اِمیک, یک پروژه بسیار جالب و کاملاً تست شده به نام پروژه آردوینو سنجش نور محیط قرار داده شده است. همانطور که از نام این پروژه مشخص است ما میزان یا شدت نور محیط را اندازه گیری می کنیم و روی یک LCD کاراکتری نمایش می دهیم. نمایش شدت نور محیط به صورت درصدی انجام می شود یعنی با توجه به نور محیط عددی بین 0 تا 100 درصد روی LCD نمایش داده می شود. این پروژه با استفاده از برد آردوینو UNO انجام شده است. در زیر شماتیک این پروژه جالب را مشاهده می کنید:
قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که برای مشاهده آن پست می توانید اینجا کلیک کنید.
همانطور که مشاهده می کنید, ما در این پروژه از برد آردوینو UNO استفاده کرده ایم. از یک LCD کاراکتری نیز استفاده کرده ایم که این LCD به پین های 7 تا 13 برد آردوینو متصل شده است. پتانسیومتر RV1 برای تنظیم کنتراست یا میزان روشنایی LCD کاراکتری استفاده شده است.
در این پروژه از یک فتوسل (LDR) برای سنجش نور محیط استفاده شده است. سنسور LDR به همراه مقاومت R1 یک تقسیم ولتاژ مقاومتی ایجاد می کنند. هر چه نور محیط بیشتر باشد, مقدار مقاومت سنسور LDR کمتر است و در نتیجه ولتاژ بیشتری روی پین A0 برد آردوینو که یکی از ورودی های آنالوگ برد آردوینو UNO است می افتد. با کاهش نور محیط مقدار مقاومت سنسور LDR افزایش می یابد و در نتیجه ولتاژ روی پین A0 برد آردوینو کاهش می یابد. با اندازه گیری ولتاژ روی پین A0 توسط ADC آردوینو, می توانیم میزان یا شدت نور محیط را اندازه گیری کنیم.
در نهایت این شدت نور اندازه گیری شده را به صورت عددی بین 0 تا 100 درصد روی ال سی دی کاراکتری نمایش می دهیم. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.
تغذیه پروژه بالا را می توانید از خود برد آردوینو بگیرید, به این صورت که برد آردوینو را با استفاده از آداپتور راه اندازی کنید و از پایه های 5V و GND آردوینو برای تغذیه استفاده کنید.
برنامه آردوینو :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> //معرفی کتابخانه ال سی دی کاراکتری// //تابع زیر مشخص می کند که کدام پین های اردوینو به ال سی دی متصل شوند// LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); void setup() { analogReference(DEFAULT); //اردوینو مشخص میکند ADC دستور روبرو مقدار ولتاژ مبنا یا رفرنس را برای کار با واحد// pinMode(A0, INPUT); //اردوینو A0 ورودی کردن پین// lcd.begin(16, 2); //پیکره بندی ال سی دی// } void loop() { float A ; //برای استفاده در برنامه تعریف شده است L و A دو متغیر به نام های// int L ; A = analogRead(A0); //برد اردوینو می باشد A0 خواندن عددي بين 0 تا 1023 که بيانگر مقدار ولتاژ انالوگ روي پين// L = (A * 100) / 1023 ; //دستور روبرو عدد خوانده شده بين 0 تا 1023 را در بازه ي 0 تا 100 تبديل مي کند// lcd.setCursor(0, 0); //رفتن به ستون 0 و سطر 0 از ال سي دي کاراکتري// lcd.print("amount of light"); //روی ال سی دی کاراکتری amount of light نوشتن عبارت // lcd.setCursor(6, 1); //رفتن به ستون 6 و سطر 0 از ال سي دي کاراکتري// lcd.print(L); //نمايش مقدار نور محیط (به درصد) که در بالا بدست اورده بودیم روی ال سی دی کاراکتری// lcd.print("%"); //نوشتن علامت % روی ال سی دی// delay(500); //ايجاد تاخير به مدت نیم ثانيه// lcd.clear(); //پاک کردن ال سی دی// } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های آردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…