در این پست از سایت اِمیک, ما ماژول شمارنده نوری (اپتوکانتر) را با استفاده از برد آردوینو راه اندازی خواهیم کرد. ماژول اپتوکانتر کاربرد های مختلفی دارد و یکی از مهم ترین کاربردهای این ماژول, استفاده از ان برای شمارش دور موتور است. البته ما در این پروژه این ماژول را به ساده ترین روش راه اندازی خواهیم کرد و هدف این پروژه فقط راه اندازی ماژول است و در اینده پروژه شمارش دور موتور با استفاده از ماژول اپتوکانتر را حتما قرار خواهم داد.
قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که در ان پست در مورد این ماژول اپتوکانتر که قصد راه اندازی ان را داریم و پایه های ان توضیح دادم و توصیه می کنم ان پست را نیز مطالعه کنید. برای مشاهده پست راه اندازی ماژول شمارنده نوری (اپتوکانتر) با میکروکنترلر AVR می توانید اینجا کلیک کنید.
در زیر شماتیک پروژه راه اندازی ماژول شمارنده نوری (اپتوکانتر) با برد آردوینو را مشاهده می کنید.
همانطور که مشاهده می کنید, ما در این پروژه از برد آردوینو UNO استفاده کرده ایم. از یک LCD کاراکتری نیز استفاده کرده ایم که این LCD به پین های 7 تا 13 برد آردوینو متصل شده است. پتانسیومتر RV1 برای تنظیم کنتراست یا میزان روشنایی LCD کاراکتری استفاده شده است.
در این پروژه ما از سه پایه ماژول اپتوکانتر یعنی پایه VCC که به مثبت تغذیه متصل شده و پایه GND که به منفی تغذیه متصل شده و پایه خروجی دیجیتال ماژول اپتوکانتر (D0) که به پایه A0 برد آردوینو متصل شده است, استفاده کرده ایم.
عملکرد این پروژه به این صورت است که با هر عبور جسم از بین شیار ماژول, یک واحد به عددی که روی LCD نمایش داده شده اضافه می شود.
شماتیک این پروژه بسیار ساده است و نکته خاصی ندارد. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.
برنامه اردوینو :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> //معرفي کتابخانه ال سی دی کاراکتری// //تابع زیر مشخص می کند که کدام پین های اردوینو به ال سی دی متصل شود// LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); unsigned long int i = 0; //تعریف متغیر برای استفاده در برنامه// void setup() { lcd.begin(16, 2); //پیکره بندی ال سی دی// pinMode(A0, INPUT); //اردوینو A0 ورودی کردن پین// } void loop() { if (digitalRead(A0) == 1) { //روبرو می شویم if برد اردوینو که خروجي ماژول اپتوکانتر به ان متصل شده است برابر يک منطقي شد وارد شرط A0 در صورتي که پين// while (digitalRead(A0)); //روبرو متوقف می شود while برد اردوینو برابر يک منطقي است اجراي برنامه درون حلقه A0 تا زمانی که پین// i++; //یک واحد اضافه می شود i برد اردوینو برنامه دوباره ادامه پيدا مي کند و اجرا مي شود و به متغير A0 با صفر شدن پین// } lcd.clear(); //پاک کردن ال سي دي// lcd.setCursor(0, 0); //رفتن به سطر 0 و ستون 0 از ال سي دي// lcd.print("Counter="); //Counter= نوشتن عبارت// lcd.print(i); //روی ال سی دی کاراکتری i نمایش مقدار متغیر// lcd.setCursor(0, 1); //رفتن به سطر 1 و ستون 0 از ال سي دي// lcd.print("WWW.EMIC.IR"); //WWW.EMIC.IR نوشتن عبارت// delay(50); //ايجاد 50 ميلي ثانيه تاخير// } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل برنامه این پروژه با نرم افزار آردوینو را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
درود مهندس. خیلی ممنون بابت به اشتراک گذاری این پروژه.
فقط اینکه برای فعالسازی نور پس زمینه باید پینهای A و K با یک مقاومت به مثبت و منفی تغذیه مثل بشن. چون تو شماتیک این مورد وجود نداره.