در این سری از پروژه های آموزشی آردوینو، نحوه راه اندازی و عملکرد ماژول سنسور تشخیص لرزش و ویبراتور را مورد بررسی و تحلیل قرار داده ایم. از این پروژه برای مکان هایی که نیاز به تشخیص لرزش تجهیزات و قطعات است می توان استفاده نمود. در صورت نیاز به وسیله ای که بتواند لرزش را تشخیص دهد، پیشنهاد می کنیم پروژه ای که در زیر و وب سایت الکترونیک98 منتشر گردیده است را مطالعه بفرمائید.
ماژول سنسور تشخیص لرزش
ماژول سنسور تشخیص لرزش برای تشخیص لرزشهای سطحی مناسب میباشد. این ماژول از یک سنسور ویبراتور SW-420 و یک پتانسیومتر که وظیفه تنظیم حساسیت ماژول را بر عهده دارد ساخته شده است همچنین این ماژول دارای LED می باشد که وضیعت خروجی ماژول هنگام تشخیص لرزش را بر عهده دارد. هنگامی که هیچ لرزشی وجود نداشته باشد خروجی برابر با صفر است اما با کوچکترین تکان و حرکت، سنسور عمل می کند که همین دلیل باعث می شود در دزدگیر موتور سیکلت و یا زلزله نگار بسیار استفاده شود. ماژول سنسور تشخیص لرزش امکان سازگاری با هر میکروکنترلر که دارای ورودی دیجیتال باشد را دارد. از جمله مشخصات و ویژگی های این ماژول عبارتنداز:
1. محدوده ولتاژ 3.3 تا 5 ولت
2. جریان 15 میلی آمپر
3. سه پایه VCC و GND و DO
4. یک خروجی دیجیتال
5. دارای پتانسیومتر روی فیبر جهت تنظیم حساسیت
6. وزن 5 گرم
7. ابعاد فیبر 32 × 14 میلی متر
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول ویبره و لرزش مدل SW-420 | 1 عدد |
لامپ LED سبز سایز 5mm میلی متر مدل مات | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال قطعات به یکدیگر و برد آردوینو بسیار راحت است به طوری که با توجه به توضیحات و شماتیک زیر به راحتی می توانید این اتصالات را انجام دهید.
1. ابتدا پایه VCC ماژول سنسور تشخیص لرزش را به پین 5 ولت برد آردوینو اتصال دهید.
2. پایه زمین یا GND ماژول را به پین زمین برد آردوینو متصل کنید.
3. پایه DO ماژول تشخیص لرزش را به پین دیجیتال شماره 3 برد آردوینو متصل نمائید.
4. پایه های مثبت LED را به پین شماره 13 برد آردوینو وصل کنید.
5. در این مرحله پایه منفی LED را به زمین برد آردوینو اتصال دهید.
برنامه نویسی پروژه
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
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 |
int LED_Pin = 13; int vibr_Pin =3; void setup(){ pinMode(LED_Pin, OUTPUT); pinMode(vibr_Pin, INPUT); //set vibr_Pin input for measurment Serial.begin(9600); //init serial 9600 // Serial.println("----------------------Vibration demo------------------------"); } void loop(){ long measurement =TP_init(); delay(50); // Serial.print("measurment = "); Serial.println(measurement); if (measurement > 1000){ digitalWrite(LED_Pin, HIGH); } else{ digitalWrite(LED_Pin, LOW); } } long TP_init(){ delay(10); long measurement=pulseIn (vibr_Pin, HIGH); //wait for the pin to get HIGH and returns measurement return measurement; } |