در این پست از سایت اِمیک, ماژول تشخیص باران (Raindrops sensor) را با استفاده از برد اردوینو یونو (UNO) راه اندازی خواهیم کرد. در واقع در این پست ما با استفاده از ماژول تشخیص باران یک هشدار دهنده بارش باران خواهیم ساخت که همچنین می تواند شدت باران را نیز بر حسب درصد روی یک LCD کاراکتری نمایش دهد. قبلا همین پروژه را با استفاده از میکروکنترلر AVR راه اندازی کرده بودیم که در ان پست بطور کامل در مورد ماژول تشخیص باران و نحوه راه اندازی ان توضیح داده شد که می توانید ان پست را در اینجا مطالعه کنید. در زیر تصویری از ماژول تشخیص باران را مشاهده می کنید:
این ماژول دارای 4 پایه می باشد که به صورت زیر می باشند:
پایه 1: اتصال به VCC (مثبت تغذیه)
پایه 2: اتصال به GND (منفی تغذیه)
پایه 3: خروجی دیجیتال ماژول (D0)
پایه 4: خروجی انالوگ ماژول (A0)
زمانی که باران روی قسمت سنسور ماژول می بارد, هدایت الکتریکی آن تغییر کرده و ماژول بارش باران را تشخیص می دهد. در زمانی که ماژول بارش باران را تشخیص نداده است خروجی دیجیتال D0 در وضعیت 1 منطقی (VCC) است و با تشخیص باران توسط ماژول خروجی D0 از وضعیت یک منطقی به صفر منطقی (GND) تغییر می کند. بعد از پاک شدن ناحیه ی سنسور از آب, ماژول دوباره به وضعیت قبلی باز می گردد. میزان حساسیت سنسور را می توان با استفاده از پتانسیومتر روی ماژول تنظیم کرد.
پروژه راه اندازی ماژول تشخیص باران با آردوینو :
در این پروژه ما از برد اردوینو UNO به همراه ماژول تشخیص باران و یک LCD کاراکتری برای نمایش میزان باران (به درصد) استفاده کرده ایم. برای تنظیم کنتراست (روشنایی) ال سی دی کاراکتری از یک پتانسیومتر (RV1) استفاده کرده ایم, همچنین یک بازر(BUZZER) هشدار دهنده نیز استفاده شده است. ترانزیستور (Q1) و مقاومت (R1) به منظور درایور کردن یا راه اندازی بازر استفاده شده اند. بازر استفاده شده از نوع 5 ولت می باشد. در زیر شماتیک این پروژه را مشاهده می کنید:
برای دیدن تصویر بالا در اندازه بزرگتر ان را ذخیره کنید. عملکرد این پروژه به این صورت است که با بارش قطرات باران بر روی قسمت سنسور ماژول یک بازر هشدار دهنده فعال می شود و همچنین بر روی LCD کاراکتری مقدار بارش باران (به درصد) نمایش داده می شود. از هر دو خروجی دیجیتال و انالوگ ماژول در این پروژه استفاده شده است. در انتهای مطلب می توانید کلیپ تست پروژه را مشاهده کنید.
همانطور که در شماتیک بالا مشاهده می کنید پایه D0 ماژول به پین A0 برد اردوینو متصل شده و پایه A0 ماژول به پین A1 برد اردوینو متصل شده است. پایه A2 برد اردوینو از طریق مدار درایور شامل مقاومت و ترانزیستور, بازر را راه اندازی می کند. توجه کنید که تغذیه ماژول تشخیص باران 5 ولت می باشد.
برنامه اردوینو :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> // lcd معرفي کتابخانه // // متصل شود LCD تابع زیر مشخص می کند که کدام پین های اردوینو به // LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); void setup() { //اردوینو مشخص میکند ADC دستور زیر مقدار ولتاژ مبنا یا رفرنس را برای کار با واحد// analogReference(DEFAULT); pinMode(A0, INPUT_PULLUP); //اردوینو A0 ورودی کردن پین// pinMode(A1, INPUT); //اردوینو A1 ورودی کردن پین// pinMode(A2, OUTPUT); //اردوینو A2 خروجی کردن پین// lcd.begin(16, 2); // LCD پيکره بندي // } void loop() { float i ; //خوانده شده از پین اردوینو در ان adc برای ریختن مقادیر i تعریف متغیر// int R , P; P = digitalRead(A0); //میریزد P اردوینو هست را در متغیر A0 دستور روبرو هر مقداری که در پین// if (P == 1) digitalWrite(A2, 0); //اردوینو برابر صفر می شود A2 برابر 1 بود پین P در صورتی که متغیر// if (P == 0) digitalWrite(A2, 1); //اردوینو برابر یک می شود A2 برابر 0 بود پین P در صورتی که متغیر// i = analogRead(A1); //(عددی بین 0 تا 1023) i در متغیر adc ریختن مقادیر// R = 100 - (i * 100) / 1023 ; // دستور روبرو عدد خوانده شده بين 0 تا 1023 را در بازه ي 0 تا 100 تبديل مي کند // lcd.clear(); // LCD پاک کردن // lcd.print("Rain amount= "); //روی ال سی دی Rain amount نوشتن عبارت// lcd.print(R); // نمایش مقدار باران (به درصد) که در بالا به دست اورده بودیم روی ال سی دی کاراکتری // lcd.print("%"); //نوشتن علامت % روی ال سی دی// lcd.setCursor(2, 1); // رفتن به ستون 2 و سطر 1 // lcd.print("WWW.EMIC.IR"); // LCD روي WWW.EMIC.IR نوشتن // delay(500); // ايجاد تاخير به مدت نیم ثانيه // } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
نکات :
- برای تست پروژه حتما برد اردوینو را با اداپتور راه اندازی کنید (جریان دهی برد اردوینو در حالتی که با کابل usb متصل به کامپیوتر راه اندازی می شود بسیار کم است و جوابگوی برخی پروژه ها نیست)
- برای اشنایی با دستورات مربوط به LCD کاراکتری اینجا کلیک کنید
- برای اشنایی با دستورات و نحوه راه اندازی ADC در آردوینو اینجا کلیک کنید
- برای اشنایی با دستورات مهم برنامه نویسی اردوینو اینجا کلیک کنید
- برای اشنایی با نحوه پروگرام کردن برد اردوینو (ریختن برنامه روی برد) اینجا کلیک کنید
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…