در این سری از پروژه های آردوینو نحوه اندازه گیری تعداد دور RPM فیجت اسپینر توسط سنسور اثر هال به کمک برد آردوینو را مورد بررسی قرار داده ایم. شاید در نگاه اول پروژه زیاد جذاب نباشد اما می توان از ساختار این پروژه برای کاربردهای دیگر استفاده کرد. از فیجت اسپینر می توان ساعت ها برای بازی استفاده کرد بدون آنکه خسته شوید ولی در هر حالت ممکن است جذابیتی نداشته باشد اما اگر بخواهید توسط این بازی مسابقه ای را ترتیب بدهید به این صورت که با چرخاندن این وسیله قدرت هر شخص را اندازه بگیرید، کافیست مطالب زیر که در سایت الکترونیک98 منتشر شده است را مطالعه کنید.
فیجت اسپینر
فیجت اسپینر (Fidget Spinner) بهطور خلاصه اسپینر نامیده می شود. اسپینر از یک بلبرینگ کوچک تشکیل شده است و میتوان آن را بین انگشتان دست چرخاند.
فیجت اسپینر جذاب ترین وسیله در بازار اسباببازی محسوب میشود. سازندگان این وسیله آن را به عنوان ابزاری برای درمان بیماریهای اختلال کمتوجهی-بیشفعالی، اضطراب و اوتیسم معرفی کرده اند.
سنسور اثر هال
سنسور اثر هال وسیله ای است که با اعمال میدان مغناطیسی، فعال میشود؛ ولتاژ خروجی تابعی از میدان مغناطیسی می باشد. از جمله کاربردهای سنسور هال می توان به اندازه گیری مکان، فاصله، سرعت، رطوبت و دما اشاره کرد.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول اثر هال مدل UGN3144 | 1 عدد |
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
فیجت اسپینر | 1 عدد |
آهنربای نئودیمیوم | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال قطعات به یکدیگر و برد آردوینو توسط توضیحات و شماتیک زیر به طور کامل آمده است.
1. ابتدا مقاومت 10 کیلو اهم را بین پایه های Supply و OutPut سنسوز اثر هال اتصال دهید.
2. پایه خروجی سنسور اثر هال را به پین دیجیتال شماره 2 برد آردوینو متصل کنید.
3. پایه زمین سنسور را به پین زمین برد اردوینو متصل نمائید.
4. پایه تغذیه سنسور را به پین 5ولت برد آردوینو اتصال دهید.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
volatile byte half_revolutions; unsigned int rpm; unsigned long timeold; void setup() { Serial.begin(115200); attachInterrupt(1, magnet_detect, RISING);//Initialize the intterrupt pin (Arduino digital pin 2) half_revolutions = 0; rpm = 0; timeold = 0; } void loop()//Measure RPM { if (half_revolutions >=5) { rpm = 30*1000/(millis() - timeold)*half_revolutions; timeold = millis(); half_revolutions = 0; Serial.println(rpm,DEC); } } void magnet_detect()//This function is called whenever a magnet/interrupt is detected by the arduino { half_revolutions++; Serial.println("detect"); } |